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
19 use crate::{syntax_kind::SyntaxKind, lexable_token::LexableToken};
20 use super::{syntax::Syntax, syntax_variant_generated::SyntaxVariant};
22 impl<T: LexableToken, V> Syntax<'_, T, V> {
23 pub fn kind(&self) -> SyntaxKind {
24 match &self.children {
25 SyntaxVariant::Missing => SyntaxKind::Missing,
26 SyntaxVariant::Token (t) => SyntaxKind::Token(t.kind()),
27 SyntaxVariant::SyntaxList (_) => SyntaxKind::SyntaxList,
28 SyntaxVariant::EndOfFile {..} => SyntaxKind::EndOfFile,
29 SyntaxVariant::Script {..} => SyntaxKind::Script,
30 SyntaxVariant::QualifiedName {..} => SyntaxKind::QualifiedName,
31 SyntaxVariant::SimpleTypeSpecifier {..} => SyntaxKind::SimpleTypeSpecifier,
32 SyntaxVariant::LiteralExpression {..} => SyntaxKind::LiteralExpression,
33 SyntaxVariant::PrefixedStringExpression {..} => SyntaxKind::PrefixedStringExpression,
34 SyntaxVariant::PrefixedCodeExpression {..} => SyntaxKind::PrefixedCodeExpression,
35 SyntaxVariant::VariableExpression {..} => SyntaxKind::VariableExpression,
36 SyntaxVariant::PipeVariableExpression {..} => SyntaxKind::PipeVariableExpression,
37 SyntaxVariant::FileAttributeSpecification {..} => SyntaxKind::FileAttributeSpecification,
38 SyntaxVariant::EnumDeclaration {..} => SyntaxKind::EnumDeclaration,
39 SyntaxVariant::Enumerator {..} => SyntaxKind::Enumerator,
40 SyntaxVariant::EnumClassDeclaration {..} => SyntaxKind::EnumClassDeclaration,
41 SyntaxVariant::EnumClassEnumerator {..} => SyntaxKind::EnumClassEnumerator,
42 SyntaxVariant::RecordDeclaration {..} => SyntaxKind::RecordDeclaration,
43 SyntaxVariant::RecordField {..} => SyntaxKind::RecordField,
44 SyntaxVariant::AliasDeclaration {..} => SyntaxKind::AliasDeclaration,
45 SyntaxVariant::PropertyDeclaration {..} => SyntaxKind::PropertyDeclaration,
46 SyntaxVariant::PropertyDeclarator {..} => SyntaxKind::PropertyDeclarator,
47 SyntaxVariant::NamespaceDeclaration {..} => SyntaxKind::NamespaceDeclaration,
48 SyntaxVariant::NamespaceDeclarationHeader {..} => SyntaxKind::NamespaceDeclarationHeader,
49 SyntaxVariant::NamespaceBody {..} => SyntaxKind::NamespaceBody,
50 SyntaxVariant::NamespaceEmptyBody {..} => SyntaxKind::NamespaceEmptyBody,
51 SyntaxVariant::NamespaceUseDeclaration {..} => SyntaxKind::NamespaceUseDeclaration,
52 SyntaxVariant::NamespaceGroupUseDeclaration {..} => SyntaxKind::NamespaceGroupUseDeclaration,
53 SyntaxVariant::NamespaceUseClause {..} => SyntaxKind::NamespaceUseClause,
54 SyntaxVariant::FunctionDeclaration {..} => SyntaxKind::FunctionDeclaration,
55 SyntaxVariant::FunctionDeclarationHeader {..} => SyntaxKind::FunctionDeclarationHeader,
56 SyntaxVariant::Capability {..} => SyntaxKind::Capability,
57 SyntaxVariant::WhereClause {..} => SyntaxKind::WhereClause,
58 SyntaxVariant::WhereConstraint {..} => SyntaxKind::WhereConstraint,
59 SyntaxVariant::MethodishDeclaration {..} => SyntaxKind::MethodishDeclaration,
60 SyntaxVariant::MethodishTraitResolution {..} => SyntaxKind::MethodishTraitResolution,
61 SyntaxVariant::ClassishDeclaration {..} => SyntaxKind::ClassishDeclaration,
62 SyntaxVariant::ClassishBody {..} => SyntaxKind::ClassishBody,
63 SyntaxVariant::TraitUsePrecedenceItem {..} => SyntaxKind::TraitUsePrecedenceItem,
64 SyntaxVariant::TraitUseAliasItem {..} => SyntaxKind::TraitUseAliasItem,
65 SyntaxVariant::TraitUseConflictResolution {..} => SyntaxKind::TraitUseConflictResolution,
66 SyntaxVariant::TraitUse {..} => SyntaxKind::TraitUse,
67 SyntaxVariant::RequireClause {..} => SyntaxKind::RequireClause,
68 SyntaxVariant::ConstDeclaration {..} => SyntaxKind::ConstDeclaration,
69 SyntaxVariant::ConstantDeclarator {..} => SyntaxKind::ConstantDeclarator,
70 SyntaxVariant::TypeConstDeclaration {..} => SyntaxKind::TypeConstDeclaration,
71 SyntaxVariant::DecoratedExpression {..} => SyntaxKind::DecoratedExpression,
72 SyntaxVariant::ParameterDeclaration {..} => SyntaxKind::ParameterDeclaration,
73 SyntaxVariant::VariadicParameter {..} => SyntaxKind::VariadicParameter,
74 SyntaxVariant::OldAttributeSpecification {..} => SyntaxKind::OldAttributeSpecification,
75 SyntaxVariant::AttributeSpecification {..} => SyntaxKind::AttributeSpecification,
76 SyntaxVariant::Attribute {..} => SyntaxKind::Attribute,
77 SyntaxVariant::InclusionExpression {..} => SyntaxKind::InclusionExpression,
78 SyntaxVariant::InclusionDirective {..} => SyntaxKind::InclusionDirective,
79 SyntaxVariant::CompoundStatement {..} => SyntaxKind::CompoundStatement,
80 SyntaxVariant::ExpressionStatement {..} => SyntaxKind::ExpressionStatement,
81 SyntaxVariant::MarkupSection {..} => SyntaxKind::MarkupSection,
82 SyntaxVariant::MarkupSuffix {..} => SyntaxKind::MarkupSuffix,
83 SyntaxVariant::UnsetStatement {..} => SyntaxKind::UnsetStatement,
84 SyntaxVariant::UsingStatementBlockScoped {..} => SyntaxKind::UsingStatementBlockScoped,
85 SyntaxVariant::UsingStatementFunctionScoped {..} => SyntaxKind::UsingStatementFunctionScoped,
86 SyntaxVariant::WhileStatement {..} => SyntaxKind::WhileStatement,
87 SyntaxVariant::IfStatement {..} => SyntaxKind::IfStatement,
88 SyntaxVariant::ElseifClause {..} => SyntaxKind::ElseifClause,
89 SyntaxVariant::ElseClause {..} => SyntaxKind::ElseClause,
90 SyntaxVariant::TryStatement {..} => SyntaxKind::TryStatement,
91 SyntaxVariant::CatchClause {..} => SyntaxKind::CatchClause,
92 SyntaxVariant::FinallyClause {..} => SyntaxKind::FinallyClause,
93 SyntaxVariant::DoStatement {..} => SyntaxKind::DoStatement,
94 SyntaxVariant::ForStatement {..} => SyntaxKind::ForStatement,
95 SyntaxVariant::ForeachStatement {..} => SyntaxKind::ForeachStatement,
96 SyntaxVariant::SwitchStatement {..} => SyntaxKind::SwitchStatement,
97 SyntaxVariant::SwitchSection {..} => SyntaxKind::SwitchSection,
98 SyntaxVariant::SwitchFallthrough {..} => SyntaxKind::SwitchFallthrough,
99 SyntaxVariant::CaseLabel {..} => SyntaxKind::CaseLabel,
100 SyntaxVariant::DefaultLabel {..} => SyntaxKind::DefaultLabel,
101 SyntaxVariant::ReturnStatement {..} => SyntaxKind::ReturnStatement,
102 SyntaxVariant::ThrowStatement {..} => SyntaxKind::ThrowStatement,
103 SyntaxVariant::BreakStatement {..} => SyntaxKind::BreakStatement,
104 SyntaxVariant::ContinueStatement {..} => SyntaxKind::ContinueStatement,
105 SyntaxVariant::EchoStatement {..} => SyntaxKind::EchoStatement,
106 SyntaxVariant::ConcurrentStatement {..} => SyntaxKind::ConcurrentStatement,
107 SyntaxVariant::SimpleInitializer {..} => SyntaxKind::SimpleInitializer,
108 SyntaxVariant::AnonymousClass {..} => SyntaxKind::AnonymousClass,
109 SyntaxVariant::AnonymousFunction {..} => SyntaxKind::AnonymousFunction,
110 SyntaxVariant::AnonymousFunctionUseClause {..} => SyntaxKind::AnonymousFunctionUseClause,
111 SyntaxVariant::LambdaExpression {..} => SyntaxKind::LambdaExpression,
112 SyntaxVariant::LambdaSignature {..} => SyntaxKind::LambdaSignature,
113 SyntaxVariant::CastExpression {..} => SyntaxKind::CastExpression,
114 SyntaxVariant::ScopeResolutionExpression {..} => SyntaxKind::ScopeResolutionExpression,
115 SyntaxVariant::MemberSelectionExpression {..} => SyntaxKind::MemberSelectionExpression,
116 SyntaxVariant::SafeMemberSelectionExpression {..} => SyntaxKind::SafeMemberSelectionExpression,
117 SyntaxVariant::EmbeddedMemberSelectionExpression {..} => SyntaxKind::EmbeddedMemberSelectionExpression,
118 SyntaxVariant::YieldExpression {..} => SyntaxKind::YieldExpression,
119 SyntaxVariant::PrefixUnaryExpression {..} => SyntaxKind::PrefixUnaryExpression,
120 SyntaxVariant::PostfixUnaryExpression {..} => SyntaxKind::PostfixUnaryExpression,
121 SyntaxVariant::BinaryExpression {..} => SyntaxKind::BinaryExpression,
122 SyntaxVariant::IsExpression {..} => SyntaxKind::IsExpression,
123 SyntaxVariant::AsExpression {..} => SyntaxKind::AsExpression,
124 SyntaxVariant::NullableAsExpression {..} => SyntaxKind::NullableAsExpression,
125 SyntaxVariant::ConditionalExpression {..} => SyntaxKind::ConditionalExpression,
126 SyntaxVariant::EvalExpression {..} => SyntaxKind::EvalExpression,
127 SyntaxVariant::DefineExpression {..} => SyntaxKind::DefineExpression,
128 SyntaxVariant::IssetExpression {..} => SyntaxKind::IssetExpression,
129 SyntaxVariant::FunctionCallExpression {..} => SyntaxKind::FunctionCallExpression,
130 SyntaxVariant::FunctionPointerExpression {..} => SyntaxKind::FunctionPointerExpression,
131 SyntaxVariant::ParenthesizedExpression {..} => SyntaxKind::ParenthesizedExpression,
132 SyntaxVariant::BracedExpression {..} => SyntaxKind::BracedExpression,
133 SyntaxVariant::EmbeddedBracedExpression {..} => SyntaxKind::EmbeddedBracedExpression,
134 SyntaxVariant::ListExpression {..} => SyntaxKind::ListExpression,
135 SyntaxVariant::CollectionLiteralExpression {..} => SyntaxKind::CollectionLiteralExpression,
136 SyntaxVariant::ObjectCreationExpression {..} => SyntaxKind::ObjectCreationExpression,
137 SyntaxVariant::ConstructorCall {..} => SyntaxKind::ConstructorCall,
138 SyntaxVariant::RecordCreationExpression {..} => SyntaxKind::RecordCreationExpression,
139 SyntaxVariant::DarrayIntrinsicExpression {..} => SyntaxKind::DarrayIntrinsicExpression,
140 SyntaxVariant::DictionaryIntrinsicExpression {..} => SyntaxKind::DictionaryIntrinsicExpression,
141 SyntaxVariant::KeysetIntrinsicExpression {..} => SyntaxKind::KeysetIntrinsicExpression,
142 SyntaxVariant::VarrayIntrinsicExpression {..} => SyntaxKind::VarrayIntrinsicExpression,
143 SyntaxVariant::VectorIntrinsicExpression {..} => SyntaxKind::VectorIntrinsicExpression,
144 SyntaxVariant::ElementInitializer {..} => SyntaxKind::ElementInitializer,
145 SyntaxVariant::SubscriptExpression {..} => SyntaxKind::SubscriptExpression,
146 SyntaxVariant::EmbeddedSubscriptExpression {..} => SyntaxKind::EmbeddedSubscriptExpression,
147 SyntaxVariant::AwaitableCreationExpression {..} => SyntaxKind::AwaitableCreationExpression,
148 SyntaxVariant::XHPChildrenDeclaration {..} => SyntaxKind::XHPChildrenDeclaration,
149 SyntaxVariant::XHPChildrenParenthesizedList {..} => SyntaxKind::XHPChildrenParenthesizedList,
150 SyntaxVariant::XHPCategoryDeclaration {..} => SyntaxKind::XHPCategoryDeclaration,
151 SyntaxVariant::XHPEnumType {..} => SyntaxKind::XHPEnumType,
152 SyntaxVariant::XHPLateinit {..} => SyntaxKind::XHPLateinit,
153 SyntaxVariant::XHPRequired {..} => SyntaxKind::XHPRequired,
154 SyntaxVariant::XHPClassAttributeDeclaration {..} => SyntaxKind::XHPClassAttributeDeclaration,
155 SyntaxVariant::XHPClassAttribute {..} => SyntaxKind::XHPClassAttribute,
156 SyntaxVariant::XHPSimpleClassAttribute {..} => SyntaxKind::XHPSimpleClassAttribute,
157 SyntaxVariant::XHPSimpleAttribute {..} => SyntaxKind::XHPSimpleAttribute,
158 SyntaxVariant::XHPSpreadAttribute {..} => SyntaxKind::XHPSpreadAttribute,
159 SyntaxVariant::XHPOpen {..} => SyntaxKind::XHPOpen,
160 SyntaxVariant::XHPExpression {..} => SyntaxKind::XHPExpression,
161 SyntaxVariant::XHPClose {..} => SyntaxKind::XHPClose,
162 SyntaxVariant::TypeConstant {..} => SyntaxKind::TypeConstant,
163 SyntaxVariant::VectorTypeSpecifier {..} => SyntaxKind::VectorTypeSpecifier,
164 SyntaxVariant::KeysetTypeSpecifier {..} => SyntaxKind::KeysetTypeSpecifier,
165 SyntaxVariant::TupleTypeExplicitSpecifier {..} => SyntaxKind::TupleTypeExplicitSpecifier,
166 SyntaxVariant::VarrayTypeSpecifier {..} => SyntaxKind::VarrayTypeSpecifier,
167 SyntaxVariant::TypeParameter {..} => SyntaxKind::TypeParameter,
168 SyntaxVariant::TypeConstraint {..} => SyntaxKind::TypeConstraint,
169 SyntaxVariant::DarrayTypeSpecifier {..} => SyntaxKind::DarrayTypeSpecifier,
170 SyntaxVariant::DictionaryTypeSpecifier {..} => SyntaxKind::DictionaryTypeSpecifier,
171 SyntaxVariant::ClosureTypeSpecifier {..} => SyntaxKind::ClosureTypeSpecifier,
172 SyntaxVariant::ClosureParameterTypeSpecifier {..} => SyntaxKind::ClosureParameterTypeSpecifier,
173 SyntaxVariant::ClassnameTypeSpecifier {..} => SyntaxKind::ClassnameTypeSpecifier,
174 SyntaxVariant::FieldSpecifier {..} => SyntaxKind::FieldSpecifier,
175 SyntaxVariant::FieldInitializer {..} => SyntaxKind::FieldInitializer,
176 SyntaxVariant::ShapeTypeSpecifier {..} => SyntaxKind::ShapeTypeSpecifier,
177 SyntaxVariant::ShapeExpression {..} => SyntaxKind::ShapeExpression,
178 SyntaxVariant::TupleExpression {..} => SyntaxKind::TupleExpression,
179 SyntaxVariant::GenericTypeSpecifier {..} => SyntaxKind::GenericTypeSpecifier,
180 SyntaxVariant::NullableTypeSpecifier {..} => SyntaxKind::NullableTypeSpecifier,
181 SyntaxVariant::LikeTypeSpecifier {..} => SyntaxKind::LikeTypeSpecifier,
182 SyntaxVariant::SoftTypeSpecifier {..} => SyntaxKind::SoftTypeSpecifier,
183 SyntaxVariant::AttributizedSpecifier {..} => SyntaxKind::AttributizedSpecifier,
184 SyntaxVariant::ReifiedTypeArgument {..} => SyntaxKind::ReifiedTypeArgument,
185 SyntaxVariant::TypeArguments {..} => SyntaxKind::TypeArguments,
186 SyntaxVariant::TypeParameters {..} => SyntaxKind::TypeParameters,
187 SyntaxVariant::TupleTypeSpecifier {..} => SyntaxKind::TupleTypeSpecifier,
188 SyntaxVariant::UnionTypeSpecifier {..} => SyntaxKind::UnionTypeSpecifier,
189 SyntaxVariant::IntersectionTypeSpecifier {..} => SyntaxKind::IntersectionTypeSpecifier,
190 SyntaxVariant::ErrorSyntax {..} => SyntaxKind::ErrorSyntax,
191 SyntaxVariant::ListItem {..} => SyntaxKind::ListItem,
192 SyntaxVariant::EnumAtomExpression {..} => SyntaxKind::EnumAtomExpression,