Syntax
[hiphop-php.git] / hphp / hack / src / parser / syntax_kind.rs
blob9aa3403b135e96f602bd9b9622a77181f24e9fe7
1 /**
2  * Copyright (c) 2016, Facebook, Inc.
3  * All rights reserved.
4  *
5  * This source code is licensed under the MIT license found in the
6  * LICENSE file in the "hack" directory of this source tree. An additional
7  * directory.
8  *
9  **
10  *
11  * THIS FILE IS @generated; DO NOT EDIT IT
12  * To regenerate this file, run
13  *
14  *   buck run //hphp/hack/src:generate_full_fidelity
15  *
16  **
17  *
18  */
20 #[derive(Debug, Copy, Clone)]
21 pub enum SyntaxKind {
22     Missing,
23     Token,
24     SyntaxList,
25     EndOfFile,
26     Script,
27     QualifiedName,
28     SimpleTypeSpecifier,
29     LiteralExpression,
30     PrefixedStringExpression,
31     VariableExpression,
32     PipeVariableExpression,
33     FileAttributeSpecification,
34     EnumDeclaration,
35     Enumerator,
36     AliasDeclaration,
37     PropertyDeclaration,
38     PropertyDeclarator,
39     NamespaceDeclaration,
40     NamespaceBody,
41     NamespaceEmptyBody,
42     NamespaceUseDeclaration,
43     NamespaceGroupUseDeclaration,
44     NamespaceUseClause,
45     FunctionDeclaration,
46     FunctionDeclarationHeader,
47     WhereClause,
48     WhereConstraint,
49     MethodishDeclaration,
50     MethodishTraitResolution,
51     ClassishDeclaration,
52     ClassishBody,
53     TraitUsePrecedenceItem,
54     TraitUseAliasItem,
55     TraitUseConflictResolution,
56     TraitUse,
57     RequireClause,
58     ConstDeclaration,
59     ConstantDeclarator,
60     TypeConstDeclaration,
61     DecoratedExpression,
62     ParameterDeclaration,
63     VariadicParameter,
64     AttributeSpecification,
65     InclusionExpression,
66     InclusionDirective,
67     CompoundStatement,
68     AlternateLoopStatement,
69     ExpressionStatement,
70     MarkupSection,
71     MarkupSuffix,
72     UnsetStatement,
73     LetStatement,
74     UsingStatementBlockScoped,
75     UsingStatementFunctionScoped,
76     DeclareDirectiveStatement,
77     DeclareBlockStatement,
78     WhileStatement,
79     IfStatement,
80     ElseifClause,
81     ElseClause,
82     AlternateIfStatement,
83     AlternateElseifClause,
84     AlternateElseClause,
85     TryStatement,
86     CatchClause,
87     FinallyClause,
88     DoStatement,
89     ForStatement,
90     ForeachStatement,
91     SwitchStatement,
92     AlternateSwitchStatement,
93     SwitchSection,
94     SwitchFallthrough,
95     CaseLabel,
96     DefaultLabel,
97     ReturnStatement,
98     GotoLabel,
99     GotoStatement,
100     ThrowStatement,
101     BreakStatement,
102     ContinueStatement,
103     EchoStatement,
104     ConcurrentStatement,
105     SimpleInitializer,
106     AnonymousClass,
107     AnonymousFunction,
108     Php7AnonymousFunction,
109     AnonymousFunctionUseClause,
110     LambdaExpression,
111     LambdaSignature,
112     CastExpression,
113     ScopeResolutionExpression,
114     MemberSelectionExpression,
115     SafeMemberSelectionExpression,
116     EmbeddedMemberSelectionExpression,
117     YieldExpression,
118     YieldFromExpression,
119     PrefixUnaryExpression,
120     PostfixUnaryExpression,
121     BinaryExpression,
122     InstanceofExpression,
123     IsExpression,
124     AsExpression,
125     NullableAsExpression,
126     ConditionalExpression,
127     EvalExpression,
128     EmptyExpression,
129     DefineExpression,
130     HaltCompilerExpression,
131     IssetExpression,
132     FunctionCallExpression,
133     ParenthesizedExpression,
134     BracedExpression,
135     EmbeddedBracedExpression,
136     ListExpression,
137     CollectionLiteralExpression,
138     ObjectCreationExpression,
139     ConstructorCall,
140     ArrayCreationExpression,
141     ArrayIntrinsicExpression,
142     DarrayIntrinsicExpression,
143     DictionaryIntrinsicExpression,
144     KeysetIntrinsicExpression,
145     VarrayIntrinsicExpression,
146     VectorIntrinsicExpression,
147     ElementInitializer,
148     SubscriptExpression,
149     EmbeddedSubscriptExpression,
150     AwaitableCreationExpression,
151     XHPChildrenDeclaration,
152     XHPChildrenParenthesizedList,
153     XHPCategoryDeclaration,
154     XHPEnumType,
155     XHPRequired,
156     XHPClassAttributeDeclaration,
157     XHPClassAttribute,
158     XHPSimpleClassAttribute,
159     XHPSimpleAttribute,
160     XHPSpreadAttribute,
161     XHPOpen,
162     XHPExpression,
163     XHPClose,
164     TypeConstant,
165     VectorTypeSpecifier,
166     KeysetTypeSpecifier,
167     TupleTypeExplicitSpecifier,
168     VarrayTypeSpecifier,
169     VectorArrayTypeSpecifier,
170     TypeParameter,
171     TypeConstraint,
172     DarrayTypeSpecifier,
173     MapArrayTypeSpecifier,
174     DictionaryTypeSpecifier,
175     ClosureTypeSpecifier,
176     ClosureParameterTypeSpecifier,
177     ClassnameTypeSpecifier,
178     FieldSpecifier,
179     FieldInitializer,
180     ShapeTypeSpecifier,
181     ShapeExpression,
182     TupleExpression,
183     GenericTypeSpecifier,
184     NullableTypeSpecifier,
185     LikeTypeSpecifier,
186     SoftTypeSpecifier,
187     ReifiedTypeArgument,
188     TypeArguments,
189     TypeParameters,
190     TupleTypeSpecifier,
191     ErrorSyntax,
192     ListItem,
193     PocketAtomExpression,
194     PocketIdentifierExpression,
195     PocketAtomMappingDeclaration,
196     PocketEnumDeclaration,
197     PocketFieldTypeExprDeclaration,
198     PocketFieldTypeDeclaration,
199     PocketMappingIdDeclaration,
200     PocketMappingTypeDeclaration,
204 impl SyntaxKind {
205     pub fn to_string(&self) -> &str {
206         match self {
207             SyntaxKind::SyntaxList => "list",
208             SyntaxKind::Missing => "missing",
209             SyntaxKind::Token => "token",
210             SyntaxKind::EndOfFile                         => "end_of_file",
211             SyntaxKind::Script                            => "script",
212             SyntaxKind::QualifiedName                     => "qualified_name",
213             SyntaxKind::SimpleTypeSpecifier               => "simple_type_specifier",
214             SyntaxKind::LiteralExpression                 => "literal",
215             SyntaxKind::PrefixedStringExpression          => "prefixed_string",
216             SyntaxKind::VariableExpression                => "variable",
217             SyntaxKind::PipeVariableExpression            => "pipe_variable",
218             SyntaxKind::FileAttributeSpecification        => "file_attribute_specification",
219             SyntaxKind::EnumDeclaration                   => "enum_declaration",
220             SyntaxKind::Enumerator                        => "enumerator",
221             SyntaxKind::AliasDeclaration                  => "alias_declaration",
222             SyntaxKind::PropertyDeclaration               => "property_declaration",
223             SyntaxKind::PropertyDeclarator                => "property_declarator",
224             SyntaxKind::NamespaceDeclaration              => "namespace_declaration",
225             SyntaxKind::NamespaceBody                     => "namespace_body",
226             SyntaxKind::NamespaceEmptyBody                => "namespace_empty_body",
227             SyntaxKind::NamespaceUseDeclaration           => "namespace_use_declaration",
228             SyntaxKind::NamespaceGroupUseDeclaration      => "namespace_group_use_declaration",
229             SyntaxKind::NamespaceUseClause                => "namespace_use_clause",
230             SyntaxKind::FunctionDeclaration               => "function_declaration",
231             SyntaxKind::FunctionDeclarationHeader         => "function_declaration_header",
232             SyntaxKind::WhereClause                       => "where_clause",
233             SyntaxKind::WhereConstraint                   => "where_constraint",
234             SyntaxKind::MethodishDeclaration              => "methodish_declaration",
235             SyntaxKind::MethodishTraitResolution          => "methodish_trait_resolution",
236             SyntaxKind::ClassishDeclaration               => "classish_declaration",
237             SyntaxKind::ClassishBody                      => "classish_body",
238             SyntaxKind::TraitUsePrecedenceItem            => "trait_use_precedence_item",
239             SyntaxKind::TraitUseAliasItem                 => "trait_use_alias_item",
240             SyntaxKind::TraitUseConflictResolution        => "trait_use_conflict_resolution",
241             SyntaxKind::TraitUse                          => "trait_use",
242             SyntaxKind::RequireClause                     => "require_clause",
243             SyntaxKind::ConstDeclaration                  => "const_declaration",
244             SyntaxKind::ConstantDeclarator                => "constant_declarator",
245             SyntaxKind::TypeConstDeclaration              => "type_const_declaration",
246             SyntaxKind::DecoratedExpression               => "decorated_expression",
247             SyntaxKind::ParameterDeclaration              => "parameter_declaration",
248             SyntaxKind::VariadicParameter                 => "variadic_parameter",
249             SyntaxKind::AttributeSpecification            => "attribute_specification",
250             SyntaxKind::InclusionExpression               => "inclusion_expression",
251             SyntaxKind::InclusionDirective                => "inclusion_directive",
252             SyntaxKind::CompoundStatement                 => "compound_statement",
253             SyntaxKind::AlternateLoopStatement            => "alternate_loop_statement",
254             SyntaxKind::ExpressionStatement               => "expression_statement",
255             SyntaxKind::MarkupSection                     => "markup_section",
256             SyntaxKind::MarkupSuffix                      => "markup_suffix",
257             SyntaxKind::UnsetStatement                    => "unset_statement",
258             SyntaxKind::LetStatement                      => "let_statement",
259             SyntaxKind::UsingStatementBlockScoped         => "using_statement_block_scoped",
260             SyntaxKind::UsingStatementFunctionScoped      => "using_statement_function_scoped",
261             SyntaxKind::DeclareDirectiveStatement         => "declare_directive_statement",
262             SyntaxKind::DeclareBlockStatement             => "declare_block_statement",
263             SyntaxKind::WhileStatement                    => "while_statement",
264             SyntaxKind::IfStatement                       => "if_statement",
265             SyntaxKind::ElseifClause                      => "elseif_clause",
266             SyntaxKind::ElseClause                        => "else_clause",
267             SyntaxKind::AlternateIfStatement              => "alternate_if_statement",
268             SyntaxKind::AlternateElseifClause             => "alternate_elseif_clause",
269             SyntaxKind::AlternateElseClause               => "alternate_else_clause",
270             SyntaxKind::TryStatement                      => "try_statement",
271             SyntaxKind::CatchClause                       => "catch_clause",
272             SyntaxKind::FinallyClause                     => "finally_clause",
273             SyntaxKind::DoStatement                       => "do_statement",
274             SyntaxKind::ForStatement                      => "for_statement",
275             SyntaxKind::ForeachStatement                  => "foreach_statement",
276             SyntaxKind::SwitchStatement                   => "switch_statement",
277             SyntaxKind::AlternateSwitchStatement          => "alternate_switch_statement",
278             SyntaxKind::SwitchSection                     => "switch_section",
279             SyntaxKind::SwitchFallthrough                 => "switch_fallthrough",
280             SyntaxKind::CaseLabel                         => "case_label",
281             SyntaxKind::DefaultLabel                      => "default_label",
282             SyntaxKind::ReturnStatement                   => "return_statement",
283             SyntaxKind::GotoLabel                         => "goto_label",
284             SyntaxKind::GotoStatement                     => "goto_statement",
285             SyntaxKind::ThrowStatement                    => "throw_statement",
286             SyntaxKind::BreakStatement                    => "break_statement",
287             SyntaxKind::ContinueStatement                 => "continue_statement",
288             SyntaxKind::EchoStatement                     => "echo_statement",
289             SyntaxKind::ConcurrentStatement               => "concurrent_statement",
290             SyntaxKind::SimpleInitializer                 => "simple_initializer",
291             SyntaxKind::AnonymousClass                    => "anonymous_class",
292             SyntaxKind::AnonymousFunction                 => "anonymous_function",
293             SyntaxKind::Php7AnonymousFunction             => "php7_anonymous_function",
294             SyntaxKind::AnonymousFunctionUseClause        => "anonymous_function_use_clause",
295             SyntaxKind::LambdaExpression                  => "lambda_expression",
296             SyntaxKind::LambdaSignature                   => "lambda_signature",
297             SyntaxKind::CastExpression                    => "cast_expression",
298             SyntaxKind::ScopeResolutionExpression         => "scope_resolution_expression",
299             SyntaxKind::MemberSelectionExpression         => "member_selection_expression",
300             SyntaxKind::SafeMemberSelectionExpression     => "safe_member_selection_expression",
301             SyntaxKind::EmbeddedMemberSelectionExpression => "embedded_member_selection_expression",
302             SyntaxKind::YieldExpression                   => "yield_expression",
303             SyntaxKind::YieldFromExpression               => "yield_from_expression",
304             SyntaxKind::PrefixUnaryExpression             => "prefix_unary_expression",
305             SyntaxKind::PostfixUnaryExpression            => "postfix_unary_expression",
306             SyntaxKind::BinaryExpression                  => "binary_expression",
307             SyntaxKind::InstanceofExpression              => "instanceof_expression",
308             SyntaxKind::IsExpression                      => "is_expression",
309             SyntaxKind::AsExpression                      => "as_expression",
310             SyntaxKind::NullableAsExpression              => "nullable_as_expression",
311             SyntaxKind::ConditionalExpression             => "conditional_expression",
312             SyntaxKind::EvalExpression                    => "eval_expression",
313             SyntaxKind::EmptyExpression                   => "empty_expression",
314             SyntaxKind::DefineExpression                  => "define_expression",
315             SyntaxKind::HaltCompilerExpression            => "halt_compiler_expression",
316             SyntaxKind::IssetExpression                   => "isset_expression",
317             SyntaxKind::FunctionCallExpression            => "function_call_expression",
318             SyntaxKind::ParenthesizedExpression           => "parenthesized_expression",
319             SyntaxKind::BracedExpression                  => "braced_expression",
320             SyntaxKind::EmbeddedBracedExpression          => "embedded_braced_expression",
321             SyntaxKind::ListExpression                    => "list_expression",
322             SyntaxKind::CollectionLiteralExpression       => "collection_literal_expression",
323             SyntaxKind::ObjectCreationExpression          => "object_creation_expression",
324             SyntaxKind::ConstructorCall                   => "constructor_call",
325             SyntaxKind::ArrayCreationExpression           => "array_creation_expression",
326             SyntaxKind::ArrayIntrinsicExpression          => "array_intrinsic_expression",
327             SyntaxKind::DarrayIntrinsicExpression         => "darray_intrinsic_expression",
328             SyntaxKind::DictionaryIntrinsicExpression     => "dictionary_intrinsic_expression",
329             SyntaxKind::KeysetIntrinsicExpression         => "keyset_intrinsic_expression",
330             SyntaxKind::VarrayIntrinsicExpression         => "varray_intrinsic_expression",
331             SyntaxKind::VectorIntrinsicExpression         => "vector_intrinsic_expression",
332             SyntaxKind::ElementInitializer                => "element_initializer",
333             SyntaxKind::SubscriptExpression               => "subscript_expression",
334             SyntaxKind::EmbeddedSubscriptExpression       => "embedded_subscript_expression",
335             SyntaxKind::AwaitableCreationExpression       => "awaitable_creation_expression",
336             SyntaxKind::XHPChildrenDeclaration            => "xhp_children_declaration",
337             SyntaxKind::XHPChildrenParenthesizedList      => "xhp_children_parenthesized_list",
338             SyntaxKind::XHPCategoryDeclaration            => "xhp_category_declaration",
339             SyntaxKind::XHPEnumType                       => "xhp_enum_type",
340             SyntaxKind::XHPRequired                       => "xhp_required",
341             SyntaxKind::XHPClassAttributeDeclaration      => "xhp_class_attribute_declaration",
342             SyntaxKind::XHPClassAttribute                 => "xhp_class_attribute",
343             SyntaxKind::XHPSimpleClassAttribute           => "xhp_simple_class_attribute",
344             SyntaxKind::XHPSimpleAttribute                => "xhp_simple_attribute",
345             SyntaxKind::XHPSpreadAttribute                => "xhp_spread_attribute",
346             SyntaxKind::XHPOpen                           => "xhp_open",
347             SyntaxKind::XHPExpression                     => "xhp_expression",
348             SyntaxKind::XHPClose                          => "xhp_close",
349             SyntaxKind::TypeConstant                      => "type_constant",
350             SyntaxKind::VectorTypeSpecifier               => "vector_type_specifier",
351             SyntaxKind::KeysetTypeSpecifier               => "keyset_type_specifier",
352             SyntaxKind::TupleTypeExplicitSpecifier        => "tuple_type_explicit_specifier",
353             SyntaxKind::VarrayTypeSpecifier               => "varray_type_specifier",
354             SyntaxKind::VectorArrayTypeSpecifier          => "vector_array_type_specifier",
355             SyntaxKind::TypeParameter                     => "type_parameter",
356             SyntaxKind::TypeConstraint                    => "type_constraint",
357             SyntaxKind::DarrayTypeSpecifier               => "darray_type_specifier",
358             SyntaxKind::MapArrayTypeSpecifier             => "map_array_type_specifier",
359             SyntaxKind::DictionaryTypeSpecifier           => "dictionary_type_specifier",
360             SyntaxKind::ClosureTypeSpecifier              => "closure_type_specifier",
361             SyntaxKind::ClosureParameterTypeSpecifier     => "closure_parameter_type_specifier",
362             SyntaxKind::ClassnameTypeSpecifier            => "classname_type_specifier",
363             SyntaxKind::FieldSpecifier                    => "field_specifier",
364             SyntaxKind::FieldInitializer                  => "field_initializer",
365             SyntaxKind::ShapeTypeSpecifier                => "shape_type_specifier",
366             SyntaxKind::ShapeExpression                   => "shape_expression",
367             SyntaxKind::TupleExpression                   => "tuple_expression",
368             SyntaxKind::GenericTypeSpecifier              => "generic_type_specifier",
369             SyntaxKind::NullableTypeSpecifier             => "nullable_type_specifier",
370             SyntaxKind::LikeTypeSpecifier                 => "like_type_specifier",
371             SyntaxKind::SoftTypeSpecifier                 => "soft_type_specifier",
372             SyntaxKind::ReifiedTypeArgument               => "reified_type_argument",
373             SyntaxKind::TypeArguments                     => "type_arguments",
374             SyntaxKind::TypeParameters                    => "type_parameters",
375             SyntaxKind::TupleTypeSpecifier                => "tuple_type_specifier",
376             SyntaxKind::ErrorSyntax                       => "error",
377             SyntaxKind::ListItem                          => "list_item",
378             SyntaxKind::PocketAtomExpression              => "pocket_atom",
379             SyntaxKind::PocketIdentifierExpression        => "pocket_identifier",
380             SyntaxKind::PocketAtomMappingDeclaration      => "pocket_atom_mapping",
381             SyntaxKind::PocketEnumDeclaration             => "pocket_enum_declaration",
382             SyntaxKind::PocketFieldTypeExprDeclaration    => "pocket_field_type_expr_declaration",
383             SyntaxKind::PocketFieldTypeDeclaration        => "pocket_field_type_declaration",
384             SyntaxKind::PocketMappingIdDeclaration        => "pocket_mapping_id_declaration",
385             SyntaxKind::PocketMappingTypeDeclaration      => "pocket_mapping_type_declaration",
386         }
387     }