57 lines
2.9 KiB
C++
57 lines
2.9 KiB
C++
// Copyright 2020 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef V8_REGEXP_REGEXP_ERROR_H_
|
|
#define V8_REGEXP_REGEXP_ERROR_H_
|
|
|
|
|
|
namespace v8 {
|
|
namespace internal {
|
|
|
|
#define REGEXP_ERROR_MESSAGES(T) \
|
|
T(None, "") \
|
|
T(StackOverflow, "Maximum call stack size exceeded") \
|
|
T(AnalysisStackOverflow, "Stack overflow") \
|
|
T(TooLarge, "Regular expression too large") \
|
|
T(UnterminatedGroup, "Unterminated group") \
|
|
T(UnmatchedParen, "Unmatched ')'") \
|
|
T(EscapeAtEndOfPattern, "\\ at end of pattern") \
|
|
T(InvalidPropertyName, "Invalid property name") \
|
|
T(InvalidEscape, "Invalid escape") \
|
|
T(InvalidDecimalEscape, "Invalid decimal escape") \
|
|
T(InvalidUnicodeEscape, "Invalid Unicode escape") \
|
|
T(NothingToRepeat, "Nothing to repeat") \
|
|
T(LoneQuantifierBrackets, "Lone quantifier brackets") \
|
|
T(RangeOutOfOrder, "numbers out of order in {} quantifier") \
|
|
T(IncompleteQuantifier, "Incomplete quantifier") \
|
|
T(InvalidQuantifier, "Invalid quantifier") \
|
|
T(InvalidGroup, "Invalid group") \
|
|
T(MultipleFlagDashes, "Multiple dashes in flag group") \
|
|
T(RepeatedFlag, "Repeated flag in flag group") \
|
|
T(InvalidFlagGroup, "Invalid flag group") \
|
|
T(TooManyCaptures, "Too many captures") \
|
|
T(InvalidCaptureGroupName, "Invalid capture group name") \
|
|
T(DuplicateCaptureGroupName, "Duplicate capture group name") \
|
|
T(InvalidNamedReference, "Invalid named reference") \
|
|
T(InvalidNamedCaptureReference, "Invalid named capture referenced") \
|
|
T(InvalidClassEscape, "Invalid class escape") \
|
|
T(InvalidClassPropertyName, "Invalid property name in character class") \
|
|
T(InvalidCharacterClass, "Invalid character class") \
|
|
T(UnterminatedCharacterClass, "Unterminated character class") \
|
|
T(OutOfOrderCharacterClass, "Range out of order in character class")
|
|
|
|
enum class RegExpError : uint32_t {
|
|
#define TEMPLATE(NAME, STRING) k##NAME,
|
|
REGEXP_ERROR_MESSAGES(TEMPLATE)
|
|
#undef TEMPLATE
|
|
NumErrors
|
|
};
|
|
|
|
V8_EXPORT_PRIVATE const char* RegExpErrorString(RegExpError error);
|
|
|
|
} // namespace internal
|
|
} // namespace v8
|
|
|
|
#endif // V8_REGEXP_REGEXP_ERROR_H_
|