#[derive(Clone, Debug, PartialEq, FromPrimitive)]
pub enum Javascript {
End = 0,
Identifier = 1,
HashBangLine = 2,
Export = 3,
STAR = 4,
Default = 5,
LBRACE = 6,
COMMA = 7,
RBRACE = 8,
As = 9,
Import2 = 10,
From = 11,
Var = 12,
Let = 13,
Const = 14,
Else = 15,
If = 16,
Switch = 17,
For = 18,
LPAREN = 19,
RPAREN = 20,
Await = 21,
In = 22,
Of = 23,
While = 24,
Do = 25,
Try = 26,
With = 27,
Break = 28,
Continue = 29,
Debugger = 30,
Return = 31,
Throw = 32,
SEMI = 33,
COLON = 34,
Case = 35,
Catch = 36,
Finally = 37,
Yield = 38,
EQ = 39,
LBRACK = 40,
RBRACK = 41,
LT = 42,
GT = 43,
SLASH = 44,
JsxText = 45,
Identifier2 = 46,
DOT = 47,
Class2 = 48,
Extends = 49,
Async = 50,
Function2 = 51,
EQGT = 52,
QMARKDOT = 53,
New = 54,
PLUSEQ = 55,
DASHEQ = 56,
STAREQ = 57,
SLASHEQ = 58,
PERCENTEQ = 59,
CARETEQ = 60,
AMPEQ = 61,
PIPEEQ = 62,
GTGTEQ = 63,
GTGTGTEQ = 64,
LTLTEQ = 65,
STARSTAREQ = 66,
AMPAMPEQ = 67,
PIPEPIPEEQ = 68,
QMARKQMARKEQ = 69,
DOTDOTDOT = 70,
QMARK = 71,
AMPAMP = 72,
PIPEPIPE = 73,
GTGT = 74,
GTGTGT = 75,
LTLT = 76,
AMP = 77,
CARET = 78,
PIPE = 79,
PLUS = 80,
DASH = 81,
PERCENT = 82,
STARSTAR = 83,
LTEQ = 84,
EQEQ = 85,
EQEQEQ = 86,
BANGEQ = 87,
BANGEQEQ = 88,
GTEQ = 89,
QMARKQMARK = 90,
Instanceof = 91,
BANG = 92,
TILDE = 93,
Typeof = 94,
Void = 95,
Delete = 96,
PLUSPLUS = 97,
DASHDASH = 98,
DQUOTE = 99,
StringToken1 = 100,
SQUOTE = 101,
StringToken2 = 102,
EscapeSequence = 103,
Comment = 104,
BQUOTE = 105,
DOLLARLBRACE = 106,
SLASH2 = 107,
RegexPattern = 108,
RegexFlags = 109,
Number = 110,
Target = 111,
This = 112,
Super = 113,
True = 114,
False = 115,
Null = 116,
Undefined = 117,
AT = 118,
Static = 119,
Get = 120,
Set = 121,
AutomaticSemicolon = 122,
TemplateChars = 123,
Program = 124,
ExportStatement = 125,
ExportClause = 126,
ExportSpecifier = 127,
Declaration = 128,
Import = 129,
ImportStatement = 130,
ImportClause = 131,
FromClause = 132,
NamespaceImport = 133,
NamedImports = 134,
ExpressionStatement = 135,
VariableDeclaration = 136,
LexicalDeclaration = 137,
VariableDeclarator = 138,
StatementBlock = 139,
ElseClause = 140,
IfStatement = 141,
SwitchStatement = 142,
ForStatement = 143,
ForInStatement = 144,
ForHeader = 145,
WhileStatement = 146,
DoStatement = 147,
TryStatement = 148,
WithStatement = 149,
BreakStatement = 150,
ContinueStatement = 151,
DebuggerStatement = 152,
ReturnStatement = 153,
ThrowStatement = 154,
EmptyStatement = 155,
LabeledStatement = 156,
SwitchBody = 157,
SwitchCase = 158,
SwitchDefault = 159,
CatchClause = 160,
FinallyClause = 161,
ParenthesizedExpression = 162,
Expression = 163,
PrimaryExpression = 164,
YieldExpression = 165,
Object = 166,
ObjectPattern = 167,
AssignmentPattern = 168,
ObjectAssignmentPattern = 169,
Array = 170,
ArrayPattern = 171,
JsxElement = 172,
JsxFragment = 173,
JsxExpression = 174,
JsxOpeningElement = 175,
NestedIdentifier = 176,
JsxNamespaceName = 177,
JsxClosingElement = 178,
JsxSelfClosingElement = 179,
JsxAttribute = 180,
Class = 181,
ClassDeclaration = 182,
ClassHeritage = 183,
Function = 184,
FunctionDeclaration = 185,
GeneratorFunction = 186,
GeneratorFunctionDeclaration = 187,
ArrowFunction = 188,
CallExpression = 189,
NewExpression = 190,
AwaitExpression = 191,
MemberExpression = 192,
SubscriptExpression = 193,
AssignmentExpression = 194,
AugmentedAssignmentLhs = 195,
AugmentedAssignmentExpression = 196,
Initializer = 197,
DestructuringPattern = 198,
SpreadElement = 199,
TernaryExpression = 200,
BinaryExpression = 201,
UnaryExpression = 202,
UpdateExpression = 203,
SequenceExpression = 204,
String = 205,
TemplateString = 206,
TemplateSubstitution = 207,
Regex = 208,
MetaProperty = 209,
Arguments = 210,
Decorator = 211,
MemberExpression2 = 212,
CallExpression2 = 213,
ClassBody = 214,
PublicFieldDefinition = 215,
FormalParameters = 216,
Pattern = 217,
RestPattern = 218,
MethodDefinition = 219,
Pair = 220,
PairPattern = 221,
PropertyName = 222,
ComputedPropertyName = 223,
ProgramRepeat1 = 224,
ExportStatementRepeat1 = 225,
ExportClauseRepeat1 = 226,
NamedImportsRepeat1 = 227,
VariableDeclarationRepeat1 = 228,
SwitchBodyRepeat1 = 229,
ObjectRepeat1 = 230,
ObjectPatternRepeat1 = 231,
ArrayRepeat1 = 232,
ArrayPatternRepeat1 = 233,
JsxElementRepeat1 = 234,
JsxOpeningElementRepeat1 = 235,
StringRepeat1 = 236,
StringRepeat2 = 237,
TemplateStringRepeat1 = 238,
ClassBodyRepeat1 = 239,
FormalParametersRepeat1 = 240,
ImportSpecifier = 241,
PropertyIdentifier = 242,
ShorthandPropertyIdentifier = 243,
ShorthandPropertyIdentifierPattern = 244,
StatementIdentifier = 245,
Error = 246,
}
#[allow(clippy::unreadable_literal)]
static KEYS: phf::Map<&'static str, Javascript> = ::phf::Map {
key: 732231254413039614,
disps: ::phf::Slice::Static(&[
(8, 237),
(0, 0),
(2, 105),
(0, 40),
(2, 169),
(1, 99),
(0, 0),
(1, 74),
(0, 11),
(0, 6),
(0, 167),
(0, 0),
(0, 65),
(0, 144),
(2, 170),
(0, 229),
(1, 72),
(13, 192),
(0, 3),
(0, 3),
(19, 60),
(1, 76),
(0, 139),
(0, 31),
(12, 120),
(3, 115),
(4, 117),
(0, 45),
(0, 134),
(0, 63),
(1, 20),
(0, 0),
(0, 22),
(0, 21),
(0, 10),
(0, 1),
(0, 1),
(0, 131),
(2, 1),
(1, 215),
(0, 48),
(13, 223),
(6, 46),
(1, 94),
(0, 46),
(0, 0),
(0, 42),
(0, 63),
]),
entries: ::phf::Slice::Static(&[
("hash_bang_line", Javascript::HashBangLine),
("computed_property_name", Javascript::ComputedPropertyName),
("import_statement", Javascript::ImportStatement),
("return", Javascript::Return),
("of", Javascript::Of),
("named_imports", Javascript::NamedImports),
("`", Javascript::BQUOTE),
("binary_expression", Javascript::BinaryExpression),
("false", Javascript::False),
("_from_clause", Javascript::FromClause),
("object_pattern_repeat1", Javascript::ObjectPatternRepeat1),
("jsx_element", Javascript::JsxElement),
("debugger", Javascript::Debugger),
("switch_body_repeat1", Javascript::SwitchBodyRepeat1),
("while_statement", Javascript::WhileStatement),
("object_repeat1", Javascript::ObjectRepeat1),
("escape_sequence", Javascript::EscapeSequence),
("else_clause", Javascript::ElseClause),
("statement_identifier", Javascript::StatementIdentifier),
(")", Javascript::RPAREN),
("+", Javascript::PLUS),
("jsx_expression", Javascript::JsxExpression),
("throw_statement", Javascript::ThrowStatement),
("decorator", Javascript::Decorator),
(
"variable_declaration_repeat1",
Javascript::VariableDeclarationRepeat1,
),
("return_statement", Javascript::ReturnStatement),
("switch_statement", Javascript::SwitchStatement),
("(", Javascript::LPAREN),
("call_expression", Javascript::CallExpression),
("function", Javascript::Function),
("switch_case", Javascript::SwitchCase),
("^", Javascript::CARET),
("empty_statement", Javascript::EmptyStatement),
("export_clause", Javascript::ExportClause),
(">>", Javascript::GTGT),
(
"generator_function_declaration",
Javascript::GeneratorFunctionDeclaration,
),
("template_string", Javascript::TemplateString),
("identifier", Javascript::Identifier),
("array_pattern_repeat1", Javascript::ArrayPatternRepeat1),
("generator_function", Javascript::GeneratorFunction),
("delete", Javascript::Delete),
("variable_declaration", Javascript::VariableDeclaration),
(
"formal_parameters_repeat1",
Javascript::FormalParametersRepeat1,
),
("with", Javascript::With),
("\'", Javascript::SQUOTE),
("_automatic_semicolon", Javascript::AutomaticSemicolon),
("-=", Javascript::DASHEQ),
("arrow_function", Javascript::ArrowFunction),
("variable_declarator", Javascript::VariableDeclarator),
("&", Javascript::AMP),
("import", Javascript::Import),
("yield", Javascript::Yield),
("method_definition", Javascript::MethodDefinition),
("object_pattern", Javascript::ObjectPattern),
("instanceof", Javascript::Instanceof),
("jsx_opening_element", Javascript::JsxOpeningElement),
("**", Javascript::STARSTAR),
("nested_identifier", Javascript::NestedIdentifier),
(">=", Javascript::GTEQ),
("program", Javascript::Program),
("set", Javascript::Set),
("%=", Javascript::PERCENTEQ),
("pair", Javascript::Pair),
("primary_expression", Javascript::PrimaryExpression),
("sequence_expression", Javascript::SequenceExpression),
("**=", Javascript::STARSTAREQ),
("spread_element", Javascript::SpreadElement),
("for_statement", Javascript::ForStatement),
("_destructuring_pattern", Javascript::DestructuringPattern),
("finally", Javascript::Finally),
("&&", Javascript::AMPAMP),
(":", Javascript::COLON),
("^=", Javascript::CARETEQ),
("assignment_pattern", Javascript::AssignmentPattern),
("async", Javascript::Async),
("array", Javascript::Array),
("switch_body", Javascript::SwitchBody),
("super", Javascript::Super),
("formal_parameters", Javascript::FormalParameters),
("const", Javascript::Const),
("namespace_import", Javascript::NamespaceImport),
("throw", Javascript::Throw),
(">>>=", Javascript::GTGTGTEQ),
(">>=", Javascript::GTGTEQ),
("catch", Javascript::Catch),
("/", Javascript::SLASH),
("]", Javascript::RBRACK),
("regex_pattern", Javascript::RegexPattern),
(">", Javascript::GT),
("expression", Javascript::Expression),
(
"jsx_self_closing_element",
Javascript::JsxSelfClosingElement,
),
("let", Javascript::Let),
("array_pattern", Javascript::ArrayPattern),
("pair_pattern", Javascript::PairPattern),
("${", Javascript::DOLLARLBRACE),
("export", Javascript::Export),
("do", Javascript::Do),
(";", Javascript::SEMI),
("property_identifier", Javascript::PropertyIdentifier),
("public_field_definition", Javascript::PublicFieldDefinition),
("}", Javascript::RBRACE),
("break_statement", Javascript::BreakStatement),
("class_heritage", Javascript::ClassHeritage),
("<<", Javascript::LTLT),
("*=", Javascript::STAREQ),
("export_statement", Javascript::ExportStatement),
("!==", Javascript::BANGEQEQ),
("template_string_repeat1", Javascript::TemplateStringRepeat1),
("default", Javascript::Default),
("%", Javascript::PERCENT),
("continue_statement", Javascript::ContinueStatement),
("from", Javascript::From),
("\\\"", Javascript::DQUOTE),
("??=", Javascript::QMARKQMARKEQ),
("ERROR", Javascript::Error),
("+=", Javascript::PLUSEQ),
("{", Javascript::LBRACE),
("as", Javascript::As),
("unary_expression", Javascript::UnaryExpression),
("debugger_statement", Javascript::DebuggerStatement),
("assignment_expression", Javascript::AssignmentExpression),
("while", Javascript::While),
(
"export_statement_repeat1",
Javascript::ExportStatementRepeat1,
),
("++", Javascript::PLUSPLUS),
("meta_property", Javascript::MetaProperty),
("target", Javascript::Target),
("_for_header", Javascript::ForHeader),
("regex_flags", Javascript::RegexFlags),
(
"parenthesized_expression",
Javascript::ParenthesizedExpression,
),
("function_declaration", Javascript::FunctionDeclaration),
("<", Javascript::LT),
("static", Javascript::Static),
("|=", Javascript::PIPEEQ),
("=", Javascript::EQ),
("with_statement", Javascript::WithStatement),
("?", Javascript::QMARK),
("!", Javascript::BANG),
(
"augmented_assignment_expression",
Javascript::AugmentedAssignmentExpression,
),
("yield_expression", Javascript::YieldExpression),
("catch_clause", Javascript::CatchClause),
("number", Javascript::Number),
("import_specifier", Javascript::ImportSpecifier),
("switch_default", Javascript::SwitchDefault),
("expression_statement", Javascript::ExpressionStatement),
("switch", Javascript::Switch),
("typeof", Javascript::Typeof),
("in", Javascript::In),
("...", Javascript::DOTDOTDOT),
("jsx_fragment", Javascript::JsxFragment),
("export_clause_repeat1", Javascript::ExportClauseRepeat1),
("new", Javascript::New),
("<<=", Javascript::LTLTEQ),
("for", Javascript::For),
("~", Javascript::TILDE),
("var", Javascript::Var),
("undefined", Javascript::Undefined),
("comment", Javascript::Comment),
("do_statement", Javascript::DoStatement),
("new_expression", Javascript::NewExpression),
("||=", Javascript::PIPEPIPEEQ),
("continue", Javascript::Continue),
("update_expression", Javascript::UpdateExpression),
("member_expression", Javascript::MemberExpression),
("else", Javascript::Else),
("statement_block", Javascript::StatementBlock),
("jsx_closing_element", Javascript::JsxClosingElement),
("try_statement", Javascript::TryStatement),
("string_token2", Javascript::StringToken2),
("regex", Javascript::Regex),
("class_declaration", Javascript::ClassDeclaration),
("class_body_repeat1", Javascript::ClassBodyRepeat1),
("case", Javascript::Case),
("string", Javascript::String),
("ternary_expression", Javascript::TernaryExpression),
("lexical_declaration", Javascript::LexicalDeclaration),
("==", Javascript::EQEQ),
("&=", Javascript::AMPEQ),
(">>>", Javascript::GTGTGT),
("jsx_element_repeat1", Javascript::JsxElementRepeat1),
("jsx_namespace_name", Javascript::JsxNamespaceName),
("===", Javascript::EQEQEQ),
("||", Javascript::PIPEPIPE),
("await_expression", Javascript::AwaitExpression),
(",", Javascript::COMMA),
("/=", Javascript::SLASHEQ),
("<=", Javascript::LTEQ),
("import_clause", Javascript::ImportClause),
("rest_pattern", Javascript::RestPattern),
("true", Javascript::True),
("await", Javascript::Await),
("arguments", Javascript::Arguments),
("_initializer", Javascript::Initializer),
("named_imports_repeat1", Javascript::NamedImportsRepeat1),
("end", Javascript::End),
("for_in_statement", Javascript::ForInStatement),
("subscript_expression", Javascript::SubscriptExpression),
("pattern", Javascript::Pattern),
("[", Javascript::LBRACK),
("class", Javascript::Class),
("-", Javascript::DASH),
("_template_chars", Javascript::TemplateChars),
("export_specifier", Javascript::ExportSpecifier),
("??", Javascript::QMARKQMARK),
(
"jsx_opening_element_repeat1",
Javascript::JsxOpeningElementRepeat1,
),
(".", Javascript::DOT),
("*", Javascript::STAR),
("if", Javascript::If),
("this", Javascript::This),
("finally_clause", Javascript::FinallyClause),
("labeled_statement", Javascript::LabeledStatement),
(
"shorthand_property_identifier_pattern",
Javascript::ShorthandPropertyIdentifierPattern,
),
(
"shorthand_property_identifier",
Javascript::ShorthandPropertyIdentifier,
),
("break", Javascript::Break),
("null", Javascript::Null),
("get", Javascript::Get),
("_property_name", Javascript::PropertyName),
(
"object_assignment_pattern",
Javascript::ObjectAssignmentPattern,
),
("program_repeat1", Javascript::ProgramRepeat1),
("object", Javascript::Object),
("declaration", Javascript::Declaration),
("string_repeat1", Javascript::StringRepeat1),
("!=", Javascript::BANGEQ),
("@", Javascript::AT),
("|", Javascript::PIPE),
("array_repeat1", Javascript::ArrayRepeat1),
("?.", Javascript::QMARKDOT),
(
"_augmented_assignment_lhs",
Javascript::AugmentedAssignmentLhs,
),
("--", Javascript::DASHDASH),
("jsx_attribute", Javascript::JsxAttribute),
("class_body", Javascript::ClassBody),
("template_substitution", Javascript::TemplateSubstitution),
("string_token1", Javascript::StringToken1),
("void", Javascript::Void),
("if_statement", Javascript::IfStatement),
("extends", Javascript::Extends),
("&&=", Javascript::AMPAMPEQ),
("try", Javascript::Try),
("jsx_text", Javascript::JsxText),
("=>", Javascript::EQGT),
("string_repeat2", Javascript::StringRepeat2),
]),
};
impl From<&str> for Javascript {
#[inline(always)]
fn from(key: &str) -> Self {
KEYS.get(key).unwrap().clone()
}
}
impl From<u16> for Javascript {
#[inline(always)]
fn from(x: u16) -> Self {
num::FromPrimitive::from_u16(x).unwrap_or(Self::Error)
}
}
impl PartialEq<u16> for Javascript {
#[inline(always)]
fn eq(&self, x: &u16) -> bool {
*self == Javascript::from(*x)
}
}
impl PartialEq<Javascript> for u16 {
#[inline(always)]
fn eq(&self, x: &Javascript) -> bool {
*x == *self
}
}