2 * Copyright (c) 2016, Facebook, Inc.
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
11 * THIS FILE IS @generated; DO NOT EDIT IT
12 * To regenerate this file, run
14 * buck run //hphp/hack/src:generate_full_fidelity
20 #[derive(Debug, Copy, Clone)]
30 PrefixedStringExpression,
32 PipeVariableExpression,
33 FileAttributeSpecification,
42 NamespaceUseDeclaration,
43 NamespaceGroupUseDeclaration,
46 FunctionDeclarationHeader,
50 MethodishTraitResolution,
53 TraitUsePrecedenceItem,
55 TraitUseConflictResolution,
64 AttributeSpecification,
68 AlternateLoopStatement,
74 UsingStatementBlockScoped,
75 UsingStatementFunctionScoped,
76 DeclareDirectiveStatement,
77 DeclareBlockStatement,
83 AlternateElseifClause,
92 AlternateSwitchStatement,
108 Php7AnonymousFunction,
109 AnonymousFunctionUseClause,
113 ScopeResolutionExpression,
114 MemberSelectionExpression,
115 SafeMemberSelectionExpression,
116 EmbeddedMemberSelectionExpression,
119 PrefixUnaryExpression,
120 PostfixUnaryExpression,
122 InstanceofExpression,
125 NullableAsExpression,
126 ConditionalExpression,
130 HaltCompilerExpression,
132 FunctionCallExpression,
133 ParenthesizedExpression,
135 EmbeddedBracedExpression,
137 CollectionLiteralExpression,
138 ObjectCreationExpression,
140 ArrayCreationExpression,
141 ArrayIntrinsicExpression,
142 DarrayIntrinsicExpression,
143 DictionaryIntrinsicExpression,
144 KeysetIntrinsicExpression,
145 VarrayIntrinsicExpression,
146 VectorIntrinsicExpression,
149 EmbeddedSubscriptExpression,
150 AwaitableCreationExpression,
151 XHPChildrenDeclaration,
152 XHPChildrenParenthesizedList,
153 XHPCategoryDeclaration,
156 XHPClassAttributeDeclaration,
158 XHPSimpleClassAttribute,
167 TupleTypeExplicitSpecifier,
169 VectorArrayTypeSpecifier,
173 MapArrayTypeSpecifier,
174 DictionaryTypeSpecifier,
175 ClosureTypeSpecifier,
176 ClosureParameterTypeSpecifier,
177 ClassnameTypeSpecifier,
183 GenericTypeSpecifier,
184 NullableTypeSpecifier,
193 PocketAtomExpression,
194 PocketIdentifierExpression,
195 PocketAtomMappingDeclaration,
196 PocketEnumDeclaration,
197 PocketFieldTypeExprDeclaration,
198 PocketFieldTypeDeclaration,
199 PocketMappingIdDeclaration,
200 PocketMappingTypeDeclaration,
205 pub fn to_string(&self) -> &str {
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",