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,
StringLiteral = 11,
TextBlock = 12,
NullLiteral = 13,
LPAREN = 14,
AMP = 15,
RPAREN = 16,
EQ = 17,
PLUSEQ = 18,
DASHEQ = 19,
STAREQ = 20,
SLASHEQ = 21,
AMPEQ = 22,
PIPEEQ = 23,
CARETEQ = 24,
PERCENTEQ = 25,
LTLTEQ = 26,
GTGTEQ = 27,
GTGTGTEQ = 28,
GT = 29,
LT = 30,
GTEQ = 31,
LTEQ = 32,
EQEQ = 33,
BANGEQ = 34,
AMPAMP = 35,
PIPEPIPE = 36,
PLUS = 37,
DASH = 38,
STAR = 39,
SLASH = 40,
PIPE = 41,
CARET = 42,
PERCENT = 43,
LTLT = 44,
GTGT = 45,
GTGTGT = 46,
Instanceof = 47,
Final = 48,
DASHGT = 49,
COMMA = 50,
QMARK = 51,
COLON = 52,
BANG = 53,
TILDE = 54,
PLUSPLUS = 55,
DASHDASH = 56,
New = 57,
LBRACK = 58,
RBRACK = 59,
DOT = 60,
Class = 61,
COLONCOLON = 62,
Extends = 63,
Switch = 64,
LBRACE = 65,
RBRACE = 66,
Case = 67,
Default = 68,
SEMI = 69,
Assert = 70,
Do = 71,
While = 72,
Break = 73,
Continue = 74,
Return = 75,
Yield = 76,
Synchronized = 77,
Throw = 78,
Try = 79,
Catch = 80,
Finally = 81,
If = 82,
Else = 83,
For = 84,
AT = 85,
Open = 86,
Module = 87,
Requires = 88,
Transitive = 89,
Static = 90,
Exports = 91,
To = 92,
Opens = 93,
Uses = 94,
Provides = 95,
With = 96,
Package = 97,
Import = 98,
Enum = 99,
Public = 100,
Protected = 101,
Private = 102,
Abstract = 103,
Strictfp = 104,
Native = 105,
Transient = 106,
Volatile = 107,
Sealed = 108,
NonDASHsealed = 109,
Implements = 110,
Permits2 = 111,
Record = 112,
ATinterface = 113,
Interface = 114,
Byte = 115,
Short = 116,
Int = 117,
Long = 118,
Char = 119,
Float = 120,
Double = 121,
BooleanType = 122,
VoidType = 123,
DOTDOTDOT = 124,
Throws2 = 125,
This = 126,
Super = 127,
LineComment = 128,
BlockComment = 129,
Program = 130,
Literal = 131,
Expression = 132,
CastExpression = 133,
AssignmentExpression = 134,
BinaryExpression = 135,
InstanceofExpression = 136,
LambdaExpression = 137,
InferredParameters = 138,
TernaryExpression = 139,
UnaryExpression = 140,
UpdateExpression = 141,
PrimaryExpression = 142,
ArrayCreationExpression = 143,
DimensionsExpr = 144,
ParenthesizedExpression = 145,
ClassLiteral = 146,
ObjectCreationExpression = 147,
UnqualifiedObjectCreationExpression = 148,
FieldAccess = 149,
ArrayAccess = 150,
MethodInvocation = 151,
ArgumentList = 152,
MethodReference = 153,
TypeArguments = 154,
Wildcard = 155,
WildcardBounds = 156,
Dimensions = 157,
SwitchExpression = 158,
SwitchBlock = 159,
SwitchBlockStatementGroup = 160,
SwitchRule = 161,
SwitchLabel = 162,
Statement = 163,
Block = 164,
ExpressionStatement = 165,
LabeledStatement = 166,
AssertStatement = 167,
DoStatement = 168,
BreakStatement = 169,
ContinueStatement = 170,
ReturnStatement = 171,
YieldStatement = 172,
SynchronizedStatement = 173,
ThrowStatement = 174,
TryStatement = 175,
CatchClause = 176,
CatchFormalParameter = 177,
CatchType = 178,
FinallyClause = 179,
TryWithResourcesStatement = 180,
ResourceSpecification = 181,
Resource = 182,
IfStatement = 183,
WhileStatement = 184,
ForStatement = 185,
EnhancedForStatement = 186,
Annotation2 = 187,
MarkerAnnotation = 188,
Annotation = 189,
AnnotationArgumentList = 190,
ElementValuePair = 191,
ElementValue = 192,
ElementValueArrayInitializer = 193,
Declaration = 194,
ModuleDeclaration = 195,
ModuleBody = 196,
ModuleDirective = 197,
RequiresModuleDirective = 198,
RequiresModifier = 199,
ExportsModuleDirective = 200,
OpensModuleDirective = 201,
UsesModuleDirective = 202,
ProvidesModuleDirective = 203,
PackageDeclaration = 204,
ImportDeclaration = 205,
Asterisk = 206,
EnumDeclaration = 207,
EnumBody = 208,
EnumBodyDeclarations = 209,
EnumConstant = 210,
ClassDeclaration = 211,
Modifiers = 212,
TypeParameters = 213,
TypeParameter = 214,
TypeBound = 215,
Superclass = 216,
SuperInterfaces = 217,
TypeList = 218,
Permits = 219,
ClassBody = 220,
StaticInitializer = 221,
ConstructorDeclaration = 222,
ConstructorDeclarator = 223,
ConstructorBody = 224,
ExplicitConstructorInvocation = 225,
ScopedIdentifier = 226,
FieldDeclaration = 227,
RecordDeclaration = 228,
AnnotationTypeDeclaration = 229,
AnnotationTypeBody = 230,
AnnotationTypeElementDeclaration = 231,
DefaultValue = 232,
InterfaceDeclaration = 233,
ExtendsInterfaces = 234,
InterfaceBody = 235,
ConstantDeclaration = 236,
VariableDeclaratorList = 237,
VariableDeclarator = 238,
VariableDeclaratorId = 239,
ArrayInitializer = 240,
Type = 241,
UnannotatedType = 242,
AnnotatedType = 243,
ScopedTypeIdentifier = 244,
GenericType = 245,
ArrayType = 246,
IntegralType = 247,
FloatingPointType = 248,
MethodHeader = 249,
MethodDeclarator = 250,
FormalParameters = 251,
FormalParameter = 252,
ReceiverParameter = 253,
SpreadParameter = 254,
Throws = 255,
LocalVariableDeclaration = 256,
MethodDeclaration = 257,
CompactConstructorDeclaration = 258,
ProgramRepeat1 = 259,
CastExpressionRepeat1 = 260,
InferredParametersRepeat1 = 261,
ArrayCreationExpressionRepeat1 = 262,
ArrayCreationExpressionRepeat2 = 263,
ArgumentListRepeat1 = 264,
TypeArgumentsRepeat1 = 265,
DimensionsRepeat1 = 266,
SwitchBlockRepeat1 = 267,
SwitchBlockRepeat2 = 268,
SwitchBlockStatementGroupRepeat1 = 269,
TryStatementRepeat1 = 270,
CatchTypeRepeat1 = 271,
ResourceSpecificationRepeat1 = 272,
ForStatementRepeat1 = 273,
ForStatementRepeat2 = 274,
AnnotationArgumentListRepeat1 = 275,
ElementValueArrayInitializerRepeat1 = 276,
ModuleBodyRepeat1 = 277,
RequiresModuleDirectiveRepeat1 = 278,
ExportsModuleDirectiveRepeat1 = 279,
ProvidesModuleDirectiveRepeat1 = 280,
EnumBodyRepeat1 = 281,
EnumBodyDeclarationsRepeat1 = 282,
ModifiersRepeat1 = 283,
TypeParametersRepeat1 = 284,
TypeBoundRepeat1 = 285,
TypeListRepeat1 = 286,
AnnotationTypeBodyRepeat1 = 287,
InterfaceBodyRepeat1 = 288,
VariableDeclaratorListRepeat1 = 289,
ArrayInitializerRepeat1 = 290,
FormalParametersRepeat1 = 291,
TypeIdentifier = 292,
Error = 293,
}
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::StringLiteral => "string_literal",
Java::TextBlock => "text_block",
Java::NullLiteral => "null_literal",
Java::LPAREN => "(",
Java::AMP => "&",
Java::RPAREN => ")",
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::RBRACE => "}",
Java::Case => "case",
Java::Default => "default",
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::Literal => "_literal",
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::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::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::ProgramRepeat1 => "program_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::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::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 == Java::from(*x)
}
}
impl PartialEq<Java> for u16 {
#[inline(always)]
fn eq(&self, x: &Java) -> bool {
*x == *self
}
}