node/deps/v8/test/unittests/regexp/regexp-grammar.h
Michaël Zasso 9d7cd9b864
deps: update V8 to 12.8.374.13
PR-URL: https://github.com/nodejs/node/pull/54077
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2024-08-16 16:03:01 +02:00

1051 lines
42 KiB
C++

// Copyright 2024 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.
/*
This file is autogenerated from the antlr grammar fuzzer_regexp_grammar.g4
To regenerate this file, you need fuzztest:
https://github.com/google/fuzztest
Create a bazel BUILD file with a target for this grammar:
cc_fuzztest_grammar_library(
name = "regex_grammar",
srcs = ["fuzzer_regexp_grammar.g4"],
top_level_rule = "pattern",
)
Build it and copy over the resulting file:
bazel build :regex_grammar
*/
#ifndef FUZZTEST_GRAMMARS_PATTERN_GRAMMAR_H_
#define FUZZTEST_GRAMMARS_PATTERN_GRAMMAR_H_
#include "./fuzztest/internal/domains/in_grammar_impl.h"
namespace fuzztest::internal::grammar::pattern {
enum PatternTypes {
kSourceCharacterNode,
kIdentifierStartCharNode,
kIdentifierPartCharNode,
kAsciiLetterNode,
kNumericLiteralSeparatorNode,
kDecimalDigitsNode,
kDecimalDigitNode,
kNonZeroDigitNode,
kHexDigitNode,
kHexDigitsNode,
kCodePointNode,
kHexEscapeSequenceNode,
kHex4DigitsNode,
kPatternNode,
kDisjunctionNode,
kAlternativeNode,
kTermNode,
kAssertionNode,
kQuantifierNode,
kQuantifierPrefixNode,
kAtomNode,
kSyntaxCharacterNode,
kPatternCharacterNode,
kAtomEscapeNode,
kCharacterEscapeNode,
kControlEscapeNode,
kGroupSpecifierNode,
kGroupNameNode,
kRegExpIdentifierNameNode,
kRegExpIdentifierStartNode,
kRegExpIdentifierPartNode,
kRegExpUnicodeEscapeSequenceNode,
kUnicodeLeadSurrogateNode,
kUnicodeTrailSurrogateNode,
kHexLeadSurrogateNode,
kHexTrailSurrogateNode,
kHexNonSurrogateNode,
kIdentityEscapeNode,
kDecimalEscapeNode,
kCharacterClassEscapeNode,
kUnicodePropertyValueExpressionNode,
kUnicodePropertyNameNode,
kUnicodePropertyNameCharactersNode,
kUnicodePropertyValueNode,
kLoneUnicodePropertyNameOrValueNode,
kUnicodePropertyValueCharactersNode,
kUnicodePropertyValueCharacterNode,
kUnicodePropertyNameCharacterNode,
kCharacterClassNode,
kClassContentsNode,
kNonemptyClassRangesNode,
kNonemptyClassRangesNoDashNode,
kClassAtomNode,
kClassAtomNoDashNode,
kClassEscapeNode,
kClassSetExpressionNode,
kClassUnionNode,
kClassIntersectionNode,
kClassSubtractionNode,
kClassSetRangeNode,
kClassSetOperandNode,
kNestedClassNode,
kClassStringDisjunctionNode,
kClassStringDisjunctionContentsNode,
kClassStringNode,
kNonEmptyClassStringNode,
kClassSetCharacterNode,
kClassSetReservedDoublePunctuatorNode,
kClassSetSyntaxCharacterNode,
kClassSetReservedPunctuatorNode,
kDecimalDigitsSubNode0,
kDecimalDigitsSubNode1,
kDecimalDigitsSubNode3,
kDecimalDigitsSubNode4,
kDecimalDigitsSubNode2,
kHexDigitsSubNode5,
kHexDigitsSubNode7,
kHexDigitsSubNode8,
kHexDigitsSubNode6,
kHexEscapeSequenceSubNode9,
kHexEscapeSequenceSubNode10,
kDisjunctionSubNode11,
kAlternativeSubNode12,
kTermSubNode13,
kTermSubNode14,
kAssertionSubNode15,
kAssertionSubNode16,
kAssertionSubNode17,
kAssertionSubNode18,
kAssertionSubNode19,
kAssertionSubNode20,
kQuantifierSubNode21,
kQuantifierPrefixSubNode22,
kQuantifierPrefixSubNode23,
kQuantifierPrefixSubNode24,
kAtomSubNode25,
kAtomSubNode26,
kAtomSubNode27,
kAtomSubNode28,
kAtomEscapeSubNode29,
kCharacterEscapeSubNode30,
kRegExpIdentifierNameSubNode31,
kRegExpIdentifierStartSubNode32,
kRegExpIdentifierStartSubNode33,
kRegExpIdentifierPartSubNode34,
kRegExpIdentifierPartSubNode35,
kRegExpUnicodeEscapeSequenceSubNode36,
kRegExpUnicodeEscapeSequenceSubNode37,
kRegExpUnicodeEscapeSequenceSubNode38,
kRegExpUnicodeEscapeSequenceSubNode39,
kRegExpUnicodeEscapeSequenceSubNode40,
kRegExpUnicodeEscapeSequenceSubNode41,
kDecimalEscapeSubNode42,
kCharacterClassEscapeSubNode43,
kUnicodePropertyValueExpressionSubNode44,
kUnicodePropertyNameCharactersSubNode45,
kUnicodePropertyValueCharactersSubNode46,
kCharacterClassSubNode47,
kClassContentsSubNode48,
kClassContentsSubNode49,
kNonemptyClassRangesSubNode50,
kNonemptyClassRangesSubNode51,
kNonemptyClassRangesNoDashSubNode52,
kNonemptyClassRangesNoDashSubNode53,
kClassAtomNoDashSubNode54,
kClassUnionSubNode55,
kClassUnionSubNode56,
kClassUnionSubNode57,
kClassUnionSubNode58,
kClassIntersectionSubNode59,
kClassIntersectionSubNode60,
kClassSubtractionSubNode61,
kClassSubtractionSubNode62,
kNestedClassSubNode63,
kNestedClassSubNode64,
kNestedClassSubNode65,
kClassStringDisjunctionContentsSubNode66,
kNonEmptyClassStringSubNode67,
kClassSetCharacterSubNode68,
kClassSetCharacterSubNode69,
kClassSetCharacterSubNode70,
kLiteral15,
kLiteral16,
kLiteral0,
kLiteral17,
kLiteral18,
kLiteral14,
kLiteral43,
kLiteral38,
kLiteral44,
kLiteral40,
kLiteral39,
kLiteral36,
kLiteral37,
kLiteral19,
kLiteral20,
kLiteral41,
kLiteral21,
kLiteral8,
kLiteral50,
kLiteral2,
kLiteral22,
kLiteral7,
kLiteral3,
kLiteral23,
kLiteral24,
kLiteral5,
kLiteral25,
kLiteral48,
kLiteral26,
kLiteral6,
kLiteral27,
kLiteral4,
kLiteral28,
kLiteral29,
kLiteral35,
kLiteral9,
kLiteral47,
kLiteral10,
kLiteral49,
kLiteral30,
kLiteral1,
kLiteral31,
kLiteral11,
kLiteral46,
kLiteral45,
kLiteral12,
kLiteral33,
kLiteral34,
kLiteral42,
kLiteral13,
kLiteral32,
kCharSet0,
kCharSet17,
kCharSet16,
kCharSet9,
kCharSet5,
kCharSet7,
kCharSet6,
kCharSet15,
kCharSet2,
kCharSet1,
kCharSet3,
kCharSet12,
kCharSet13,
kCharSet10,
kCharSet8,
kCharSet4,
kCharSet14,
kCharSet11,
kCharSet18,
};
class SourceCharacterNode;
class IdentifierStartCharNode;
class IdentifierPartCharNode;
class AsciiLetterNode;
class NumericLiteralSeparatorNode;
class DecimalDigitsNode;
class DecimalDigitNode;
class NonZeroDigitNode;
class HexDigitNode;
class HexDigitsNode;
class CodePointNode;
class HexEscapeSequenceNode;
class Hex4DigitsNode;
class PatternNode;
class DisjunctionNode;
class AlternativeNode;
class TermNode;
class AssertionNode;
class QuantifierNode;
class QuantifierPrefixNode;
class AtomNode;
class SyntaxCharacterNode;
class PatternCharacterNode;
class AtomEscapeNode;
class CharacterEscapeNode;
class ControlEscapeNode;
class GroupSpecifierNode;
class GroupNameNode;
class RegExpIdentifierNameNode;
class RegExpIdentifierStartNode;
class RegExpIdentifierPartNode;
class RegExpUnicodeEscapeSequenceNode;
class UnicodeLeadSurrogateNode;
class UnicodeTrailSurrogateNode;
class HexLeadSurrogateNode;
class HexTrailSurrogateNode;
class HexNonSurrogateNode;
class IdentityEscapeNode;
class DecimalEscapeNode;
class CharacterClassEscapeNode;
class UnicodePropertyValueExpressionNode;
class UnicodePropertyNameNode;
class UnicodePropertyNameCharactersNode;
class UnicodePropertyValueNode;
class LoneUnicodePropertyNameOrValueNode;
class UnicodePropertyValueCharactersNode;
class UnicodePropertyValueCharacterNode;
class UnicodePropertyNameCharacterNode;
class CharacterClassNode;
class ClassContentsNode;
class NonemptyClassRangesNode;
class NonemptyClassRangesNoDashNode;
class ClassAtomNode;
class ClassAtomNoDashNode;
class ClassEscapeNode;
class ClassSetExpressionNode;
class ClassUnionNode;
class ClassIntersectionNode;
class ClassSubtractionNode;
class ClassSetRangeNode;
class ClassSetOperandNode;
class NestedClassNode;
class ClassStringDisjunctionNode;
class ClassStringDisjunctionContentsNode;
class ClassStringNode;
class NonEmptyClassStringNode;
class ClassSetCharacterNode;
class ClassSetReservedDoublePunctuatorNode;
class ClassSetSyntaxCharacterNode;
class ClassSetReservedPunctuatorNode;
class DecimalDigitsSubNode0;
class DecimalDigitsSubNode1;
class DecimalDigitsSubNode3;
class DecimalDigitsSubNode4;
class DecimalDigitsSubNode2;
class HexDigitsSubNode5;
class HexDigitsSubNode7;
class HexDigitsSubNode8;
class HexDigitsSubNode6;
class HexEscapeSequenceSubNode9;
class HexEscapeSequenceSubNode10;
class DisjunctionSubNode11;
class AlternativeSubNode12;
class TermSubNode13;
class TermSubNode14;
class AssertionSubNode15;
class AssertionSubNode16;
class AssertionSubNode17;
class AssertionSubNode18;
class AssertionSubNode19;
class AssertionSubNode20;
class QuantifierSubNode21;
class QuantifierPrefixSubNode22;
class QuantifierPrefixSubNode23;
class QuantifierPrefixSubNode24;
class AtomSubNode25;
class AtomSubNode26;
class AtomSubNode27;
class AtomSubNode28;
class AtomEscapeSubNode29;
class CharacterEscapeSubNode30;
class RegExpIdentifierNameSubNode31;
class RegExpIdentifierStartSubNode32;
class RegExpIdentifierStartSubNode33;
class RegExpIdentifierPartSubNode34;
class RegExpIdentifierPartSubNode35;
class RegExpUnicodeEscapeSequenceSubNode36;
class RegExpUnicodeEscapeSequenceSubNode37;
class RegExpUnicodeEscapeSequenceSubNode38;
class RegExpUnicodeEscapeSequenceSubNode39;
class RegExpUnicodeEscapeSequenceSubNode40;
class RegExpUnicodeEscapeSequenceSubNode41;
class DecimalEscapeSubNode42;
class CharacterClassEscapeSubNode43;
class UnicodePropertyValueExpressionSubNode44;
class UnicodePropertyNameCharactersSubNode45;
class UnicodePropertyValueCharactersSubNode46;
class CharacterClassSubNode47;
class ClassContentsSubNode48;
class ClassContentsSubNode49;
class NonemptyClassRangesSubNode50;
class NonemptyClassRangesSubNode51;
class NonemptyClassRangesNoDashSubNode52;
class NonemptyClassRangesNoDashSubNode53;
class ClassAtomNoDashSubNode54;
class ClassUnionSubNode55;
class ClassUnionSubNode56;
class ClassUnionSubNode57;
class ClassUnionSubNode58;
class ClassIntersectionSubNode59;
class ClassIntersectionSubNode60;
class ClassSubtractionSubNode61;
class ClassSubtractionSubNode62;
class NestedClassSubNode63;
class NestedClassSubNode64;
class NestedClassSubNode65;
class ClassStringDisjunctionContentsSubNode66;
class NonEmptyClassStringSubNode67;
class ClassSetCharacterSubNode68;
class ClassSetCharacterSubNode69;
class ClassSetCharacterSubNode70;
class Literal15;
class Literal16;
class Literal0;
class Literal17;
class Literal18;
class Literal14;
class Literal43;
class Literal38;
class Literal44;
class Literal40;
class Literal39;
class Literal36;
class Literal37;
class Literal19;
class Literal20;
class Literal41;
class Literal21;
class Literal8;
class Literal50;
class Literal2;
class Literal22;
class Literal7;
class Literal3;
class Literal23;
class Literal24;
class Literal5;
class Literal25;
class Literal48;
class Literal26;
class Literal6;
class Literal27;
class Literal4;
class Literal28;
class Literal29;
class Literal35;
class Literal9;
class Literal47;
class Literal10;
class Literal49;
class Literal30;
class Literal1;
class Literal31;
class Literal11;
class Literal46;
class Literal45;
class Literal12;
class Literal33;
class Literal34;
class Literal42;
class Literal13;
class Literal32;
class CharSet0;
class CharSet17;
class CharSet16;
class CharSet9;
class CharSet5;
class CharSet7;
class CharSet6;
class CharSet15;
class CharSet2;
class CharSet1;
class CharSet3;
class CharSet12;
class CharSet13;
class CharSet10;
class CharSet8;
class CharSet4;
class CharSet14;
class CharSet11;
class CharSet18;
inline constexpr absl::string_view kStrLiteral15 = "!!";
inline constexpr absl::string_view kStrLiteral16 = "##";
inline constexpr absl::string_view kStrLiteral0 = "$";
inline constexpr absl::string_view kStrLiteral17 = "$$";
inline constexpr absl::string_view kStrLiteral18 = "%%";
inline constexpr absl::string_view kStrLiteral14 = "&&";
inline constexpr absl::string_view kStrLiteral43 = "(";
inline constexpr absl::string_view kStrLiteral38 = "(?!";
inline constexpr absl::string_view kStrLiteral44 = "(?:";
inline constexpr absl::string_view kStrLiteral40 = "(?<!";
inline constexpr absl::string_view kStrLiteral39 = "(?<=";
inline constexpr absl::string_view kStrLiteral36 = "(?=";
inline constexpr absl::string_view kStrLiteral37 = ")";
inline constexpr absl::string_view kStrLiteral19 = "**";
inline constexpr absl::string_view kStrLiteral20 = "++";
inline constexpr absl::string_view kStrLiteral41 = ",";
inline constexpr absl::string_view kStrLiteral21 = ",,";
inline constexpr absl::string_view kStrLiteral8 = "-";
inline constexpr absl::string_view kStrLiteral50 = "--";
inline constexpr absl::string_view kStrLiteral2 = ".";
inline constexpr absl::string_view kStrLiteral22 = "..";
inline constexpr absl::string_view kStrLiteral7 = "/";
inline constexpr absl::string_view kStrLiteral3 = "0";
inline constexpr absl::string_view kStrLiteral23 = "::";
inline constexpr absl::string_view kStrLiteral24 = ";;";
inline constexpr absl::string_view kStrLiteral5 = "<";
inline constexpr absl::string_view kStrLiteral25 = "<<";
inline constexpr absl::string_view kStrLiteral48 = "=";
inline constexpr absl::string_view kStrLiteral26 = "==";
inline constexpr absl::string_view kStrLiteral6 = ">";
inline constexpr absl::string_view kStrLiteral27 = ">>";
inline constexpr absl::string_view kStrLiteral4 = "?";
inline constexpr absl::string_view kStrLiteral28 = "??";
inline constexpr absl::string_view kStrLiteral29 = "@@";
inline constexpr absl::string_view kStrLiteral35 = "B";
inline constexpr absl::string_view kStrLiteral9 = "[";
inline constexpr absl::string_view kStrLiteral47 = "\\\\u";
inline constexpr absl::string_view kStrLiteral10 = "]";
inline constexpr absl::string_view kStrLiteral49 = "^";
inline constexpr absl::string_view kStrLiteral30 = "^^";
inline constexpr absl::string_view kStrLiteral1 = "_";
inline constexpr absl::string_view kStrLiteral31 = "``";
inline constexpr absl::string_view kStrLiteral11 = "b";
inline constexpr absl::string_view kStrLiteral46 = "c";
inline constexpr absl::string_view kStrLiteral45 = "k";
inline constexpr absl::string_view kStrLiteral12 = "q{";
inline constexpr absl::string_view kStrLiteral33 = "u";
inline constexpr absl::string_view kStrLiteral34 = "u{";
inline constexpr absl::string_view kStrLiteral42 = "{";
inline constexpr absl::string_view kStrLiteral13 = "}";
inline constexpr absl::string_view kStrLiteral32 = "~~";
inline constexpr absl::string_view kStrCharSet0 = R"grammar(.)grammar";
inline constexpr absl::string_view kStrCharSet17 =
R"grammar([&!#%,:;<=>@`~-])grammar";
inline constexpr absl::string_view kStrCharSet16 =
R"grammar([()[\]{}/\\|-])grammar";
inline constexpr absl::string_view kStrCharSet9 = R"grammar([*+?])grammar";
inline constexpr absl::string_view kStrCharSet5 = R"grammar([0-9])grammar";
inline constexpr absl::string_view kStrCharSet7 =
R"grammar([0-9a-fA-F])grammar";
inline constexpr absl::string_view kStrCharSet6 = R"grammar([1-9])grammar";
inline constexpr absl::string_view kStrCharSet15 = R"grammar([\\])grammar";
inline constexpr absl::string_view kStrCharSet2 =
R"grammar([\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Mn}\p{Mc}\p{Nd}\p{Pc}])grammar";
inline constexpr absl::string_view kStrCharSet1 =
R"grammar([\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}])grammar";
inline constexpr absl::string_view kStrCharSet3 =
R"grammar([\x{200C}\x{200D}])grammar";
inline constexpr absl::string_view kStrCharSet12 =
R"grammar([\x{D800}-\x{DBFF}])grammar";
inline constexpr absl::string_view kStrCharSet13 =
R"grammar([\x{DC00}-\x{DFFF}])grammar";
inline constexpr absl::string_view kStrCharSet10 =
R"grammar([^$\\.*+?()[\]{}|])grammar";
inline constexpr absl::string_view kStrCharSet8 = R"grammar([^$])grammar";
inline constexpr absl::string_view kStrCharSet4 = R"grammar([a-zA-Z])grammar";
inline constexpr absl::string_view kStrCharSet14 = R"grammar([dDsSwW])grammar";
inline constexpr absl::string_view kStrCharSet11 = R"grammar([fnrtv])grammar";
inline constexpr absl::string_view kStrCharSet18 = R"grammar([pP])grammar";
class SourceCharacterNode final
: public TupleDomain<kSourceCharacterNode, CharSet0> {};
class IdentifierStartCharNode final
: public VariantDomain<kIdentifierStartCharNode, 0, CharSet1, Literal0,
Literal1> {};
class IdentifierPartCharNode final
: public VariantDomain<kIdentifierPartCharNode, 0, CharSet2, Literal0,
CharSet3> {};
class AsciiLetterNode final : public TupleDomain<kAsciiLetterNode, CharSet4> {};
class NumericLiteralSeparatorNode final
: public TupleDomain<kNumericLiteralSeparatorNode, Literal1> {};
class DecimalDigitsNode final
: public TupleDomain<kDecimalDigitsNode, DecimalDigitsSubNode0,
DecimalDigitsSubNode1> {};
class DecimalDigitNode final : public TupleDomain<kDecimalDigitNode, CharSet5> {
};
class NonZeroDigitNode final : public TupleDomain<kNonZeroDigitNode, CharSet6> {
};
class HexDigitNode final : public TupleDomain<kHexDigitNode, CharSet7> {};
class HexDigitsNode final
: public TupleDomain<kHexDigitsNode, HexDigitsSubNode5> {};
class CodePointNode final : public TupleDomain<kCodePointNode, HexDigitsNode> {
};
class HexEscapeSequenceNode final
: public VariantDomain<kHexEscapeSequenceNode, 0, HexEscapeSequenceSubNode9,
HexEscapeSequenceSubNode10> {};
class Hex4DigitsNode final
: public TupleDomain<kHex4DigitsNode, HexDigitNode, HexDigitNode,
HexDigitNode, HexDigitNode> {};
class PatternNode final : public TupleDomain<kPatternNode, DisjunctionNode> {};
class DisjunctionNode final
: public TupleDomain<kDisjunctionNode, DisjunctionSubNode11> {};
class AlternativeNode final
: public TupleDomain<kAlternativeNode, AlternativeSubNode12> {};
class TermNode final
: public VariantDomain<kTermNode, 0, AssertionNode, TermSubNode14> {};
class AssertionNode final
: public VariantDomain<kAssertionNode, 0, CharSet8, AssertionSubNode15,
AssertionSubNode16, AssertionSubNode17,
AssertionSubNode18, AssertionSubNode19,
AssertionSubNode20> {};
class QuantifierNode final
: public TupleDomain<kQuantifierNode, QuantifierPrefixNode,
QuantifierSubNode21> {};
class QuantifierPrefixNode final
: public VariantDomain<kQuantifierPrefixNode, 0, CharSet9,
QuantifierPrefixSubNode24> {};
class AtomNode final
: public VariantDomain<kAtomNode, 1, PatternCharacterNode, Literal2,
AtomSubNode25, CharacterClassNode, AtomSubNode27,
AtomSubNode28> {};
class SyntaxCharacterNode final
: public TupleDomain<kSyntaxCharacterNode, CharSet10> {};
class PatternCharacterNode final
: public TupleDomain<kPatternCharacterNode, SourceCharacterNode> {};
class AtomEscapeNode final
: public VariantDomain<kAtomEscapeNode, 1, DecimalEscapeNode,
CharacterClassEscapeNode, CharacterEscapeNode,
AtomEscapeSubNode29> {};
class CharacterEscapeNode final
: public VariantDomain<
kCharacterEscapeNode, 2, ControlEscapeNode, CharacterEscapeSubNode30,
Literal3, HexEscapeSequenceNode, RegExpUnicodeEscapeSequenceNode,
IdentityEscapeNode> {};
class ControlEscapeNode final
: public TupleDomain<kControlEscapeNode, CharSet11> {};
class GroupSpecifierNode final
: public TupleDomain<kGroupSpecifierNode, Literal4, GroupNameNode> {};
class GroupNameNode final
: public TupleDomain<kGroupNameNode, Literal5, RegExpIdentifierNameNode,
Literal6> {};
class RegExpIdentifierNameNode final
: public TupleDomain<kRegExpIdentifierNameNode, RegExpIdentifierStartNode,
RegExpIdentifierNameSubNode31> {};
class RegExpIdentifierStartNode final
: public VariantDomain<
kRegExpIdentifierStartNode, 0, IdentifierStartCharNode,
RegExpIdentifierStartSubNode32, RegExpIdentifierStartSubNode33> {};
class RegExpIdentifierPartNode final
: public VariantDomain<kRegExpIdentifierPartNode, 0, IdentifierPartCharNode,
RegExpIdentifierPartSubNode34,
RegExpIdentifierPartSubNode35> {};
class RegExpUnicodeEscapeSequenceNode final
: public VariantDomain<kRegExpUnicodeEscapeSequenceNode, 0,
RegExpUnicodeEscapeSequenceSubNode36,
RegExpUnicodeEscapeSequenceSubNode37,
RegExpUnicodeEscapeSequenceSubNode38,
RegExpUnicodeEscapeSequenceSubNode39,
RegExpUnicodeEscapeSequenceSubNode40,
RegExpUnicodeEscapeSequenceSubNode41> {};
class UnicodeLeadSurrogateNode final
: public TupleDomain<kUnicodeLeadSurrogateNode, CharSet12> {};
class UnicodeTrailSurrogateNode final
: public TupleDomain<kUnicodeTrailSurrogateNode, CharSet13> {};
class HexLeadSurrogateNode final
: public TupleDomain<kHexLeadSurrogateNode, Hex4DigitsNode> {};
class HexTrailSurrogateNode final
: public TupleDomain<kHexTrailSurrogateNode, Hex4DigitsNode> {};
class HexNonSurrogateNode final
: public TupleDomain<kHexNonSurrogateNode, Hex4DigitsNode> {};
class IdentityEscapeNode final
: public VariantDomain<kIdentityEscapeNode, 0, SyntaxCharacterNode,
Literal7, SourceCharacterNode> {};
class DecimalEscapeNode final
: public TupleDomain<kDecimalEscapeNode, NonZeroDigitNode,
DecimalEscapeSubNode42> {};
class CharacterClassEscapeNode final
: public VariantDomain<kCharacterClassEscapeNode, 0, CharSet14,
CharacterClassEscapeSubNode43> {};
class UnicodePropertyValueExpressionNode final
: public VariantDomain<kUnicodePropertyValueExpressionNode, 0,
UnicodePropertyValueExpressionSubNode44,
LoneUnicodePropertyNameOrValueNode> {};
class UnicodePropertyNameNode final
: public TupleDomain<kUnicodePropertyNameNode,
UnicodePropertyNameCharactersNode> {};
class UnicodePropertyNameCharactersNode final
: public TupleDomain<kUnicodePropertyNameCharactersNode,
UnicodePropertyNameCharactersSubNode45> {};
class UnicodePropertyValueNode final
: public TupleDomain<kUnicodePropertyValueNode,
UnicodePropertyValueCharactersNode> {};
class LoneUnicodePropertyNameOrValueNode final
: public TupleDomain<kLoneUnicodePropertyNameOrValueNode,
UnicodePropertyValueCharactersNode> {};
class UnicodePropertyValueCharactersNode final
: public TupleDomain<kUnicodePropertyValueCharactersNode,
UnicodePropertyValueCharactersSubNode46> {};
class UnicodePropertyValueCharacterNode final
: public VariantDomain<kUnicodePropertyValueCharacterNode, 1,
UnicodePropertyNameCharacterNode, DecimalDigitNode> {
};
class UnicodePropertyNameCharacterNode final
: public VariantDomain<kUnicodePropertyNameCharacterNode, 0,
AsciiLetterNode, Literal8> {};
class CharacterClassNode final
: public TupleDomain<kCharacterClassNode, Literal9, CharacterClassSubNode47,
ClassContentsNode, Literal10> {};
class ClassContentsNode final
: public VariantDomain<kClassContentsNode, 0, ClassContentsSubNode48,
ClassContentsSubNode49> {};
class NonemptyClassRangesNode final
: public VariantDomain<kNonemptyClassRangesNode, 0, ClassAtomNode,
NonemptyClassRangesSubNode50,
NonemptyClassRangesSubNode51> {};
class NonemptyClassRangesNoDashNode final
: public VariantDomain<kNonemptyClassRangesNoDashNode, 0, ClassAtomNode,
NonemptyClassRangesNoDashSubNode52,
NonemptyClassRangesNoDashSubNode53> {};
class ClassAtomNode final
: public VariantDomain<kClassAtomNode, 0, Literal8, ClassAtomNoDashNode> {};
class ClassAtomNoDashNode final
: public VariantDomain<kClassAtomNoDashNode, 0, SourceCharacterNode,
ClassAtomNoDashSubNode54> {};
class ClassEscapeNode final
: public VariantDomain<kClassEscapeNode, 0, Literal11, Literal8,
CharacterClassEscapeNode, CharacterEscapeNode> {};
class ClassSetExpressionNode final
: public VariantDomain<kClassSetExpressionNode, 0, ClassUnionNode,
ClassIntersectionNode, ClassSubtractionNode> {};
class ClassUnionNode final
: public VariantDomain<kClassUnionNode, 0, ClassUnionSubNode56,
ClassUnionSubNode58> {};
class ClassIntersectionNode final
: public TupleDomain<kClassIntersectionNode, ClassSetOperandNode,
ClassIntersectionSubNode59> {};
class ClassSubtractionNode final
: public TupleDomain<kClassSubtractionNode, ClassSetOperandNode,
ClassSubtractionSubNode61> {};
class ClassSetRangeNode final
: public TupleDomain<kClassSetRangeNode, ClassSetCharacterNode, Literal8,
ClassSetCharacterNode> {};
class ClassSetOperandNode final
: public VariantDomain<kClassSetOperandNode, 2, NestedClassNode,
ClassStringDisjunctionNode, ClassSetCharacterNode> {
};
class NestedClassNode final
: public VariantDomain<kNestedClassNode, 1, NestedClassSubNode64,
NestedClassSubNode65> {};
class ClassStringDisjunctionNode final
: public TupleDomain<kClassStringDisjunctionNode, CharSet15, Literal12,
ClassStringDisjunctionContentsNode, Literal13> {};
class ClassStringDisjunctionContentsNode final
: public TupleDomain<kClassStringDisjunctionContentsNode,
ClassStringDisjunctionContentsSubNode66> {};
class ClassStringNode final
: public TupleDomain<kClassStringNode, NonEmptyClassStringNode> {};
class NonEmptyClassStringNode final
: public TupleDomain<kNonEmptyClassStringNode, ClassSetCharacterNode,
NonEmptyClassStringSubNode67> {};
class ClassSetCharacterNode final
: public VariantDomain<kClassSetCharacterNode, 0, SourceCharacterNode,
ClassSetCharacterSubNode68,
ClassSetCharacterSubNode69,
ClassSetCharacterSubNode70> {};
class ClassSetReservedDoublePunctuatorNode final
: public VariantDomain<
kClassSetReservedDoublePunctuatorNode, 0, Literal14, Literal15,
Literal16, Literal17, Literal18, Literal19, Literal20, Literal21,
Literal22, Literal23, Literal24, Literal25, Literal26, Literal27,
Literal28, Literal29, Literal30, Literal31, Literal32> {};
class ClassSetSyntaxCharacterNode final
: public TupleDomain<kClassSetSyntaxCharacterNode, CharSet16> {};
class ClassSetReservedPunctuatorNode final
: public TupleDomain<kClassSetReservedPunctuatorNode, CharSet17> {};
class DecimalDigitsSubNode0 final
: public NonEmptyVector<kDecimalDigitsSubNode0, DecimalDigitNode> {};
class DecimalDigitsSubNode1 final
: public Vector<kDecimalDigitsSubNode1, DecimalDigitsSubNode2> {};
class DecimalDigitsSubNode3 final
: public Optional<kDecimalDigitsSubNode3, NumericLiteralSeparatorNode> {};
class DecimalDigitsSubNode4 final
: public NonEmptyVector<kDecimalDigitsSubNode4, DecimalDigitNode> {};
class DecimalDigitsSubNode2 final
: public TupleDomain<kDecimalDigitsSubNode2, DecimalDigitsSubNode3,
DecimalDigitsSubNode4> {};
class HexDigitsSubNode5 final
: public NonEmptyVector<kHexDigitsSubNode5, HexDigitsSubNode6> {};
class HexDigitsSubNode7 final
: public Optional<kHexDigitsSubNode7, HexDigitsSubNode8> {};
class HexDigitsSubNode8 final
: public TupleDomain<kHexDigitsSubNode8, NumericLiteralSeparatorNode,
HexDigitNode> {};
class HexDigitsSubNode6 final
: public TupleDomain<kHexDigitsSubNode6, HexDigitNode, HexDigitsSubNode7> {
};
class HexEscapeSequenceSubNode9 final
: public TupleDomain<kHexEscapeSequenceSubNode9, Literal33,
Hex4DigitsNode> {};
class HexEscapeSequenceSubNode10 final
: public TupleDomain<kHexEscapeSequenceSubNode10, Literal34, CodePointNode,
Literal13> {};
class DisjunctionSubNode11 final
: public NonEmptyVector<kDisjunctionSubNode11, AlternativeNode> {};
class AlternativeSubNode12 final
: public NonEmptyVector<kAlternativeSubNode12, TermNode> {};
class TermSubNode13 final : public Optional<kTermSubNode13, QuantifierNode> {};
class TermSubNode14 final
: public TupleDomain<kTermSubNode14, AtomNode, TermSubNode13> {};
class AssertionSubNode15 final
: public TupleDomain<kAssertionSubNode15, CharSet15, Literal11> {};
class AssertionSubNode16 final
: public TupleDomain<kAssertionSubNode16, CharSet15, Literal35> {};
class AssertionSubNode17 final
: public TupleDomain<kAssertionSubNode17, Literal36, DisjunctionNode,
Literal37> {};
class AssertionSubNode18 final
: public TupleDomain<kAssertionSubNode18, Literal38, DisjunctionNode,
Literal37> {};
class AssertionSubNode19 final
: public TupleDomain<kAssertionSubNode19, Literal39, DisjunctionNode,
Literal37> {};
class AssertionSubNode20 final
: public TupleDomain<kAssertionSubNode20, Literal40, DisjunctionNode,
Literal37> {};
class QuantifierSubNode21 final
: public Optional<kQuantifierSubNode21, Literal4> {};
class QuantifierPrefixSubNode22 final
: public Optional<kQuantifierPrefixSubNode22, Literal41> {};
class QuantifierPrefixSubNode23 final
: public Optional<kQuantifierPrefixSubNode23, DecimalDigitsNode> {};
class QuantifierPrefixSubNode24 final
: public TupleDomain<kQuantifierPrefixSubNode24, Literal42,
DecimalDigitsNode, QuantifierPrefixSubNode22,
QuantifierPrefixSubNode23, Literal13> {};
class AtomSubNode25 final
: public TupleDomain<kAtomSubNode25, CharSet15, AtomEscapeNode> {};
class AtomSubNode26 final
: public Optional<kAtomSubNode26, GroupSpecifierNode> {};
class AtomSubNode27 final
: public TupleDomain<kAtomSubNode27, Literal43, AtomSubNode26,
DisjunctionNode, Literal37> {};
class AtomSubNode28 final : public TupleDomain<kAtomSubNode28, Literal44,
DisjunctionNode, Literal37> {};
class AtomEscapeSubNode29 final
: public TupleDomain<kAtomEscapeSubNode29, Literal45, GroupNameNode> {};
class CharacterEscapeSubNode30 final
: public TupleDomain<kCharacterEscapeSubNode30, Literal46,
AsciiLetterNode> {};
class RegExpIdentifierNameSubNode31 final
: public NonEmptyVector<kRegExpIdentifierNameSubNode31,
RegExpIdentifierPartNode> {};
class RegExpIdentifierStartSubNode32 final
: public TupleDomain<kRegExpIdentifierStartSubNode32, CharSet15,
RegExpUnicodeEscapeSequenceNode> {};
class RegExpIdentifierStartSubNode33 final
: public TupleDomain<kRegExpIdentifierStartSubNode33,
UnicodeLeadSurrogateNode, UnicodeTrailSurrogateNode> {
};
class RegExpIdentifierPartSubNode34 final
: public TupleDomain<kRegExpIdentifierPartSubNode34, CharSet15,
RegExpUnicodeEscapeSequenceNode> {};
class RegExpIdentifierPartSubNode35 final
: public TupleDomain<kRegExpIdentifierPartSubNode35,
UnicodeLeadSurrogateNode, UnicodeTrailSurrogateNode> {
};
class RegExpUnicodeEscapeSequenceSubNode36 final
: public TupleDomain<kRegExpUnicodeEscapeSequenceSubNode36, Literal33,
HexLeadSurrogateNode, Literal47,
HexTrailSurrogateNode> {};
class RegExpUnicodeEscapeSequenceSubNode37 final
: public TupleDomain<kRegExpUnicodeEscapeSequenceSubNode37, Literal33,
HexLeadSurrogateNode> {};
class RegExpUnicodeEscapeSequenceSubNode38 final
: public TupleDomain<kRegExpUnicodeEscapeSequenceSubNode38, Literal33,
HexTrailSurrogateNode> {};
class RegExpUnicodeEscapeSequenceSubNode39 final
: public TupleDomain<kRegExpUnicodeEscapeSequenceSubNode39, Literal33,
HexNonSurrogateNode> {};
class RegExpUnicodeEscapeSequenceSubNode40 final
: public TupleDomain<kRegExpUnicodeEscapeSequenceSubNode40, Literal33,
Hex4DigitsNode> {};
class RegExpUnicodeEscapeSequenceSubNode41 final
: public TupleDomain<kRegExpUnicodeEscapeSequenceSubNode41, Literal34,
CodePointNode, Literal13> {};
class DecimalEscapeSubNode42 final
: public Optional<kDecimalEscapeSubNode42, DecimalDigitsNode> {};
class CharacterClassEscapeSubNode43 final
: public TupleDomain<kCharacterClassEscapeSubNode43, CharSet18, Literal42,
UnicodePropertyValueExpressionNode, Literal13> {};
class UnicodePropertyValueExpressionSubNode44 final
: public TupleDomain<kUnicodePropertyValueExpressionSubNode44,
UnicodePropertyNameNode, Literal48,
UnicodePropertyValueNode> {};
class UnicodePropertyNameCharactersSubNode45 final
: public NonEmptyVector<kUnicodePropertyNameCharactersSubNode45,
UnicodePropertyNameCharacterNode> {};
class UnicodePropertyValueCharactersSubNode46 final
: public NonEmptyVector<kUnicodePropertyValueCharactersSubNode46,
UnicodePropertyValueCharacterNode> {};
class CharacterClassSubNode47 final
: public Optional<kCharacterClassSubNode47, Literal49> {};
class ClassContentsSubNode48 final
: public Optional<kClassContentsSubNode48, NonemptyClassRangesNode> {};
class ClassContentsSubNode49 final
: public Optional<kClassContentsSubNode49, ClassSetExpressionNode> {};
class NonemptyClassRangesSubNode50 final
: public TupleDomain<kNonemptyClassRangesSubNode50, ClassAtomNode,
NonemptyClassRangesNoDashNode> {};
class NonemptyClassRangesSubNode51 final
: public TupleDomain<kNonemptyClassRangesSubNode51, ClassAtomNode, Literal8,
ClassAtomNode, ClassContentsNode> {};
class NonemptyClassRangesNoDashSubNode52 final
: public TupleDomain<kNonemptyClassRangesNoDashSubNode52,
ClassAtomNoDashNode, NonemptyClassRangesNoDashNode> {};
class NonemptyClassRangesNoDashSubNode53 final
: public TupleDomain<kNonemptyClassRangesNoDashSubNode53,
ClassAtomNoDashNode, Literal8, ClassAtomNode,
ClassContentsNode> {};
class ClassAtomNoDashSubNode54 final
: public TupleDomain<kClassAtomNoDashSubNode54, CharSet15,
ClassEscapeNode> {};
class ClassUnionSubNode55 final
: public Optional<kClassUnionSubNode55, ClassUnionNode> {};
class ClassUnionSubNode56 final
: public TupleDomain<kClassUnionSubNode56, ClassSetRangeNode,
ClassUnionSubNode55> {};
class ClassUnionSubNode57 final
: public Optional<kClassUnionSubNode57, ClassUnionNode> {};
class ClassUnionSubNode58 final
: public TupleDomain<kClassUnionSubNode58, ClassSetOperandNode,
ClassUnionSubNode57> {};
class ClassIntersectionSubNode59 final
: public NonEmptyVector<kClassIntersectionSubNode59,
ClassIntersectionSubNode60> {};
class ClassIntersectionSubNode60 final
: public TupleDomain<kClassIntersectionSubNode60, Literal14,
ClassSetOperandNode> {};
class ClassSubtractionSubNode61 final
: public NonEmptyVector<kClassSubtractionSubNode61,
ClassSubtractionSubNode62> {};
class ClassSubtractionSubNode62 final
: public TupleDomain<kClassSubtractionSubNode62, Literal50,
ClassSetOperandNode> {};
class NestedClassSubNode63 final
: public Optional<kNestedClassSubNode63, Literal49> {};
class NestedClassSubNode64 final
: public TupleDomain<kNestedClassSubNode64, Literal9, NestedClassSubNode63,
ClassContentsNode, Literal10> {};
class NestedClassSubNode65 final
: public TupleDomain<kNestedClassSubNode65, CharSet15,
CharacterClassEscapeNode> {};
class ClassStringDisjunctionContentsSubNode66 final
: public NonEmptyVector<kClassStringDisjunctionContentsSubNode66,
ClassStringNode> {};
class NonEmptyClassStringSubNode67 final
: public Optional<kNonEmptyClassStringSubNode67, NonEmptyClassStringNode> {
};
class ClassSetCharacterSubNode68 final
: public TupleDomain<kClassSetCharacterSubNode68, CharSet15,
CharacterEscapeNode> {};
class ClassSetCharacterSubNode69 final
: public TupleDomain<kClassSetCharacterSubNode69, CharSet15,
ClassSetReservedPunctuatorNode> {};
class ClassSetCharacterSubNode70 final
: public TupleDomain<kClassSetCharacterSubNode70, CharSet15, Literal11> {};
class Literal15 final : public StringLiteralDomain<kLiteral15, kStrLiteral15> {
};
class Literal16 final : public StringLiteralDomain<kLiteral16, kStrLiteral16> {
};
class Literal0 final : public StringLiteralDomain<kLiteral0, kStrLiteral0> {};
class Literal17 final : public StringLiteralDomain<kLiteral17, kStrLiteral17> {
};
class Literal18 final : public StringLiteralDomain<kLiteral18, kStrLiteral18> {
};
class Literal14 final : public StringLiteralDomain<kLiteral14, kStrLiteral14> {
};
class Literal43 final : public StringLiteralDomain<kLiteral43, kStrLiteral43> {
};
class Literal38 final : public StringLiteralDomain<kLiteral38, kStrLiteral38> {
};
class Literal44 final : public StringLiteralDomain<kLiteral44, kStrLiteral44> {
};
class Literal40 final : public StringLiteralDomain<kLiteral40, kStrLiteral40> {
};
class Literal39 final : public StringLiteralDomain<kLiteral39, kStrLiteral39> {
};
class Literal36 final : public StringLiteralDomain<kLiteral36, kStrLiteral36> {
};
class Literal37 final : public StringLiteralDomain<kLiteral37, kStrLiteral37> {
};
class Literal19 final : public StringLiteralDomain<kLiteral19, kStrLiteral19> {
};
class Literal20 final : public StringLiteralDomain<kLiteral20, kStrLiteral20> {
};
class Literal41 final : public StringLiteralDomain<kLiteral41, kStrLiteral41> {
};
class Literal21 final : public StringLiteralDomain<kLiteral21, kStrLiteral21> {
};
class Literal8 final : public StringLiteralDomain<kLiteral8, kStrLiteral8> {};
class Literal50 final : public StringLiteralDomain<kLiteral50, kStrLiteral50> {
};
class Literal2 final : public StringLiteralDomain<kLiteral2, kStrLiteral2> {};
class Literal22 final : public StringLiteralDomain<kLiteral22, kStrLiteral22> {
};
class Literal7 final : public StringLiteralDomain<kLiteral7, kStrLiteral7> {};
class Literal3 final : public StringLiteralDomain<kLiteral3, kStrLiteral3> {};
class Literal23 final : public StringLiteralDomain<kLiteral23, kStrLiteral23> {
};
class Literal24 final : public StringLiteralDomain<kLiteral24, kStrLiteral24> {
};
class Literal5 final : public StringLiteralDomain<kLiteral5, kStrLiteral5> {};
class Literal25 final : public StringLiteralDomain<kLiteral25, kStrLiteral25> {
};
class Literal48 final : public StringLiteralDomain<kLiteral48, kStrLiteral48> {
};
class Literal26 final : public StringLiteralDomain<kLiteral26, kStrLiteral26> {
};
class Literal6 final : public StringLiteralDomain<kLiteral6, kStrLiteral6> {};
class Literal27 final : public StringLiteralDomain<kLiteral27, kStrLiteral27> {
};
class Literal4 final : public StringLiteralDomain<kLiteral4, kStrLiteral4> {};
class Literal28 final : public StringLiteralDomain<kLiteral28, kStrLiteral28> {
};
class Literal29 final : public StringLiteralDomain<kLiteral29, kStrLiteral29> {
};
class Literal35 final : public StringLiteralDomain<kLiteral35, kStrLiteral35> {
};
class Literal9 final : public StringLiteralDomain<kLiteral9, kStrLiteral9> {};
class Literal47 final : public StringLiteralDomain<kLiteral47, kStrLiteral47> {
};
class Literal10 final : public StringLiteralDomain<kLiteral10, kStrLiteral10> {
};
class Literal49 final : public StringLiteralDomain<kLiteral49, kStrLiteral49> {
};
class Literal30 final : public StringLiteralDomain<kLiteral30, kStrLiteral30> {
};
class Literal1 final : public StringLiteralDomain<kLiteral1, kStrLiteral1> {};
class Literal31 final : public StringLiteralDomain<kLiteral31, kStrLiteral31> {
};
class Literal11 final : public StringLiteralDomain<kLiteral11, kStrLiteral11> {
};
class Literal46 final : public StringLiteralDomain<kLiteral46, kStrLiteral46> {
};
class Literal45 final : public StringLiteralDomain<kLiteral45, kStrLiteral45> {
};
class Literal12 final : public StringLiteralDomain<kLiteral12, kStrLiteral12> {
};
class Literal33 final : public StringLiteralDomain<kLiteral33, kStrLiteral33> {
};
class Literal34 final : public StringLiteralDomain<kLiteral34, kStrLiteral34> {
};
class Literal42 final : public StringLiteralDomain<kLiteral42, kStrLiteral42> {
};
class Literal13 final : public StringLiteralDomain<kLiteral13, kStrLiteral13> {
};
class Literal32 final : public StringLiteralDomain<kLiteral32, kStrLiteral32> {
};
class CharSet0 final : public RegexLiteralDomain<kCharSet0, kStrCharSet0> {};
class CharSet17 final : public RegexLiteralDomain<kCharSet17, kStrCharSet17> {};
class CharSet16 final : public RegexLiteralDomain<kCharSet16, kStrCharSet16> {};
class CharSet9 final : public RegexLiteralDomain<kCharSet9, kStrCharSet9> {};
class CharSet5 final : public RegexLiteralDomain<kCharSet5, kStrCharSet5> {};
class CharSet7 final : public RegexLiteralDomain<kCharSet7, kStrCharSet7> {};
class CharSet6 final : public RegexLiteralDomain<kCharSet6, kStrCharSet6> {};
class CharSet15 final : public RegexLiteralDomain<kCharSet15, kStrCharSet15> {};
class CharSet2 final : public RegexLiteralDomain<kCharSet2, kStrCharSet2> {};
class CharSet1 final : public RegexLiteralDomain<kCharSet1, kStrCharSet1> {};
class CharSet3 final : public RegexLiteralDomain<kCharSet3, kStrCharSet3> {};
class CharSet12 final : public RegexLiteralDomain<kCharSet12, kStrCharSet12> {};
class CharSet13 final : public RegexLiteralDomain<kCharSet13, kStrCharSet13> {};
class CharSet10 final : public RegexLiteralDomain<kCharSet10, kStrCharSet10> {};
class CharSet8 final : public RegexLiteralDomain<kCharSet8, kStrCharSet8> {};
class CharSet4 final : public RegexLiteralDomain<kCharSet4, kStrCharSet4> {};
class CharSet14 final : public RegexLiteralDomain<kCharSet14, kStrCharSet14> {};
class CharSet11 final : public RegexLiteralDomain<kCharSet11, kStrCharSet11> {};
class CharSet18 final : public RegexLiteralDomain<kCharSet18, kStrCharSet18> {};
} // namespace fuzztest::internal::grammar::pattern
namespace fuzztest::internal_no_adl {
inline auto InPatternGrammar() {
return internal::grammar::InGrammarImpl<
internal::grammar::pattern::PatternNode>();
}
} // namespace fuzztest::internal_no_adl
#endif // FUZZTEST_GRAMMARS_PATTERN_GRAMMAR_H_