use num_derive::FromPrimitive;
#[derive(Clone, Debug, PartialEq, Eq, FromPrimitive)]
pub enum Java {
End = 0,
Identifier = 1,
DecimalIntegerLiteral = 2,
HexIntegerLiteral = 3,
OctalIntegerLiteral = 4,
BinaryIntegerLiteral = 5,
DecimalFloatingPointLiteral = 6,
HexFloatingPointLiteral = 7,
True = 8,
False = 9,
CharacterLiteral = 10,
DQUOTE = 11,
DQUOTEDQUOTEDQUOTE = 12,
StringFragment = 13,
MultilineStringFragmentToken1 = 14,
MultilineStringFragmentToken2 = 15,
BSLASHLBRACE = 16,
RBRACE = 17,
EscapeSequenceToken1 = 18,
EscapeSequence = 19,
NullLiteral = 20,
LPAREN = 21,
RPAREN = 22,
AMP = 23,
EQ = 24,
PLUSEQ = 25,
DASHEQ = 26,
STAREQ = 27,
SLASHEQ = 28,
AMPEQ = 29,
PIPEEQ = 30,
CARETEQ = 31,
PERCENTEQ = 32,
LTLTEQ = 33,
GTGTEQ = 34,
GTGTGTEQ = 35,
GT = 36,
LT = 37,
GTEQ = 38,
LTEQ = 39,
EQEQ = 40,
BANGEQ = 41,
AMPAMP = 42,
PIPEPIPE = 43,
PLUS = 44,
DASH = 45,
STAR = 46,
SLASH = 47,
PIPE = 48,
CARET = 49,
PERCENT = 50,
LTLT = 51,
GTGT = 52,
GTGTGT = 53,
Instanceof = 54,
Final = 55,
DASHGT = 56,
COMMA = 57,
QMARK = 58,
COLON = 59,
BANG = 60,
TILDE = 61,
PLUSPLUS = 62,
DASHDASH = 63,
New = 64,
LBRACK = 65,
RBRACK = 66,
DOT = 67,
Class = 68,
COLONCOLON = 69,
Extends = 70,
Switch = 71,
LBRACE = 72,
Case = 73,
Default = 74,
UnderscorePattern = 75,
When = 76,
SEMI = 77,
Assert = 78,
Do = 79,
While = 80,
Break = 81,
Continue = 82,
Return = 83,
Yield = 84,
Synchronized = 85,
Throw = 86,
Try = 87,
Catch = 88,
Finally = 89,
If = 90,
Else = 91,
For = 92,
AT = 93,
Open = 94,
Module = 95,
Requires = 96,
Transitive = 97,
Static = 98,
Exports = 99,
To = 100,
Opens = 101,
Uses = 102,
Provides = 103,
With = 104,
Package = 105,
Import = 106,
Enum = 107,
Public = 108,
Protected = 109,
Private = 110,
Abstract = 111,
Strictfp = 112,
Native = 113,
Transient = 114,
Volatile = 115,
Sealed = 116,
NonDASHsealed = 117,
Implements = 118,
Permits2 = 119,
Record = 120,
ATinterface = 121,
Interface = 122,
Byte = 123,
Short = 124,
Int = 125,
Long = 126,
Char = 127,
Float = 128,
Double = 129,
BooleanType = 130,
VoidType = 131,
DOTDOTDOT = 132,
Throws2 = 133,
This = 134,
Super = 135,
LineComment = 136,
BlockComment = 137,
Program = 138,
ToplevelStatement = 139,
Literal = 140,
StringLiteral = 141,
StringLiteral2 = 142,
MultilineStringLiteral = 143,
MultilineStringFragment = 144,
StringInterpolation = 145,
EscapeSequence2 = 146,
Expression = 147,
CastExpression = 148,
AssignmentExpression = 149,
BinaryExpression = 150,
InstanceofExpression = 151,
LambdaExpression = 152,
InferredParameters = 153,
TernaryExpression = 154,
UnaryExpression = 155,
UpdateExpression = 156,
PrimaryExpression = 157,
ArrayCreationExpression = 158,
DimensionsExpr = 159,
ParenthesizedExpression = 160,
ClassLiteral = 161,
ObjectCreationExpression = 162,
UnqualifiedObjectCreationExpression = 163,
FieldAccess = 164,
TemplateExpression = 165,
ArrayAccess = 166,
MethodInvocation = 167,
ArgumentList = 168,
MethodReference = 169,
TypeArguments = 170,
Wildcard = 171,
WildcardBounds = 172,
Dimensions = 173,
SwitchExpression = 174,
SwitchBlock = 175,
SwitchBlockStatementGroup = 176,
SwitchRule = 177,
SwitchLabel = 178,
Pattern = 179,
TypePattern = 180,
RecordPattern = 181,
RecordPatternBody = 182,
RecordPatternComponent = 183,
Guard = 184,
Statement = 185,
Block = 186,
ExpressionStatement = 187,
LabeledStatement = 188,
AssertStatement = 189,
DoStatement = 190,
BreakStatement = 191,
ContinueStatement = 192,
ReturnStatement = 193,
YieldStatement = 194,
SynchronizedStatement = 195,
ThrowStatement = 196,
TryStatement = 197,
CatchClause = 198,
CatchFormalParameter = 199,
CatchType = 200,
FinallyClause = 201,
TryWithResourcesStatement = 202,
ResourceSpecification = 203,
Resource = 204,
IfStatement = 205,
WhileStatement = 206,
ForStatement = 207,
EnhancedForStatement = 208,
Annotation2 = 209,
MarkerAnnotation = 210,
Annotation = 211,
AnnotationArgumentList = 212,
ElementValuePair = 213,
ElementValue = 214,
ElementValueArrayInitializer = 215,
Declaration = 216,
ModuleDeclaration = 217,
ModuleBody = 218,
ModuleDirective = 219,
RequiresModuleDirective = 220,
RequiresModifier = 221,
ExportsModuleDirective = 222,
OpensModuleDirective = 223,
UsesModuleDirective = 224,
ProvidesModuleDirective = 225,
PackageDeclaration = 226,
ImportDeclaration = 227,
Asterisk = 228,
EnumDeclaration = 229,
EnumBody = 230,
EnumBodyDeclarations = 231,
EnumConstant = 232,
ClassDeclaration = 233,
Modifiers = 234,
TypeParameters = 235,
TypeParameter = 236,
TypeBound = 237,
Superclass = 238,
SuperInterfaces = 239,
TypeList = 240,
Permits = 241,
ClassBody = 242,
StaticInitializer = 243,
ConstructorDeclaration = 244,
ConstructorDeclarator = 245,
ConstructorBody = 246,
ExplicitConstructorInvocation = 247,
ScopedIdentifier = 248,
FieldDeclaration = 249,
RecordDeclaration = 250,
AnnotationTypeDeclaration = 251,
AnnotationTypeBody = 252,
AnnotationTypeElementDeclaration = 253,
DefaultValue = 254,
InterfaceDeclaration = 255,
ExtendsInterfaces = 256,
InterfaceBody = 257,
ConstantDeclaration = 258,
VariableDeclaratorList = 259,
VariableDeclarator = 260,
VariableDeclaratorId = 261,
ArrayInitializer = 262,
Type = 263,
UnannotatedType = 264,
AnnotatedType = 265,
ScopedTypeIdentifier = 266,
GenericType = 267,
ArrayType = 268,
IntegralType = 269,
FloatingPointType = 270,
MethodHeader = 271,
MethodDeclarator = 272,
FormalParameters = 273,
FormalParameter = 274,
ReceiverParameter = 275,
SpreadParameter = 276,
Throws = 277,
LocalVariableDeclaration = 278,
MethodDeclaration = 279,
CompactConstructorDeclaration = 280,
ReservedIdentifier = 281,
ProgramRepeat1 = 282,
StringLiteralRepeat1 = 283,
MultilineStringLiteralRepeat1 = 284,
CastExpressionRepeat1 = 285,
InferredParametersRepeat1 = 286,
ArrayCreationExpressionRepeat1 = 287,
ArrayCreationExpressionRepeat2 = 288,
ArgumentListRepeat1 = 289,
TypeArgumentsRepeat1 = 290,
DimensionsRepeat1 = 291,
SwitchBlockRepeat1 = 292,
SwitchBlockRepeat2 = 293,
SwitchBlockStatementGroupRepeat1 = 294,
SwitchBlockStatementGroupRepeat2 = 295,
RecordPatternBodyRepeat1 = 296,
TryStatementRepeat1 = 297,
CatchTypeRepeat1 = 298,
ResourceSpecificationRepeat1 = 299,
ForStatementRepeat1 = 300,
ForStatementRepeat2 = 301,
AnnotationArgumentListRepeat1 = 302,
ElementValueArrayInitializerRepeat1 = 303,
ModuleBodyRepeat1 = 304,
RequiresModuleDirectiveRepeat1 = 305,
ExportsModuleDirectiveRepeat1 = 306,
ProvidesModuleDirectiveRepeat1 = 307,
EnumBodyRepeat1 = 308,
EnumBodyDeclarationsRepeat1 = 309,
ModifiersRepeat1 = 310,
TypeParametersRepeat1 = 311,
TypeBoundRepeat1 = 312,
TypeListRepeat1 = 313,
AnnotationTypeBodyRepeat1 = 314,
InterfaceBodyRepeat1 = 315,
VariableDeclaratorListRepeat1 = 316,
ArrayInitializerRepeat1 = 317,
FormalParametersRepeat1 = 318,
ReceiverParameterRepeat1 = 319,
TypeIdentifier = 320,
Error = 321,
}
impl From<Java> for &'static str {
#[inline(always)]
fn from(tok: Java) -> Self {
match tok {
Java::End => "end",
Java::Identifier => "identifier",
Java::DecimalIntegerLiteral => "decimal_integer_literal",
Java::HexIntegerLiteral => "hex_integer_literal",
Java::OctalIntegerLiteral => "octal_integer_literal",
Java::BinaryIntegerLiteral => "binary_integer_literal",
Java::DecimalFloatingPointLiteral => "decimal_floating_point_literal",
Java::HexFloatingPointLiteral => "hex_floating_point_literal",
Java::True => "true",
Java::False => "false",
Java::CharacterLiteral => "character_literal",
Java::DQUOTE => "\"",
Java::DQUOTEDQUOTEDQUOTE => "\"\"\"",
Java::StringFragment => "string_fragment",
Java::MultilineStringFragmentToken1 => "_multiline_string_fragment_token1",
Java::MultilineStringFragmentToken2 => "_multiline_string_fragment_token2",
Java::BSLASHLBRACE => "\\{",
Java::RBRACE => "}",
Java::EscapeSequenceToken1 => "_escape_sequence_token1",
Java::EscapeSequence => "escape_sequence",
Java::NullLiteral => "null_literal",
Java::LPAREN => "(",
Java::RPAREN => ")",
Java::AMP => "&",
Java::EQ => "=",
Java::PLUSEQ => "+=",
Java::DASHEQ => "-=",
Java::STAREQ => "*=",
Java::SLASHEQ => "/=",
Java::AMPEQ => "&=",
Java::PIPEEQ => "|=",
Java::CARETEQ => "^=",
Java::PERCENTEQ => "%=",
Java::LTLTEQ => "<<=",
Java::GTGTEQ => ">>=",
Java::GTGTGTEQ => ">>>=",
Java::GT => ">",
Java::LT => "<",
Java::GTEQ => ">=",
Java::LTEQ => "<=",
Java::EQEQ => "==",
Java::BANGEQ => "!=",
Java::AMPAMP => "&&",
Java::PIPEPIPE => "||",
Java::PLUS => "+",
Java::DASH => "-",
Java::STAR => "*",
Java::SLASH => "/",
Java::PIPE => "|",
Java::CARET => "^",
Java::PERCENT => "%",
Java::LTLT => "<<",
Java::GTGT => ">>",
Java::GTGTGT => ">>>",
Java::Instanceof => "instanceof",
Java::Final => "final",
Java::DASHGT => "->",
Java::COMMA => ",",
Java::QMARK => "?",
Java::COLON => ":",
Java::BANG => "!",
Java::TILDE => "~",
Java::PLUSPLUS => "++",
Java::DASHDASH => "--",
Java::New => "new",
Java::LBRACK => "[",
Java::RBRACK => "]",
Java::DOT => ".",
Java::Class => "class",
Java::COLONCOLON => "::",
Java::Extends => "extends",
Java::Switch => "switch",
Java::LBRACE => "{",
Java::Case => "case",
Java::Default => "default",
Java::UnderscorePattern => "underscore_pattern",
Java::When => "when",
Java::SEMI => ";",
Java::Assert => "assert",
Java::Do => "do",
Java::While => "while",
Java::Break => "break",
Java::Continue => "continue",
Java::Return => "return",
Java::Yield => "yield",
Java::Synchronized => "synchronized",
Java::Throw => "throw",
Java::Try => "try",
Java::Catch => "catch",
Java::Finally => "finally",
Java::If => "if",
Java::Else => "else",
Java::For => "for",
Java::AT => "@",
Java::Open => "open",
Java::Module => "module",
Java::Requires => "requires",
Java::Transitive => "transitive",
Java::Static => "static",
Java::Exports => "exports",
Java::To => "to",
Java::Opens => "opens",
Java::Uses => "uses",
Java::Provides => "provides",
Java::With => "with",
Java::Package => "package",
Java::Import => "import",
Java::Enum => "enum",
Java::Public => "public",
Java::Protected => "protected",
Java::Private => "private",
Java::Abstract => "abstract",
Java::Strictfp => "strictfp",
Java::Native => "native",
Java::Transient => "transient",
Java::Volatile => "volatile",
Java::Sealed => "sealed",
Java::NonDASHsealed => "non-sealed",
Java::Implements => "implements",
Java::Permits2 => "permits",
Java::Record => "record",
Java::ATinterface => "@interface",
Java::Interface => "interface",
Java::Byte => "byte",
Java::Short => "short",
Java::Int => "int",
Java::Long => "long",
Java::Char => "char",
Java::Float => "float",
Java::Double => "double",
Java::BooleanType => "boolean_type",
Java::VoidType => "void_type",
Java::DOTDOTDOT => "...",
Java::Throws2 => "throws",
Java::This => "this",
Java::Super => "super",
Java::LineComment => "line_comment",
Java::BlockComment => "block_comment",
Java::Program => "program",
Java::ToplevelStatement => "_toplevel_statement",
Java::Literal => "_literal",
Java::StringLiteral => "string_literal",
Java::StringLiteral2 => "_string_literal",
Java::MultilineStringLiteral => "_multiline_string_literal",
Java::MultilineStringFragment => "multiline_string_fragment",
Java::StringInterpolation => "string_interpolation",
Java::EscapeSequence2 => "_escape_sequence",
Java::Expression => "expression",
Java::CastExpression => "cast_expression",
Java::AssignmentExpression => "assignment_expression",
Java::BinaryExpression => "binary_expression",
Java::InstanceofExpression => "instanceof_expression",
Java::LambdaExpression => "lambda_expression",
Java::InferredParameters => "inferred_parameters",
Java::TernaryExpression => "ternary_expression",
Java::UnaryExpression => "unary_expression",
Java::UpdateExpression => "update_expression",
Java::PrimaryExpression => "primary_expression",
Java::ArrayCreationExpression => "array_creation_expression",
Java::DimensionsExpr => "dimensions_expr",
Java::ParenthesizedExpression => "parenthesized_expression",
Java::ClassLiteral => "class_literal",
Java::ObjectCreationExpression => "object_creation_expression",
Java::UnqualifiedObjectCreationExpression => "_unqualified_object_creation_expression",
Java::FieldAccess => "field_access",
Java::TemplateExpression => "template_expression",
Java::ArrayAccess => "array_access",
Java::MethodInvocation => "method_invocation",
Java::ArgumentList => "argument_list",
Java::MethodReference => "method_reference",
Java::TypeArguments => "type_arguments",
Java::Wildcard => "wildcard",
Java::WildcardBounds => "_wildcard_bounds",
Java::Dimensions => "dimensions",
Java::SwitchExpression => "switch_expression",
Java::SwitchBlock => "switch_block",
Java::SwitchBlockStatementGroup => "switch_block_statement_group",
Java::SwitchRule => "switch_rule",
Java::SwitchLabel => "switch_label",
Java::Pattern => "pattern",
Java::TypePattern => "type_pattern",
Java::RecordPattern => "record_pattern",
Java::RecordPatternBody => "record_pattern_body",
Java::RecordPatternComponent => "record_pattern_component",
Java::Guard => "guard",
Java::Statement => "statement",
Java::Block => "block",
Java::ExpressionStatement => "expression_statement",
Java::LabeledStatement => "labeled_statement",
Java::AssertStatement => "assert_statement",
Java::DoStatement => "do_statement",
Java::BreakStatement => "break_statement",
Java::ContinueStatement => "continue_statement",
Java::ReturnStatement => "return_statement",
Java::YieldStatement => "yield_statement",
Java::SynchronizedStatement => "synchronized_statement",
Java::ThrowStatement => "throw_statement",
Java::TryStatement => "try_statement",
Java::CatchClause => "catch_clause",
Java::CatchFormalParameter => "catch_formal_parameter",
Java::CatchType => "catch_type",
Java::FinallyClause => "finally_clause",
Java::TryWithResourcesStatement => "try_with_resources_statement",
Java::ResourceSpecification => "resource_specification",
Java::Resource => "resource",
Java::IfStatement => "if_statement",
Java::WhileStatement => "while_statement",
Java::ForStatement => "for_statement",
Java::EnhancedForStatement => "enhanced_for_statement",
Java::Annotation2 => "_annotation",
Java::MarkerAnnotation => "marker_annotation",
Java::Annotation => "annotation",
Java::AnnotationArgumentList => "annotation_argument_list",
Java::ElementValuePair => "element_value_pair",
Java::ElementValue => "_element_value",
Java::ElementValueArrayInitializer => "element_value_array_initializer",
Java::Declaration => "declaration",
Java::ModuleDeclaration => "module_declaration",
Java::ModuleBody => "module_body",
Java::ModuleDirective => "module_directive",
Java::RequiresModuleDirective => "requires_module_directive",
Java::RequiresModifier => "requires_modifier",
Java::ExportsModuleDirective => "exports_module_directive",
Java::OpensModuleDirective => "opens_module_directive",
Java::UsesModuleDirective => "uses_module_directive",
Java::ProvidesModuleDirective => "provides_module_directive",
Java::PackageDeclaration => "package_declaration",
Java::ImportDeclaration => "import_declaration",
Java::Asterisk => "asterisk",
Java::EnumDeclaration => "enum_declaration",
Java::EnumBody => "enum_body",
Java::EnumBodyDeclarations => "enum_body_declarations",
Java::EnumConstant => "enum_constant",
Java::ClassDeclaration => "class_declaration",
Java::Modifiers => "modifiers",
Java::TypeParameters => "type_parameters",
Java::TypeParameter => "type_parameter",
Java::TypeBound => "type_bound",
Java::Superclass => "superclass",
Java::SuperInterfaces => "super_interfaces",
Java::TypeList => "type_list",
Java::Permits => "permits",
Java::ClassBody => "class_body",
Java::StaticInitializer => "static_initializer",
Java::ConstructorDeclaration => "constructor_declaration",
Java::ConstructorDeclarator => "_constructor_declarator",
Java::ConstructorBody => "constructor_body",
Java::ExplicitConstructorInvocation => "explicit_constructor_invocation",
Java::ScopedIdentifier => "scoped_identifier",
Java::FieldDeclaration => "field_declaration",
Java::RecordDeclaration => "record_declaration",
Java::AnnotationTypeDeclaration => "annotation_type_declaration",
Java::AnnotationTypeBody => "annotation_type_body",
Java::AnnotationTypeElementDeclaration => "annotation_type_element_declaration",
Java::DefaultValue => "_default_value",
Java::InterfaceDeclaration => "interface_declaration",
Java::ExtendsInterfaces => "extends_interfaces",
Java::InterfaceBody => "interface_body",
Java::ConstantDeclaration => "constant_declaration",
Java::VariableDeclaratorList => "_variable_declarator_list",
Java::VariableDeclarator => "variable_declarator",
Java::VariableDeclaratorId => "_variable_declarator_id",
Java::ArrayInitializer => "array_initializer",
Java::Type => "_type",
Java::UnannotatedType => "_unannotated_type",
Java::AnnotatedType => "annotated_type",
Java::ScopedTypeIdentifier => "scoped_type_identifier",
Java::GenericType => "generic_type",
Java::ArrayType => "array_type",
Java::IntegralType => "integral_type",
Java::FloatingPointType => "floating_point_type",
Java::MethodHeader => "_method_header",
Java::MethodDeclarator => "_method_declarator",
Java::FormalParameters => "formal_parameters",
Java::FormalParameter => "formal_parameter",
Java::ReceiverParameter => "receiver_parameter",
Java::SpreadParameter => "spread_parameter",
Java::Throws => "throws",
Java::LocalVariableDeclaration => "local_variable_declaration",
Java::MethodDeclaration => "method_declaration",
Java::CompactConstructorDeclaration => "compact_constructor_declaration",
Java::ReservedIdentifier => "_reserved_identifier",
Java::ProgramRepeat1 => "program_repeat1",
Java::StringLiteralRepeat1 => "_string_literal_repeat1",
Java::MultilineStringLiteralRepeat1 => "_multiline_string_literal_repeat1",
Java::CastExpressionRepeat1 => "cast_expression_repeat1",
Java::InferredParametersRepeat1 => "inferred_parameters_repeat1",
Java::ArrayCreationExpressionRepeat1 => "array_creation_expression_repeat1",
Java::ArrayCreationExpressionRepeat2 => "array_creation_expression_repeat2",
Java::ArgumentListRepeat1 => "argument_list_repeat1",
Java::TypeArgumentsRepeat1 => "type_arguments_repeat1",
Java::DimensionsRepeat1 => "dimensions_repeat1",
Java::SwitchBlockRepeat1 => "switch_block_repeat1",
Java::SwitchBlockRepeat2 => "switch_block_repeat2",
Java::SwitchBlockStatementGroupRepeat1 => "switch_block_statement_group_repeat1",
Java::SwitchBlockStatementGroupRepeat2 => "switch_block_statement_group_repeat2",
Java::RecordPatternBodyRepeat1 => "record_pattern_body_repeat1",
Java::TryStatementRepeat1 => "try_statement_repeat1",
Java::CatchTypeRepeat1 => "catch_type_repeat1",
Java::ResourceSpecificationRepeat1 => "resource_specification_repeat1",
Java::ForStatementRepeat1 => "for_statement_repeat1",
Java::ForStatementRepeat2 => "for_statement_repeat2",
Java::AnnotationArgumentListRepeat1 => "annotation_argument_list_repeat1",
Java::ElementValueArrayInitializerRepeat1 => "element_value_array_initializer_repeat1",
Java::ModuleBodyRepeat1 => "module_body_repeat1",
Java::RequiresModuleDirectiveRepeat1 => "requires_module_directive_repeat1",
Java::ExportsModuleDirectiveRepeat1 => "exports_module_directive_repeat1",
Java::ProvidesModuleDirectiveRepeat1 => "provides_module_directive_repeat1",
Java::EnumBodyRepeat1 => "enum_body_repeat1",
Java::EnumBodyDeclarationsRepeat1 => "enum_body_declarations_repeat1",
Java::ModifiersRepeat1 => "modifiers_repeat1",
Java::TypeParametersRepeat1 => "type_parameters_repeat1",
Java::TypeBoundRepeat1 => "type_bound_repeat1",
Java::TypeListRepeat1 => "type_list_repeat1",
Java::AnnotationTypeBodyRepeat1 => "annotation_type_body_repeat1",
Java::InterfaceBodyRepeat1 => "interface_body_repeat1",
Java::VariableDeclaratorListRepeat1 => "_variable_declarator_list_repeat1",
Java::ArrayInitializerRepeat1 => "array_initializer_repeat1",
Java::FormalParametersRepeat1 => "formal_parameters_repeat1",
Java::ReceiverParameterRepeat1 => "receiver_parameter_repeat1",
Java::TypeIdentifier => "type_identifier",
Java::Error => "ERROR",
}
}
}
impl From<u16> for Java {
#[inline(always)]
fn from(x: u16) -> Self {
num::FromPrimitive::from_u16(x).unwrap_or(Self::Error)
}
}
impl PartialEq<u16> for Java {
#[inline(always)]
fn eq(&self, x: &u16) -> bool {
*self == Into::<Self>::into(*x)
}
}
impl PartialEq<Java> for u16 {
#[inline(always)]
fn eq(&self, x: &Java) -> bool {
*x == *self
}
}