2 "@generated JSON schema of the Hack Full Fidelity Parser AST",
3 "version" : "2017-12-07-0001",
5 { "trivia_kind_name" : "WhiteSpace",
6 "trivia_type_name" : "whitespace" },
7 { "trivia_kind_name" : "EndOfLine",
8 "trivia_type_name" : "end_of_line" },
9 { "trivia_kind_name" : "DelimitedComment",
10 "trivia_type_name" : "delimited_comment" },
11 { "trivia_kind_name" : "SingleLineComment",
12 "trivia_type_name" : "single_line_comment" },
13 { "trivia_kind_name" : "Unsafe",
14 "trivia_type_name" : "unsafe" },
15 { "trivia_kind_name" : "UnsafeExpression",
16 "trivia_type_name" : "unsafe_expression" },
17 { "trivia_kind_name" : "FixMe",
18 "trivia_type_name" : "fix_me" },
19 { "trivia_kind_name" : "IgnoreError",
20 "trivia_type_name" : "ignore_error" },
21 { "trivia_kind_name" : "FallThrough",
22 "trivia_type_name" : "fall_through" },
23 { "trivia_kind_name" : "ExtraTokenError",
24 "trivia_type_name" : "extra_token_error" },
25 { "trivia_kind_name" : "AfterHaltCompiler",
26 "trivia_type_name" : "after_halt_compiler" } ],
28 { "token_kind" : "Abstract",
29 "token_text" : "abstract" },
30 { "token_kind" : "And",
31 "token_text" : "and" },
32 { "token_kind" : "Array",
33 "token_text" : "array" },
34 { "token_kind" : "Arraykey",
35 "token_text" : "arraykey" },
36 { "token_kind" : "As",
37 "token_text" : "as" },
38 { "token_kind" : "Async",
39 "token_text" : "async" },
40 { "token_kind" : "Attribute",
41 "token_text" : "attribute" },
42 { "token_kind" : "Await",
43 "token_text" : "await" },
44 { "token_kind" : "Bool",
45 "token_text" : "bool" },
46 { "token_kind" : "Break",
47 "token_text" : "break" },
48 { "token_kind" : "Case",
49 "token_text" : "case" },
50 { "token_kind" : "Catch",
51 "token_text" : "catch" },
52 { "token_kind" : "Category",
53 "token_text" : "category" },
54 { "token_kind" : "Children",
55 "token_text" : "children" },
56 { "token_kind" : "Class",
57 "token_text" : "class" },
58 { "token_kind" : "Classname",
59 "token_text" : "classname" },
60 { "token_kind" : "Clone",
61 "token_text" : "clone" },
62 { "token_kind" : "Const",
63 "token_text" : "const" },
64 { "token_kind" : "Construct",
65 "token_text" : "__construct" },
66 { "token_kind" : "Continue",
67 "token_text" : "continue" },
68 { "token_kind" : "Coroutine",
69 "token_text" : "coroutine" },
70 { "token_kind" : "Darray",
71 "token_text" : "darray" },
72 { "token_kind" : "Declare",
73 "token_text" : "declare" },
74 { "token_kind" : "Default",
75 "token_text" : "default" },
76 { "token_kind" : "Define",
77 "token_text" : "define" },
78 { "token_kind" : "Destruct",
79 "token_text" : "__destruct" },
80 { "token_kind" : "Dict",
81 "token_text" : "dict" },
82 { "token_kind" : "Do",
83 "token_text" : "do" },
84 { "token_kind" : "Double",
85 "token_text" : "double" },
86 { "token_kind" : "Echo",
87 "token_text" : "echo" },
88 { "token_kind" : "Else",
89 "token_text" : "else" },
90 { "token_kind" : "Elseif",
91 "token_text" : "elseif" },
92 { "token_kind" : "Empty",
93 "token_text" : "empty" },
94 { "token_kind" : "Endif",
95 "token_text" : "endif" },
96 { "token_kind" : "Enum",
97 "token_text" : "enum" },
98 { "token_kind" : "Eval",
99 "token_text" : "eval" },
100 { "token_kind" : "Extends",
101 "token_text" : "extends" },
102 { "token_kind" : "Fallthrough",
103 "token_text" : "fallthrough" },
104 { "token_kind" : "Float",
105 "token_text" : "float" },
106 { "token_kind" : "Final",
107 "token_text" : "final" },
108 { "token_kind" : "Finally",
109 "token_text" : "finally" },
110 { "token_kind" : "For",
111 "token_text" : "for" },
112 { "token_kind" : "Foreach",
113 "token_text" : "foreach" },
114 { "token_kind" : "From",
115 "token_text" : "from" },
116 { "token_kind" : "Function",
117 "token_text" : "function" },
118 { "token_kind" : "Global",
119 "token_text" : "global" },
120 { "token_kind" : "Goto",
121 "token_text" : "goto" },
122 { "token_kind" : "If",
123 "token_text" : "if" },
124 { "token_kind" : "Implements",
125 "token_text" : "implements" },
126 { "token_kind" : "Include",
127 "token_text" : "include" },
128 { "token_kind" : "Include_once",
129 "token_text" : "include_once" },
130 { "token_kind" : "Inout",
131 "token_text" : "inout" },
132 { "token_kind" : "Instanceof",
133 "token_text" : "instanceof" },
134 { "token_kind" : "Insteadof",
135 "token_text" : "insteadof" },
136 { "token_kind" : "Int",
137 "token_text" : "int" },
138 { "token_kind" : "Interface",
139 "token_text" : "interface" },
140 { "token_kind" : "Is",
141 "token_text" : "is" },
142 { "token_kind" : "Isset",
143 "token_text" : "isset" },
144 { "token_kind" : "Keyset",
145 "token_text" : "keyset" },
146 { "token_kind" : "List",
147 "token_text" : "list" },
148 { "token_kind" : "Mixed",
149 "token_text" : "mixed" },
150 { "token_kind" : "Namespace",
151 "token_text" : "namespace" },
152 { "token_kind" : "New",
153 "token_text" : "new" },
154 { "token_kind" : "Newtype",
155 "token_text" : "newtype" },
156 { "token_kind" : "Noreturn",
157 "token_text" : "noreturn" },
158 { "token_kind" : "Num",
159 "token_text" : "num" },
160 { "token_kind" : "Object",
161 "token_text" : "object" },
162 { "token_kind" : "Or",
163 "token_text" : "or" },
164 { "token_kind" : "Parent",
165 "token_text" : "parent" },
166 { "token_kind" : "Print",
167 "token_text" : "print" },
168 { "token_kind" : "Private",
169 "token_text" : "private" },
170 { "token_kind" : "Protected",
171 "token_text" : "protected" },
172 { "token_kind" : "Public",
173 "token_text" : "public" },
174 { "token_kind" : "Require",
175 "token_text" : "require" },
176 { "token_kind" : "Require_once",
177 "token_text" : "require_once" },
178 { "token_kind" : "Required",
179 "token_text" : "required" },
180 { "token_kind" : "Resource",
181 "token_text" : "resource" },
182 { "token_kind" : "Return",
183 "token_text" : "return" },
184 { "token_kind" : "Self",
185 "token_text" : "self" },
186 { "token_kind" : "Shape",
187 "token_text" : "shape" },
188 { "token_kind" : "Static",
189 "token_text" : "static" },
190 { "token_kind" : "String",
191 "token_text" : "string" },
192 { "token_kind" : "Super",
193 "token_text" : "super" },
194 { "token_kind" : "Suspend",
195 "token_text" : "suspend" },
196 { "token_kind" : "Switch",
197 "token_text" : "switch" },
198 { "token_kind" : "This",
199 "token_text" : "this" },
200 { "token_kind" : "Throw",
201 "token_text" : "throw" },
202 { "token_kind" : "Trait",
203 "token_text" : "trait" },
204 { "token_kind" : "Try",
205 "token_text" : "try" },
206 { "token_kind" : "Tuple",
207 "token_text" : "tuple" },
208 { "token_kind" : "Type",
209 "token_text" : "type" },
210 { "token_kind" : "Unset",
211 "token_text" : "unset" },
212 { "token_kind" : "Use",
213 "token_text" : "use" },
214 { "token_kind" : "Using",
215 "token_text" : "using" },
216 { "token_kind" : "Var",
217 "token_text" : "var" },
218 { "token_kind" : "Varray",
219 "token_text" : "varray" },
220 { "token_kind" : "Vec",
221 "token_text" : "vec" },
222 { "token_kind" : "Void",
223 "token_text" : "void" },
224 { "token_kind" : "Where",
225 "token_text" : "where" },
226 { "token_kind" : "While",
227 "token_text" : "while" },
228 { "token_kind" : "Xor",
229 "token_text" : "xor" },
230 { "token_kind" : "Yield",
231 "token_text" : "yield" },
232 { "token_kind" : "LeftBracket",
233 "token_text" : "[" },
234 { "token_kind" : "RightBracket",
235 "token_text" : "]" },
236 { "token_kind" : "LeftParen",
237 "token_text" : "(" },
238 { "token_kind" : "RightParen",
239 "token_text" : ")" },
240 { "token_kind" : "LeftBrace",
241 "token_text" : "{" },
242 { "token_kind" : "RightBrace",
243 "token_text" : "}" },
244 { "token_kind" : "Dot",
245 "token_text" : "." },
246 { "token_kind" : "MinusGreaterThan",
247 "token_text" : "->" },
248 { "token_kind" : "PlusPlus",
249 "token_text" : "++" },
250 { "token_kind" : "MinusMinus",
251 "token_text" : "--" },
252 { "token_kind" : "StarStar",
253 "token_text" : "**" },
254 { "token_kind" : "Star",
255 "token_text" : "*" },
256 { "token_kind" : "Plus",
257 "token_text" : "+" },
258 { "token_kind" : "Minus",
259 "token_text" : "-" },
260 { "token_kind" : "Tilde",
261 "token_text" : "~" },
262 { "token_kind" : "Exclamation",
263 "token_text" : "!" },
264 { "token_kind" : "Dollar",
265 "token_text" : "$" },
266 { "token_kind" : "Slash",
267 "token_text" : "/" },
268 { "token_kind" : "Percent",
269 "token_text" : "%" },
270 { "token_kind" : "LessThanGreaterThan",
271 "token_text" : "<>" },
272 { "token_kind" : "LessThanEqualGreaterThan",
273 "token_text" : "<=>" },
274 { "token_kind" : "LessThanLessThan",
275 "token_text" : "<<" },
276 { "token_kind" : "GreaterThanGreaterThan",
277 "token_text" : ">>" },
278 { "token_kind" : "LessThan",
279 "token_text" : "<" },
280 { "token_kind" : "GreaterThan",
281 "token_text" : ">" },
282 { "token_kind" : "LessThanEqual",
283 "token_text" : "<=" },
284 { "token_kind" : "GreaterThanEqual",
285 "token_text" : ">=" },
286 { "token_kind" : "EqualEqual",
287 "token_text" : "==" },
288 { "token_kind" : "EqualEqualEqual",
289 "token_text" : "===" },
290 { "token_kind" : "ExclamationEqual",
291 "token_text" : "!=" },
292 { "token_kind" : "ExclamationEqualEqual",
293 "token_text" : "!==" },
294 { "token_kind" : "Carat",
295 "token_text" : "^" },
296 { "token_kind" : "Bar",
297 "token_text" : "|" },
298 { "token_kind" : "Ampersand",
299 "token_text" : "&" },
300 { "token_kind" : "AmpersandAmpersand",
301 "token_text" : "&&" },
302 { "token_kind" : "BarBar",
303 "token_text" : "||" },
304 { "token_kind" : "Question",
305 "token_text" : "?" },
306 { "token_kind" : "QuestionColon",
307 "token_text" : "?:" },
308 { "token_kind" : "QuestionQuestion",
309 "token_text" : "??" },
310 { "token_kind" : "Colon",
311 "token_text" : ":" },
312 { "token_kind" : "Semicolon",
313 "token_text" : ";" },
314 { "token_kind" : "Equal",
315 "token_text" : "=" },
316 { "token_kind" : "StarStarEqual",
317 "token_text" : "**=" },
318 { "token_kind" : "StarEqual",
319 "token_text" : "*=" },
320 { "token_kind" : "SlashEqual",
321 "token_text" : "/=" },
322 { "token_kind" : "PercentEqual",
323 "token_text" : "%=" },
324 { "token_kind" : "PlusEqual",
325 "token_text" : "+=" },
326 { "token_kind" : "MinusEqual",
327 "token_text" : "-=" },
328 { "token_kind" : "DotEqual",
329 "token_text" : ".=" },
330 { "token_kind" : "LessThanLessThanEqual",
331 "token_text" : "<<=" },
332 { "token_kind" : "GreaterThanGreaterThanEqual",
333 "token_text" : ">>=" },
334 { "token_kind" : "AmpersandEqual",
335 "token_text" : "&=" },
336 { "token_kind" : "CaratEqual",
337 "token_text" : "^=" },
338 { "token_kind" : "BarEqual",
339 "token_text" : "|=" },
340 { "token_kind" : "Comma",
341 "token_text" : "," },
342 { "token_kind" : "At",
343 "token_text" : "@" },
344 { "token_kind" : "ColonColon",
345 "token_text" : "::" },
346 { "token_kind" : "EqualGreaterThan",
347 "token_text" : "=>" },
348 { "token_kind" : "EqualEqualGreaterThan",
349 "token_text" : "==>" },
350 { "token_kind" : "QuestionMinusGreaterThan",
351 "token_text" : "?->" },
352 { "token_kind" : "DotDotDot",
353 "token_text" : "..." },
354 { "token_kind" : "DollarDollar",
355 "token_text" : "$$" },
356 { "token_kind" : "BarGreaterThan",
357 "token_text" : "|>" },
358 { "token_kind" : "NullLiteral",
359 "token_text" : "null" },
360 { "token_kind" : "SlashGreaterThan",
361 "token_text" : "/>" },
362 { "token_kind" : "LessThanSlash",
363 "token_text" : "</" },
364 { "token_kind" : "LessThanQuestion",
365 "token_text" : "<?" },
366 { "token_kind" : "QuestionGreaterThan",
367 "token_text" : "?>" },
368 { "token_kind" : "HaltCompiler",
369 "token_text" : "__halt_compiler" },
371 { "token_kind" : "ErrorToken",
372 "token_text" : null },
373 { "token_kind" : "Name",
374 "token_text" : null },
375 { "token_kind" : "QualifiedName",
376 "token_text" : null },
377 { "token_kind" : "Variable",
378 "token_text" : null },
379 { "token_kind" : "NamespacePrefix",
380 "token_text" : null },
381 { "token_kind" : "DecimalLiteral",
382 "token_text" : null },
383 { "token_kind" : "OctalLiteral",
384 "token_text" : null },
385 { "token_kind" : "HexadecimalLiteral",
386 "token_text" : null },
387 { "token_kind" : "BinaryLiteral",
388 "token_text" : null },
389 { "token_kind" : "FloatingLiteral",
390 "token_text" : null },
391 { "token_kind" : "ExecutionStringLiteral",
392 "token_text" : null },
393 { "token_kind" : "ExecutionStringLiteralHead",
394 "token_text" : null },
395 { "token_kind" : "ExecutionStringLiteralTail",
396 "token_text" : null },
397 { "token_kind" : "SingleQuotedStringLiteral",
398 "token_text" : null },
399 { "token_kind" : "DoubleQuotedStringLiteral",
400 "token_text" : null },
401 { "token_kind" : "DoubleQuotedStringLiteralHead",
402 "token_text" : null },
403 { "token_kind" : "StringLiteralBody",
404 "token_text" : null },
405 { "token_kind" : "DoubleQuotedStringLiteralTail",
406 "token_text" : null },
407 { "token_kind" : "HeredocStringLiteral",
408 "token_text" : null },
409 { "token_kind" : "HeredocStringLiteralHead",
410 "token_text" : null },
411 { "token_kind" : "HeredocStringLiteralTail",
412 "token_text" : null },
413 { "token_kind" : "NowdocStringLiteral",
414 "token_text" : null },
415 { "token_kind" : "BooleanLiteral",
416 "token_text" : null },
417 { "token_kind" : "XHPCategoryName",
418 "token_text" : null },
419 { "token_kind" : "XHPElementName",
420 "token_text" : null },
421 { "token_kind" : "XHPClassName",
422 "token_text" : null },
423 { "token_kind" : "XHPStringLiteral",
424 "token_text" : null },
425 { "token_kind" : "XHPBody",
426 "token_text" : null },
427 { "token_kind" : "XHPComment",
428 "token_text" : null },
429 { "token_kind" : "Markup",
430 "token_text" : null },
432 { "token_kind" : "EndOfFile",
433 "token_text" : null } ],
435 { "kind_name" : "EndOfFile",
436 "type_name" : "end_of_file",
437 "description" : "end_of_file",
438 "prefix" : "end_of_file",
440 { "field_name" : "token" }
442 { "kind_name" : "Script",
443 "type_name" : "script",
444 "description" : "script",
447 { "field_name" : "declarations" }
449 { "kind_name" : "SimpleTypeSpecifier",
450 "type_name" : "simple_type_specifier",
451 "description" : "simple_type_specifier",
452 "prefix" : "simple_type",
454 { "field_name" : "specifier" }
456 { "kind_name" : "LiteralExpression",
457 "type_name" : "literal_expression",
458 "description" : "literal",
459 "prefix" : "literal",
461 { "field_name" : "expression" }
463 { "kind_name" : "VariableExpression",
464 "type_name" : "variable_expression",
465 "description" : "variable",
466 "prefix" : "variable",
468 { "field_name" : "expression" }
470 { "kind_name" : "QualifiedNameExpression",
471 "type_name" : "qualified_name_expression",
472 "description" : "qualified_name",
473 "prefix" : "qualified_name",
475 { "field_name" : "expression" }
477 { "kind_name" : "PipeVariableExpression",
478 "type_name" : "pipe_variable_expression",
479 "description" : "pipe_variable",
480 "prefix" : "pipe_variable",
482 { "field_name" : "expression" }
484 { "kind_name" : "EnumDeclaration",
485 "type_name" : "enum_declaration",
486 "description" : "enum_declaration",
489 { "field_name" : "attribute_spec" },
490 { "field_name" : "keyword" },
491 { "field_name" : "name" },
492 { "field_name" : "colon" },
493 { "field_name" : "base" },
494 { "field_name" : "type" },
495 { "field_name" : "left_brace" },
496 { "field_name" : "enumerators" },
497 { "field_name" : "right_brace" }
499 { "kind_name" : "Enumerator",
500 "type_name" : "enumerator",
501 "description" : "enumerator",
502 "prefix" : "enumerator",
504 { "field_name" : "name" },
505 { "field_name" : "equal" },
506 { "field_name" : "value" },
507 { "field_name" : "semicolon" }
509 { "kind_name" : "AliasDeclaration",
510 "type_name" : "alias_declaration",
511 "description" : "alias_declaration",
514 { "field_name" : "attribute_spec" },
515 { "field_name" : "keyword" },
516 { "field_name" : "name" },
517 { "field_name" : "generic_parameter" },
518 { "field_name" : "constraint" },
519 { "field_name" : "equal" },
520 { "field_name" : "type" },
521 { "field_name" : "semicolon" }
523 { "kind_name" : "PropertyDeclaration",
524 "type_name" : "property_declaration",
525 "description" : "property_declaration",
526 "prefix" : "property",
528 { "field_name" : "modifiers" },
529 { "field_name" : "type" },
530 { "field_name" : "declarators" },
531 { "field_name" : "semicolon" }
533 { "kind_name" : "PropertyDeclarator",
534 "type_name" : "property_declarator",
535 "description" : "property_declarator",
536 "prefix" : "property",
538 { "field_name" : "name" },
539 { "field_name" : "initializer" }
541 { "kind_name" : "NamespaceDeclaration",
542 "type_name" : "namespace_declaration",
543 "description" : "namespace_declaration",
544 "prefix" : "namespace",
546 { "field_name" : "keyword" },
547 { "field_name" : "name" },
548 { "field_name" : "body" }
550 { "kind_name" : "NamespaceBody",
551 "type_name" : "namespace_body",
552 "description" : "namespace_body",
553 "prefix" : "namespace",
555 { "field_name" : "left_brace" },
556 { "field_name" : "declarations" },
557 { "field_name" : "right_brace" }
559 { "kind_name" : "NamespaceEmptyBody",
560 "type_name" : "namespace_empty_body",
561 "description" : "namespace_empty_body",
562 "prefix" : "namespace",
564 { "field_name" : "semicolon" }
566 { "kind_name" : "NamespaceUseDeclaration",
567 "type_name" : "namespace_use_declaration",
568 "description" : "namespace_use_declaration",
569 "prefix" : "namespace_use",
571 { "field_name" : "keyword" },
572 { "field_name" : "kind" },
573 { "field_name" : "clauses" },
574 { "field_name" : "semicolon" }
576 { "kind_name" : "NamespaceGroupUseDeclaration",
577 "type_name" : "namespace_group_use_declaration",
578 "description" : "namespace_group_use_declaration",
579 "prefix" : "namespace_group_use",
581 { "field_name" : "keyword" },
582 { "field_name" : "kind" },
583 { "field_name" : "prefix" },
584 { "field_name" : "left_brace" },
585 { "field_name" : "clauses" },
586 { "field_name" : "right_brace" },
587 { "field_name" : "semicolon" }
589 { "kind_name" : "NamespaceUseClause",
590 "type_name" : "namespace_use_clause",
591 "description" : "namespace_use_clause",
592 "prefix" : "namespace_use",
594 { "field_name" : "clause_kind" },
595 { "field_name" : "name" },
596 { "field_name" : "as" },
597 { "field_name" : "alias" }
599 { "kind_name" : "FunctionDeclaration",
600 "type_name" : "function_declaration",
601 "description" : "function_declaration",
602 "prefix" : "function",
604 { "field_name" : "attribute_spec" },
605 { "field_name" : "declaration_header" },
606 { "field_name" : "body" }
608 { "kind_name" : "FunctionDeclarationHeader",
609 "type_name" : "function_declaration_header",
610 "description" : "function_declaration_header",
611 "prefix" : "function",
613 { "field_name" : "modifiers" },
614 { "field_name" : "keyword" },
615 { "field_name" : "ampersand" },
616 { "field_name" : "name" },
617 { "field_name" : "type_parameter_list" },
618 { "field_name" : "left_paren" },
619 { "field_name" : "parameter_list" },
620 { "field_name" : "right_paren" },
621 { "field_name" : "colon" },
622 { "field_name" : "type" },
623 { "field_name" : "where_clause" }
625 { "kind_name" : "WhereClause",
626 "type_name" : "where_clause",
627 "description" : "where_clause",
628 "prefix" : "where_clause",
630 { "field_name" : "keyword" },
631 { "field_name" : "constraints" }
633 { "kind_name" : "WhereConstraint",
634 "type_name" : "where_constraint",
635 "description" : "where_constraint",
636 "prefix" : "where_constraint",
638 { "field_name" : "left_type" },
639 { "field_name" : "operator" },
640 { "field_name" : "right_type" }
642 { "kind_name" : "MethodishDeclaration",
643 "type_name" : "methodish_declaration",
644 "description" : "methodish_declaration",
645 "prefix" : "methodish",
647 { "field_name" : "attribute" },
648 { "field_name" : "function_decl_header" },
649 { "field_name" : "function_body" },
650 { "field_name" : "semicolon" }
652 { "kind_name" : "ClassishDeclaration",
653 "type_name" : "classish_declaration",
654 "description" : "classish_declaration",
655 "prefix" : "classish",
657 { "field_name" : "attribute" },
658 { "field_name" : "modifiers" },
659 { "field_name" : "keyword" },
660 { "field_name" : "name" },
661 { "field_name" : "type_parameters" },
662 { "field_name" : "extends_keyword" },
663 { "field_name" : "extends_list" },
664 { "field_name" : "implements_keyword" },
665 { "field_name" : "implements_list" },
666 { "field_name" : "body" }
668 { "kind_name" : "ClassishBody",
669 "type_name" : "classish_body",
670 "description" : "classish_body",
671 "prefix" : "classish_body",
673 { "field_name" : "left_brace" },
674 { "field_name" : "elements" },
675 { "field_name" : "right_brace" }
677 { "kind_name" : "TraitUsePrecedenceItem",
678 "type_name" : "trait_use_precedence_item",
679 "description" : "trait_use_precedence_item",
680 "prefix" : "trait_use_precedence_item",
682 { "field_name" : "name" },
683 { "field_name" : "keyword" },
684 { "field_name" : "removed_names" }
686 { "kind_name" : "TraitUseAliasItem",
687 "type_name" : "trait_use_alias_item",
688 "description" : "trait_use_alias_item",
689 "prefix" : "trait_use_alias_item",
691 { "field_name" : "aliasing_name" },
692 { "field_name" : "keyword" },
693 { "field_name" : "modifiers" },
694 { "field_name" : "aliased_name" }
696 { "kind_name" : "TraitUseConflictResolution",
697 "type_name" : "trait_use_conflict_resolution",
698 "description" : "trait_use_conflict_resolution",
699 "prefix" : "trait_use_conflict_resolution",
701 { "field_name" : "keyword" },
702 { "field_name" : "names" },
703 { "field_name" : "left_brace" },
704 { "field_name" : "clauses" },
705 { "field_name" : "right_brace" }
707 { "kind_name" : "TraitUse",
708 "type_name" : "trait_use",
709 "description" : "trait_use",
710 "prefix" : "trait_use",
712 { "field_name" : "keyword" },
713 { "field_name" : "names" },
714 { "field_name" : "semicolon" }
716 { "kind_name" : "RequireClause",
717 "type_name" : "require_clause",
718 "description" : "require_clause",
719 "prefix" : "require",
721 { "field_name" : "keyword" },
722 { "field_name" : "kind" },
723 { "field_name" : "name" },
724 { "field_name" : "semicolon" }
726 { "kind_name" : "ConstDeclaration",
727 "type_name" : "const_declaration",
728 "description" : "const_declaration",
731 { "field_name" : "abstract" },
732 { "field_name" : "keyword" },
733 { "field_name" : "type_specifier" },
734 { "field_name" : "declarators" },
735 { "field_name" : "semicolon" }
737 { "kind_name" : "ConstantDeclarator",
738 "type_name" : "constant_declarator",
739 "description" : "constant_declarator",
740 "prefix" : "constant_declarator",
742 { "field_name" : "name" },
743 { "field_name" : "initializer" }
745 { "kind_name" : "TypeConstDeclaration",
746 "type_name" : "type_const_declaration",
747 "description" : "type_const_declaration",
748 "prefix" : "type_const",
750 { "field_name" : "abstract" },
751 { "field_name" : "keyword" },
752 { "field_name" : "type_keyword" },
753 { "field_name" : "name" },
754 { "field_name" : "type_parameters" },
755 { "field_name" : "type_constraint" },
756 { "field_name" : "equal" },
757 { "field_name" : "type_specifier" },
758 { "field_name" : "semicolon" }
760 { "kind_name" : "DecoratedExpression",
761 "type_name" : "decorated_expression",
762 "description" : "decorated_expression",
763 "prefix" : "decorated_expression",
765 { "field_name" : "decorator" },
766 { "field_name" : "expression" }
768 { "kind_name" : "ParameterDeclaration",
769 "type_name" : "parameter_declaration",
770 "description" : "parameter_declaration",
771 "prefix" : "parameter",
773 { "field_name" : "attribute" },
774 { "field_name" : "visibility" },
775 { "field_name" : "call_convention" },
776 { "field_name" : "type" },
777 { "field_name" : "name" },
778 { "field_name" : "default_value" }
780 { "kind_name" : "VariadicParameter",
781 "type_name" : "variadic_parameter",
782 "description" : "variadic_parameter",
783 "prefix" : "variadic_parameter",
785 { "field_name" : "call_convention" },
786 { "field_name" : "type" },
787 { "field_name" : "ellipsis" }
789 { "kind_name" : "AttributeSpecification",
790 "type_name" : "attribute_specification",
791 "description" : "attribute_specification",
792 "prefix" : "attribute_specification",
794 { "field_name" : "left_double_angle" },
795 { "field_name" : "attributes" },
796 { "field_name" : "right_double_angle" }
798 { "kind_name" : "Attribute",
799 "type_name" : "attribute",
800 "description" : "attribute",
801 "prefix" : "attribute",
803 { "field_name" : "name" },
804 { "field_name" : "left_paren" },
805 { "field_name" : "values" },
806 { "field_name" : "right_paren" }
808 { "kind_name" : "InclusionExpression",
809 "type_name" : "inclusion_expression",
810 "description" : "inclusion_expression",
811 "prefix" : "inclusion",
813 { "field_name" : "require" },
814 { "field_name" : "filename" }
816 { "kind_name" : "InclusionDirective",
817 "type_name" : "inclusion_directive",
818 "description" : "inclusion_directive",
819 "prefix" : "inclusion",
821 { "field_name" : "expression" },
822 { "field_name" : "semicolon" }
824 { "kind_name" : "CompoundStatement",
825 "type_name" : "compound_statement",
826 "description" : "compound_statement",
827 "prefix" : "compound",
829 { "field_name" : "left_brace" },
830 { "field_name" : "statements" },
831 { "field_name" : "right_brace" }
833 { "kind_name" : "ExpressionStatement",
834 "type_name" : "expression_statement",
835 "description" : "expression_statement",
836 "prefix" : "expression_statement",
838 { "field_name" : "expression" },
839 { "field_name" : "semicolon" }
841 { "kind_name" : "MarkupSection",
842 "type_name" : "markup_section",
843 "description" : "markup_section",
846 { "field_name" : "prefix" },
847 { "field_name" : "text" },
848 { "field_name" : "suffix" },
849 { "field_name" : "expression" }
851 { "kind_name" : "MarkupSuffix",
852 "type_name" : "markup_suffix",
853 "description" : "markup_suffix",
854 "prefix" : "markup_suffix",
856 { "field_name" : "less_than_question" },
857 { "field_name" : "name" }
859 { "kind_name" : "UnsetStatement",
860 "type_name" : "unset_statement",
861 "description" : "unset_statement",
864 { "field_name" : "keyword" },
865 { "field_name" : "left_paren" },
866 { "field_name" : "variables" },
867 { "field_name" : "right_paren" },
868 { "field_name" : "semicolon" }
870 { "kind_name" : "UsingStatementBlockScoped",
871 "type_name" : "using_statement_block_scoped",
872 "description" : "using_statement_block_scoped",
873 "prefix" : "using_block",
875 { "field_name" : "await_keyword" },
876 { "field_name" : "using_keyword" },
877 { "field_name" : "left_paren" },
878 { "field_name" : "expressions" },
879 { "field_name" : "right_paren" },
880 { "field_name" : "body" }
882 { "kind_name" : "UsingStatementFunctionScoped",
883 "type_name" : "using_statement_function_scoped",
884 "description" : "using_statement_function_scoped",
885 "prefix" : "using_function",
887 { "field_name" : "await_keyword" },
888 { "field_name" : "using_keyword" },
889 { "field_name" : "expression" },
890 { "field_name" : "semicolon" }
892 { "kind_name" : "DeclareDirectiveStatement",
893 "type_name" : "declare_directive_statement",
894 "description" : "declare_directive_statement",
895 "prefix" : "declare_directive",
897 { "field_name" : "keyword" },
898 { "field_name" : "left_paren" },
899 { "field_name" : "expression" },
900 { "field_name" : "right_paren" },
901 { "field_name" : "semicolon" }
903 { "kind_name" : "DeclareBlockStatement",
904 "type_name" : "declare_block_statement",
905 "description" : "declare_block_statement",
906 "prefix" : "declare_block",
908 { "field_name" : "keyword" },
909 { "field_name" : "left_paren" },
910 { "field_name" : "expression" },
911 { "field_name" : "right_paren" },
912 { "field_name" : "body" }
914 { "kind_name" : "WhileStatement",
915 "type_name" : "while_statement",
916 "description" : "while_statement",
919 { "field_name" : "keyword" },
920 { "field_name" : "left_paren" },
921 { "field_name" : "condition" },
922 { "field_name" : "right_paren" },
923 { "field_name" : "body" }
925 { "kind_name" : "IfStatement",
926 "type_name" : "if_statement",
927 "description" : "if_statement",
930 { "field_name" : "keyword" },
931 { "field_name" : "left_paren" },
932 { "field_name" : "condition" },
933 { "field_name" : "right_paren" },
934 { "field_name" : "statement" },
935 { "field_name" : "elseif_clauses" },
936 { "field_name" : "else_clause" }
938 { "kind_name" : "ElseifClause",
939 "type_name" : "elseif_clause",
940 "description" : "elseif_clause",
943 { "field_name" : "keyword" },
944 { "field_name" : "left_paren" },
945 { "field_name" : "condition" },
946 { "field_name" : "right_paren" },
947 { "field_name" : "statement" }
949 { "kind_name" : "ElseClause",
950 "type_name" : "else_clause",
951 "description" : "else_clause",
954 { "field_name" : "keyword" },
955 { "field_name" : "statement" }
957 { "kind_name" : "IfEndIfStatement",
958 "type_name" : "if_endif_statement",
959 "description" : "if_endif_statement",
960 "prefix" : "if_endif",
962 { "field_name" : "keyword" },
963 { "field_name" : "left_paren" },
964 { "field_name" : "condition" },
965 { "field_name" : "right_paren" },
966 { "field_name" : "colon" },
967 { "field_name" : "statement" },
968 { "field_name" : "elseif_colon_clauses" },
969 { "field_name" : "else_colon_clause" },
970 { "field_name" : "endif_keyword" },
971 { "field_name" : "semicolon" }
973 { "kind_name" : "ElseifColonClause",
974 "type_name" : "elseif_colon_clause",
975 "description" : "elseif_colon_clause",
976 "prefix" : "elseif_colon",
978 { "field_name" : "keyword" },
979 { "field_name" : "left_paren" },
980 { "field_name" : "condition" },
981 { "field_name" : "right_paren" },
982 { "field_name" : "colon" },
983 { "field_name" : "statement" }
985 { "kind_name" : "ElseColonClause",
986 "type_name" : "else_colon_clause",
987 "description" : "else_colon_clause",
988 "prefix" : "else_colon",
990 { "field_name" : "keyword" },
991 { "field_name" : "colon" },
992 { "field_name" : "statement" }
994 { "kind_name" : "TryStatement",
995 "type_name" : "try_statement",
996 "description" : "try_statement",
999 { "field_name" : "keyword" },
1000 { "field_name" : "compound_statement" },
1001 { "field_name" : "catch_clauses" },
1002 { "field_name" : "finally_clause" }
1004 { "kind_name" : "CatchClause",
1005 "type_name" : "catch_clause",
1006 "description" : "catch_clause",
1009 { "field_name" : "keyword" },
1010 { "field_name" : "left_paren" },
1011 { "field_name" : "type" },
1012 { "field_name" : "variable" },
1013 { "field_name" : "right_paren" },
1014 { "field_name" : "body" }
1016 { "kind_name" : "FinallyClause",
1017 "type_name" : "finally_clause",
1018 "description" : "finally_clause",
1019 "prefix" : "finally",
1021 { "field_name" : "keyword" },
1022 { "field_name" : "body" }
1024 { "kind_name" : "DoStatement",
1025 "type_name" : "do_statement",
1026 "description" : "do_statement",
1029 { "field_name" : "keyword" },
1030 { "field_name" : "body" },
1031 { "field_name" : "while_keyword" },
1032 { "field_name" : "left_paren" },
1033 { "field_name" : "condition" },
1034 { "field_name" : "right_paren" },
1035 { "field_name" : "semicolon" }
1037 { "kind_name" : "ForStatement",
1038 "type_name" : "for_statement",
1039 "description" : "for_statement",
1042 { "field_name" : "keyword" },
1043 { "field_name" : "left_paren" },
1044 { "field_name" : "initializer" },
1045 { "field_name" : "first_semicolon" },
1046 { "field_name" : "control" },
1047 { "field_name" : "second_semicolon" },
1048 { "field_name" : "end_of_loop" },
1049 { "field_name" : "right_paren" },
1050 { "field_name" : "body" }
1052 { "kind_name" : "ForeachStatement",
1053 "type_name" : "foreach_statement",
1054 "description" : "foreach_statement",
1055 "prefix" : "foreach",
1057 { "field_name" : "keyword" },
1058 { "field_name" : "left_paren" },
1059 { "field_name" : "collection" },
1060 { "field_name" : "await_keyword" },
1061 { "field_name" : "as" },
1062 { "field_name" : "key" },
1063 { "field_name" : "arrow" },
1064 { "field_name" : "value" },
1065 { "field_name" : "right_paren" },
1066 { "field_name" : "body" }
1068 { "kind_name" : "SwitchStatement",
1069 "type_name" : "switch_statement",
1070 "description" : "switch_statement",
1071 "prefix" : "switch",
1073 { "field_name" : "keyword" },
1074 { "field_name" : "left_paren" },
1075 { "field_name" : "expression" },
1076 { "field_name" : "right_paren" },
1077 { "field_name" : "left_brace" },
1078 { "field_name" : "sections" },
1079 { "field_name" : "right_brace" }
1081 { "kind_name" : "SwitchSection",
1082 "type_name" : "switch_section",
1083 "description" : "switch_section",
1084 "prefix" : "switch_section",
1086 { "field_name" : "labels" },
1087 { "field_name" : "statements" },
1088 { "field_name" : "fallthrough" }
1090 { "kind_name" : "SwitchFallthrough",
1091 "type_name" : "switch_fallthrough",
1092 "description" : "switch_fallthrough",
1093 "prefix" : "fallthrough",
1095 { "field_name" : "keyword" },
1096 { "field_name" : "semicolon" }
1098 { "kind_name" : "CaseLabel",
1099 "type_name" : "case_label",
1100 "description" : "case_label",
1103 { "field_name" : "keyword" },
1104 { "field_name" : "expression" },
1105 { "field_name" : "colon" }
1107 { "kind_name" : "DefaultLabel",
1108 "type_name" : "default_label",
1109 "description" : "default_label",
1110 "prefix" : "default",
1112 { "field_name" : "keyword" },
1113 { "field_name" : "colon" }
1115 { "kind_name" : "ReturnStatement",
1116 "type_name" : "return_statement",
1117 "description" : "return_statement",
1118 "prefix" : "return",
1120 { "field_name" : "keyword" },
1121 { "field_name" : "expression" },
1122 { "field_name" : "semicolon" }
1124 { "kind_name" : "GotoLabel",
1125 "type_name" : "goto_label",
1126 "description" : "goto_label",
1127 "prefix" : "goto_label",
1129 { "field_name" : "name" },
1130 { "field_name" : "colon" }
1132 { "kind_name" : "GotoStatement",
1133 "type_name" : "goto_statement",
1134 "description" : "goto_statement",
1135 "prefix" : "goto_statement",
1137 { "field_name" : "keyword" },
1138 { "field_name" : "label_name" },
1139 { "field_name" : "semicolon" }
1141 { "kind_name" : "ThrowStatement",
1142 "type_name" : "throw_statement",
1143 "description" : "throw_statement",
1146 { "field_name" : "keyword" },
1147 { "field_name" : "expression" },
1148 { "field_name" : "semicolon" }
1150 { "kind_name" : "BreakStatement",
1151 "type_name" : "break_statement",
1152 "description" : "break_statement",
1155 { "field_name" : "keyword" },
1156 { "field_name" : "level" },
1157 { "field_name" : "semicolon" }
1159 { "kind_name" : "ContinueStatement",
1160 "type_name" : "continue_statement",
1161 "description" : "continue_statement",
1162 "prefix" : "continue",
1164 { "field_name" : "keyword" },
1165 { "field_name" : "level" },
1166 { "field_name" : "semicolon" }
1168 { "kind_name" : "FunctionStaticStatement",
1169 "type_name" : "function_static_statement",
1170 "description" : "function_static_statement",
1171 "prefix" : "static",
1173 { "field_name" : "static_keyword" },
1174 { "field_name" : "declarations" },
1175 { "field_name" : "semicolon" }
1177 { "kind_name" : "StaticDeclarator",
1178 "type_name" : "static_declarator",
1179 "description" : "static_declarator",
1180 "prefix" : "static",
1182 { "field_name" : "name" },
1183 { "field_name" : "initializer" }
1185 { "kind_name" : "EchoStatement",
1186 "type_name" : "echo_statement",
1187 "description" : "echo_statement",
1190 { "field_name" : "keyword" },
1191 { "field_name" : "expressions" },
1192 { "field_name" : "semicolon" }
1194 { "kind_name" : "GlobalStatement",
1195 "type_name" : "global_statement",
1196 "description" : "global_statement",
1197 "prefix" : "global",
1199 { "field_name" : "keyword" },
1200 { "field_name" : "variables" },
1201 { "field_name" : "semicolon" }
1203 { "kind_name" : "SimpleInitializer",
1204 "type_name" : "simple_initializer",
1205 "description" : "simple_initializer",
1206 "prefix" : "simple_initializer",
1208 { "field_name" : "equal" },
1209 { "field_name" : "value" }
1211 { "kind_name" : "AnonymousClass",
1212 "type_name" : "anonymous_class",
1213 "description" : "anonymous_class",
1214 "prefix" : "anonymous_class",
1216 { "field_name" : "class_keyword" },
1217 { "field_name" : "left_paren" },
1218 { "field_name" : "argument_list" },
1219 { "field_name" : "right_paren" },
1220 { "field_name" : "extends_keyword" },
1221 { "field_name" : "extends_list" },
1222 { "field_name" : "implements_keyword" },
1223 { "field_name" : "implements_list" },
1224 { "field_name" : "body" }
1226 { "kind_name" : "AnonymousFunction",
1227 "type_name" : "anonymous_function",
1228 "description" : "anonymous_function",
1229 "prefix" : "anonymous",
1231 { "field_name" : "static_keyword" },
1232 { "field_name" : "async_keyword" },
1233 { "field_name" : "coroutine_keyword" },
1234 { "field_name" : "function_keyword" },
1235 { "field_name" : "left_paren" },
1236 { "field_name" : "parameters" },
1237 { "field_name" : "right_paren" },
1238 { "field_name" : "colon" },
1239 { "field_name" : "type" },
1240 { "field_name" : "use" },
1241 { "field_name" : "body" }
1243 { "kind_name" : "Php7AnonymousFunction",
1244 "type_name" : "php7_anonymous_function",
1245 "description" : "php7_anonymous_function",
1246 "prefix" : "php7_anonymous",
1248 { "field_name" : "static_keyword" },
1249 { "field_name" : "async_keyword" },
1250 { "field_name" : "coroutine_keyword" },
1251 { "field_name" : "function_keyword" },
1252 { "field_name" : "left_paren" },
1253 { "field_name" : "parameters" },
1254 { "field_name" : "right_paren" },
1255 { "field_name" : "use" },
1256 { "field_name" : "colon" },
1257 { "field_name" : "type" },
1258 { "field_name" : "body" }
1260 { "kind_name" : "AnonymousFunctionUseClause",
1261 "type_name" : "anonymous_function_use_clause",
1262 "description" : "anonymous_function_use_clause",
1263 "prefix" : "anonymous_use",
1265 { "field_name" : "keyword" },
1266 { "field_name" : "left_paren" },
1267 { "field_name" : "variables" },
1268 { "field_name" : "right_paren" }
1270 { "kind_name" : "LambdaExpression",
1271 "type_name" : "lambda_expression",
1272 "description" : "lambda_expression",
1273 "prefix" : "lambda",
1275 { "field_name" : "async" },
1276 { "field_name" : "coroutine" },
1277 { "field_name" : "signature" },
1278 { "field_name" : "arrow" },
1279 { "field_name" : "body" }
1281 { "kind_name" : "LambdaSignature",
1282 "type_name" : "lambda_signature",
1283 "description" : "lambda_signature",
1284 "prefix" : "lambda",
1286 { "field_name" : "left_paren" },
1287 { "field_name" : "parameters" },
1288 { "field_name" : "right_paren" },
1289 { "field_name" : "colon" },
1290 { "field_name" : "type" }
1292 { "kind_name" : "CastExpression",
1293 "type_name" : "cast_expression",
1294 "description" : "cast_expression",
1297 { "field_name" : "left_paren" },
1298 { "field_name" : "type" },
1299 { "field_name" : "right_paren" },
1300 { "field_name" : "operand" }
1302 { "kind_name" : "ScopeResolutionExpression",
1303 "type_name" : "scope_resolution_expression",
1304 "description" : "scope_resolution_expression",
1305 "prefix" : "scope_resolution",
1307 { "field_name" : "qualifier" },
1308 { "field_name" : "operator" },
1309 { "field_name" : "name" }
1311 { "kind_name" : "MemberSelectionExpression",
1312 "type_name" : "member_selection_expression",
1313 "description" : "member_selection_expression",
1314 "prefix" : "member",
1316 { "field_name" : "object" },
1317 { "field_name" : "operator" },
1318 { "field_name" : "name" }
1320 { "kind_name" : "SafeMemberSelectionExpression",
1321 "type_name" : "safe_member_selection_expression",
1322 "description" : "safe_member_selection_expression",
1323 "prefix" : "safe_member",
1325 { "field_name" : "object" },
1326 { "field_name" : "operator" },
1327 { "field_name" : "name" }
1329 { "kind_name" : "EmbeddedMemberSelectionExpression",
1330 "type_name" : "embedded_member_selection_expression",
1331 "description" : "embedded_member_selection_expression",
1332 "prefix" : "embedded_member",
1334 { "field_name" : "object" },
1335 { "field_name" : "operator" },
1336 { "field_name" : "name" }
1338 { "kind_name" : "YieldExpression",
1339 "type_name" : "yield_expression",
1340 "description" : "yield_expression",
1343 { "field_name" : "keyword" },
1344 { "field_name" : "operand" }
1346 { "kind_name" : "YieldFromExpression",
1347 "type_name" : "yield_from_expression",
1348 "description" : "yield_from_expression",
1349 "prefix" : "yield_from",
1351 { "field_name" : "yield_keyword" },
1352 { "field_name" : "from_keyword" },
1353 { "field_name" : "operand" }
1355 { "kind_name" : "PrefixUnaryExpression",
1356 "type_name" : "prefix_unary_expression",
1357 "description" : "prefix_unary_expression",
1358 "prefix" : "prefix_unary",
1360 { "field_name" : "operator" },
1361 { "field_name" : "operand" }
1363 { "kind_name" : "PostfixUnaryExpression",
1364 "type_name" : "postfix_unary_expression",
1365 "description" : "postfix_unary_expression",
1366 "prefix" : "postfix_unary",
1368 { "field_name" : "operand" },
1369 { "field_name" : "operator" }
1371 { "kind_name" : "BinaryExpression",
1372 "type_name" : "binary_expression",
1373 "description" : "binary_expression",
1374 "prefix" : "binary",
1376 { "field_name" : "left_operand" },
1377 { "field_name" : "operator" },
1378 { "field_name" : "right_operand" }
1380 { "kind_name" : "InstanceofExpression",
1381 "type_name" : "instanceof_expression",
1382 "description" : "instanceof_expression",
1383 "prefix" : "instanceof",
1385 { "field_name" : "left_operand" },
1386 { "field_name" : "operator" },
1387 { "field_name" : "right_operand" }
1389 { "kind_name" : "IsExpression",
1390 "type_name" : "is_expression",
1391 "description" : "is_expression",
1394 { "field_name" : "left_operand" },
1395 { "field_name" : "operator" },
1396 { "field_name" : "right_operand" }
1398 { "kind_name" : "ConditionalExpression",
1399 "type_name" : "conditional_expression",
1400 "description" : "conditional_expression",
1401 "prefix" : "conditional",
1403 { "field_name" : "test" },
1404 { "field_name" : "question" },
1405 { "field_name" : "consequence" },
1406 { "field_name" : "colon" },
1407 { "field_name" : "alternative" }
1409 { "kind_name" : "EvalExpression",
1410 "type_name" : "eval_expression",
1411 "description" : "eval_expression",
1414 { "field_name" : "keyword" },
1415 { "field_name" : "left_paren" },
1416 { "field_name" : "argument" },
1417 { "field_name" : "right_paren" }
1419 { "kind_name" : "EmptyExpression",
1420 "type_name" : "empty_expression",
1421 "description" : "empty_expression",
1424 { "field_name" : "keyword" },
1425 { "field_name" : "left_paren" },
1426 { "field_name" : "argument" },
1427 { "field_name" : "right_paren" }
1429 { "kind_name" : "DefineExpression",
1430 "type_name" : "define_expression",
1431 "description" : "define_expression",
1432 "prefix" : "define",
1434 { "field_name" : "keyword" },
1435 { "field_name" : "left_paren" },
1436 { "field_name" : "argument_list" },
1437 { "field_name" : "right_paren" }
1439 { "kind_name" : "HaltCompilerExpression",
1440 "type_name" : "halt_compiler_expression",
1441 "description" : "halt_compiler_expression",
1442 "prefix" : "halt_compiler",
1444 { "field_name" : "keyword" },
1445 { "field_name" : "left_paren" },
1446 { "field_name" : "argument_list" },
1447 { "field_name" : "right_paren" }
1449 { "kind_name" : "IssetExpression",
1450 "type_name" : "isset_expression",
1451 "description" : "isset_expression",
1454 { "field_name" : "keyword" },
1455 { "field_name" : "left_paren" },
1456 { "field_name" : "argument_list" },
1457 { "field_name" : "right_paren" }
1459 { "kind_name" : "FunctionCallExpression",
1460 "type_name" : "function_call_expression",
1461 "description" : "function_call_expression",
1462 "prefix" : "function_call",
1464 { "field_name" : "receiver" },
1465 { "field_name" : "left_paren" },
1466 { "field_name" : "argument_list" },
1467 { "field_name" : "right_paren" }
1469 { "kind_name" : "FunctionCallWithTypeArgumentsExpression",
1470 "type_name" : "function_call_with_type_arguments_expression",
1471 "description" : "function_call_with_type_arguments_expression",
1472 "prefix" : "function_call_with_type_arguments",
1474 { "field_name" : "receiver" },
1475 { "field_name" : "type_args" },
1476 { "field_name" : "left_paren" },
1477 { "field_name" : "argument_list" },
1478 { "field_name" : "right_paren" }
1480 { "kind_name" : "ParenthesizedExpression",
1481 "type_name" : "parenthesized_expression",
1482 "description" : "parenthesized_expression",
1483 "prefix" : "parenthesized_expression",
1485 { "field_name" : "left_paren" },
1486 { "field_name" : "expression" },
1487 { "field_name" : "right_paren" }
1489 { "kind_name" : "BracedExpression",
1490 "type_name" : "braced_expression",
1491 "description" : "braced_expression",
1492 "prefix" : "braced_expression",
1494 { "field_name" : "left_brace" },
1495 { "field_name" : "expression" },
1496 { "field_name" : "right_brace" }
1498 { "kind_name" : "EmbeddedBracedExpression",
1499 "type_name" : "embedded_braced_expression",
1500 "description" : "embedded_braced_expression",
1501 "prefix" : "embedded_braced_expression",
1503 { "field_name" : "left_brace" },
1504 { "field_name" : "expression" },
1505 { "field_name" : "right_brace" }
1507 { "kind_name" : "ListExpression",
1508 "type_name" : "list_expression",
1509 "description" : "list_expression",
1512 { "field_name" : "keyword" },
1513 { "field_name" : "left_paren" },
1514 { "field_name" : "members" },
1515 { "field_name" : "right_paren" }
1517 { "kind_name" : "CollectionLiteralExpression",
1518 "type_name" : "collection_literal_expression",
1519 "description" : "collection_literal_expression",
1520 "prefix" : "collection_literal",
1522 { "field_name" : "name" },
1523 { "field_name" : "left_brace" },
1524 { "field_name" : "initializers" },
1525 { "field_name" : "right_brace" }
1527 { "kind_name" : "ObjectCreationExpression",
1528 "type_name" : "object_creation_expression",
1529 "description" : "object_creation_expression",
1530 "prefix" : "object_creation",
1532 { "field_name" : "new_keyword" },
1533 { "field_name" : "object" }
1535 { "kind_name" : "ConstructorCall",
1536 "type_name" : "constructor_call",
1537 "description" : "constructor_call",
1538 "prefix" : "constructor_call",
1540 { "field_name" : "type" },
1541 { "field_name" : "left_paren" },
1542 { "field_name" : "argument_list" },
1543 { "field_name" : "right_paren" }
1545 { "kind_name" : "ArrayCreationExpression",
1546 "type_name" : "array_creation_expression",
1547 "description" : "array_creation_expression",
1548 "prefix" : "array_creation",
1550 { "field_name" : "left_bracket" },
1551 { "field_name" : "members" },
1552 { "field_name" : "right_bracket" }
1554 { "kind_name" : "ArrayIntrinsicExpression",
1555 "type_name" : "array_intrinsic_expression",
1556 "description" : "array_intrinsic_expression",
1557 "prefix" : "array_intrinsic",
1559 { "field_name" : "keyword" },
1560 { "field_name" : "left_paren" },
1561 { "field_name" : "members" },
1562 { "field_name" : "right_paren" }
1564 { "kind_name" : "DarrayIntrinsicExpression",
1565 "type_name" : "darray_intrinsic_expression",
1566 "description" : "darray_intrinsic_expression",
1567 "prefix" : "darray_intrinsic",
1569 { "field_name" : "keyword" },
1570 { "field_name" : "left_bracket" },
1571 { "field_name" : "members" },
1572 { "field_name" : "right_bracket" }
1574 { "kind_name" : "DictionaryIntrinsicExpression",
1575 "type_name" : "dictionary_intrinsic_expression",
1576 "description" : "dictionary_intrinsic_expression",
1577 "prefix" : "dictionary_intrinsic",
1579 { "field_name" : "keyword" },
1580 { "field_name" : "left_bracket" },
1581 { "field_name" : "members" },
1582 { "field_name" : "right_bracket" }
1584 { "kind_name" : "KeysetIntrinsicExpression",
1585 "type_name" : "keyset_intrinsic_expression",
1586 "description" : "keyset_intrinsic_expression",
1587 "prefix" : "keyset_intrinsic",
1589 { "field_name" : "keyword" },
1590 { "field_name" : "left_bracket" },
1591 { "field_name" : "members" },
1592 { "field_name" : "right_bracket" }
1594 { "kind_name" : "VarrayIntrinsicExpression",
1595 "type_name" : "varray_intrinsic_expression",
1596 "description" : "varray_intrinsic_expression",
1597 "prefix" : "varray_intrinsic",
1599 { "field_name" : "keyword" },
1600 { "field_name" : "left_bracket" },
1601 { "field_name" : "members" },
1602 { "field_name" : "right_bracket" }
1604 { "kind_name" : "VectorIntrinsicExpression",
1605 "type_name" : "vector_intrinsic_expression",
1606 "description" : "vector_intrinsic_expression",
1607 "prefix" : "vector_intrinsic",
1609 { "field_name" : "keyword" },
1610 { "field_name" : "left_bracket" },
1611 { "field_name" : "members" },
1612 { "field_name" : "right_bracket" }
1614 { "kind_name" : "ElementInitializer",
1615 "type_name" : "element_initializer",
1616 "description" : "element_initializer",
1617 "prefix" : "element",
1619 { "field_name" : "key" },
1620 { "field_name" : "arrow" },
1621 { "field_name" : "value" }
1623 { "kind_name" : "SubscriptExpression",
1624 "type_name" : "subscript_expression",
1625 "description" : "subscript_expression",
1626 "prefix" : "subscript",
1628 { "field_name" : "receiver" },
1629 { "field_name" : "left_bracket" },
1630 { "field_name" : "index" },
1631 { "field_name" : "right_bracket" }
1633 { "kind_name" : "EmbeddedSubscriptExpression",
1634 "type_name" : "embedded_subscript_expression",
1635 "description" : "embedded_subscript_expression",
1636 "prefix" : "embedded_subscript",
1638 { "field_name" : "receiver" },
1639 { "field_name" : "left_bracket" },
1640 { "field_name" : "index" },
1641 { "field_name" : "right_bracket" }
1643 { "kind_name" : "AwaitableCreationExpression",
1644 "type_name" : "awaitable_creation_expression",
1645 "description" : "awaitable_creation_expression",
1646 "prefix" : "awaitable",
1648 { "field_name" : "async" },
1649 { "field_name" : "coroutine" },
1650 { "field_name" : "compound_statement" }
1652 { "kind_name" : "XHPChildrenDeclaration",
1653 "type_name" : "xhp_children_declaration",
1654 "description" : "xhp_children_declaration",
1655 "prefix" : "xhp_children",
1657 { "field_name" : "keyword" },
1658 { "field_name" : "expression" },
1659 { "field_name" : "semicolon" }
1661 { "kind_name" : "XHPChildrenParenthesizedList",
1662 "type_name" : "xhp_children_parenthesized_list",
1663 "description" : "xhp_children_parenthesized_list",
1664 "prefix" : "xhp_children_list",
1666 { "field_name" : "left_paren" },
1667 { "field_name" : "xhp_children" },
1668 { "field_name" : "right_paren" }
1670 { "kind_name" : "XHPCategoryDeclaration",
1671 "type_name" : "xhp_category_declaration",
1672 "description" : "xhp_category_declaration",
1673 "prefix" : "xhp_category",
1675 { "field_name" : "keyword" },
1676 { "field_name" : "categories" },
1677 { "field_name" : "semicolon" }
1679 { "kind_name" : "XHPEnumType",
1680 "type_name" : "xhp_enum_type",
1681 "description" : "xhp_enum_type",
1682 "prefix" : "xhp_enum",
1684 { "field_name" : "optional" },
1685 { "field_name" : "keyword" },
1686 { "field_name" : "left_brace" },
1687 { "field_name" : "values" },
1688 { "field_name" : "right_brace" }
1690 { "kind_name" : "XHPRequired",
1691 "type_name" : "xhp_required",
1692 "description" : "xhp_required",
1693 "prefix" : "xhp_required",
1695 { "field_name" : "at" },
1696 { "field_name" : "keyword" }
1698 { "kind_name" : "XHPClassAttributeDeclaration",
1699 "type_name" : "xhp_class_attribute_declaration",
1700 "description" : "xhp_class_attribute_declaration",
1701 "prefix" : "xhp_attribute",
1703 { "field_name" : "keyword" },
1704 { "field_name" : "attributes" },
1705 { "field_name" : "semicolon" }
1707 { "kind_name" : "XHPClassAttribute",
1708 "type_name" : "xhp_class_attribute",
1709 "description" : "xhp_class_attribute",
1710 "prefix" : "xhp_attribute_decl",
1712 { "field_name" : "type" },
1713 { "field_name" : "name" },
1714 { "field_name" : "initializer" },
1715 { "field_name" : "required" }
1717 { "kind_name" : "XHPSimpleClassAttribute",
1718 "type_name" : "xhp_simple_class_attribute",
1719 "description" : "xhp_simple_class_attribute",
1720 "prefix" : "xhp_simple_class_attribute",
1722 { "field_name" : "type" }
1724 { "kind_name" : "XHPSimpleAttribute",
1725 "type_name" : "xhp_simple_attribute",
1726 "description" : "xhp_simple_attribute",
1727 "prefix" : "xhp_simple_attribute",
1729 { "field_name" : "name" },
1730 { "field_name" : "equal" },
1731 { "field_name" : "expression" }
1733 { "kind_name" : "XHPSpreadAttribute",
1734 "type_name" : "xhp_spread_attribute",
1735 "description" : "xhp_spread_attribute",
1736 "prefix" : "xhp_spread_attribute",
1738 { "field_name" : "left_brace" },
1739 { "field_name" : "spread_operator" },
1740 { "field_name" : "expression" },
1741 { "field_name" : "right_brace" }
1743 { "kind_name" : "XHPOpen",
1744 "type_name" : "xhp_open",
1745 "description" : "xhp_open",
1746 "prefix" : "xhp_open",
1748 { "field_name" : "left_angle" },
1749 { "field_name" : "name" },
1750 { "field_name" : "attributes" },
1751 { "field_name" : "right_angle" }
1753 { "kind_name" : "XHPExpression",
1754 "type_name" : "xhp_expression",
1755 "description" : "xhp_expression",
1758 { "field_name" : "open" },
1759 { "field_name" : "body" },
1760 { "field_name" : "close" }
1762 { "kind_name" : "XHPClose",
1763 "type_name" : "xhp_close",
1764 "description" : "xhp_close",
1765 "prefix" : "xhp_close",
1767 { "field_name" : "left_angle" },
1768 { "field_name" : "name" },
1769 { "field_name" : "right_angle" }
1771 { "kind_name" : "TypeConstant",
1772 "type_name" : "type_constant",
1773 "description" : "type_constant",
1774 "prefix" : "type_constant",
1776 { "field_name" : "left_type" },
1777 { "field_name" : "separator" },
1778 { "field_name" : "right_type" }
1780 { "kind_name" : "VectorTypeSpecifier",
1781 "type_name" : "vector_type_specifier",
1782 "description" : "vector_type_specifier",
1783 "prefix" : "vector_type",
1785 { "field_name" : "keyword" },
1786 { "field_name" : "left_angle" },
1787 { "field_name" : "type" },
1788 { "field_name" : "trailing_comma" },
1789 { "field_name" : "right_angle" }
1791 { "kind_name" : "KeysetTypeSpecifier",
1792 "type_name" : "keyset_type_specifier",
1793 "description" : "keyset_type_specifier",
1794 "prefix" : "keyset_type",
1796 { "field_name" : "keyword" },
1797 { "field_name" : "left_angle" },
1798 { "field_name" : "type" },
1799 { "field_name" : "trailing_comma" },
1800 { "field_name" : "right_angle" }
1802 { "kind_name" : "TupleTypeExplicitSpecifier",
1803 "type_name" : "tuple_type_explicit_specifier",
1804 "description" : "tuple_type_explicit_specifier",
1805 "prefix" : "tuple_type",
1807 { "field_name" : "keyword" },
1808 { "field_name" : "left_angle" },
1809 { "field_name" : "types" },
1810 { "field_name" : "right_angle" }
1812 { "kind_name" : "VarrayTypeSpecifier",
1813 "type_name" : "varray_type_specifier",
1814 "description" : "varray_type_specifier",
1815 "prefix" : "varray",
1817 { "field_name" : "keyword" },
1818 { "field_name" : "left_angle" },
1819 { "field_name" : "type" },
1820 { "field_name" : "trailing_comma" },
1821 { "field_name" : "right_angle" }
1823 { "kind_name" : "VectorArrayTypeSpecifier",
1824 "type_name" : "vector_array_type_specifier",
1825 "description" : "vector_array_type_specifier",
1826 "prefix" : "vector_array",
1828 { "field_name" : "keyword" },
1829 { "field_name" : "left_angle" },
1830 { "field_name" : "type" },
1831 { "field_name" : "right_angle" }
1833 { "kind_name" : "TypeParameter",
1834 "type_name" : "type_parameter",
1835 "description" : "type_parameter",
1838 { "field_name" : "variance" },
1839 { "field_name" : "name" },
1840 { "field_name" : "constraints" }
1842 { "kind_name" : "TypeConstraint",
1843 "type_name" : "type_constraint",
1844 "description" : "type_constraint",
1845 "prefix" : "constraint",
1847 { "field_name" : "keyword" },
1848 { "field_name" : "type" }
1850 { "kind_name" : "DarrayTypeSpecifier",
1851 "type_name" : "darray_type_specifier",
1852 "description" : "darray_type_specifier",
1853 "prefix" : "darray",
1855 { "field_name" : "keyword" },
1856 { "field_name" : "left_angle" },
1857 { "field_name" : "key" },
1858 { "field_name" : "comma" },
1859 { "field_name" : "value" },
1860 { "field_name" : "trailing_comma" },
1861 { "field_name" : "right_angle" }
1863 { "kind_name" : "MapArrayTypeSpecifier",
1864 "type_name" : "map_array_type_specifier",
1865 "description" : "map_array_type_specifier",
1866 "prefix" : "map_array",
1868 { "field_name" : "keyword" },
1869 { "field_name" : "left_angle" },
1870 { "field_name" : "key" },
1871 { "field_name" : "comma" },
1872 { "field_name" : "value" },
1873 { "field_name" : "right_angle" }
1875 { "kind_name" : "DictionaryTypeSpecifier",
1876 "type_name" : "dictionary_type_specifier",
1877 "description" : "dictionary_type_specifier",
1878 "prefix" : "dictionary_type",
1880 { "field_name" : "keyword" },
1881 { "field_name" : "left_angle" },
1882 { "field_name" : "members" },
1883 { "field_name" : "right_angle" }
1885 { "kind_name" : "ClosureTypeSpecifier",
1886 "type_name" : "closure_type_specifier",
1887 "description" : "closure_type_specifier",
1888 "prefix" : "closure",
1890 { "field_name" : "outer_left_paren" },
1891 { "field_name" : "coroutine" },
1892 { "field_name" : "function_keyword" },
1893 { "field_name" : "inner_left_paren" },
1894 { "field_name" : "parameter_list" },
1895 { "field_name" : "inner_right_paren" },
1896 { "field_name" : "colon" },
1897 { "field_name" : "return_type" },
1898 { "field_name" : "outer_right_paren" }
1900 { "kind_name" : "ClosureParameterTypeSpecifier",
1901 "type_name" : "closure_parameter_type_specifier",
1902 "description" : "closure_parameter_type_specifier",
1903 "prefix" : "closure_parameter",
1905 { "field_name" : "call_convention" },
1906 { "field_name" : "type" }
1908 { "kind_name" : "ClassnameTypeSpecifier",
1909 "type_name" : "classname_type_specifier",
1910 "description" : "classname_type_specifier",
1911 "prefix" : "classname",
1913 { "field_name" : "keyword" },
1914 { "field_name" : "left_angle" },
1915 { "field_name" : "type" },
1916 { "field_name" : "trailing_comma" },
1917 { "field_name" : "right_angle" }
1919 { "kind_name" : "FieldSpecifier",
1920 "type_name" : "field_specifier",
1921 "description" : "field_specifier",
1924 { "field_name" : "question" },
1925 { "field_name" : "name" },
1926 { "field_name" : "arrow" },
1927 { "field_name" : "type" }
1929 { "kind_name" : "FieldInitializer",
1930 "type_name" : "field_initializer",
1931 "description" : "field_initializer",
1932 "prefix" : "field_initializer",
1934 { "field_name" : "name" },
1935 { "field_name" : "arrow" },
1936 { "field_name" : "value" }
1938 { "kind_name" : "ShapeTypeSpecifier",
1939 "type_name" : "shape_type_specifier",
1940 "description" : "shape_type_specifier",
1941 "prefix" : "shape_type",
1943 { "field_name" : "keyword" },
1944 { "field_name" : "left_paren" },
1945 { "field_name" : "fields" },
1946 { "field_name" : "ellipsis" },
1947 { "field_name" : "right_paren" }
1949 { "kind_name" : "ShapeExpression",
1950 "type_name" : "shape_expression",
1951 "description" : "shape_expression",
1952 "prefix" : "shape_expression",
1954 { "field_name" : "keyword" },
1955 { "field_name" : "left_paren" },
1956 { "field_name" : "fields" },
1957 { "field_name" : "right_paren" }
1959 { "kind_name" : "TupleExpression",
1960 "type_name" : "tuple_expression",
1961 "description" : "tuple_expression",
1962 "prefix" : "tuple_expression",
1964 { "field_name" : "keyword" },
1965 { "field_name" : "left_paren" },
1966 { "field_name" : "items" },
1967 { "field_name" : "right_paren" }
1969 { "kind_name" : "GenericTypeSpecifier",
1970 "type_name" : "generic_type_specifier",
1971 "description" : "generic_type_specifier",
1972 "prefix" : "generic",
1974 { "field_name" : "class_type" },
1975 { "field_name" : "argument_list" }
1977 { "kind_name" : "NullableTypeSpecifier",
1978 "type_name" : "nullable_type_specifier",
1979 "description" : "nullable_type_specifier",
1980 "prefix" : "nullable",
1982 { "field_name" : "question" },
1983 { "field_name" : "type" }
1985 { "kind_name" : "SoftTypeSpecifier",
1986 "type_name" : "soft_type_specifier",
1987 "description" : "soft_type_specifier",
1990 { "field_name" : "at" },
1991 { "field_name" : "type" }
1993 { "kind_name" : "TypeArguments",
1994 "type_name" : "type_arguments",
1995 "description" : "type_arguments",
1996 "prefix" : "type_arguments",
1998 { "field_name" : "left_angle" },
1999 { "field_name" : "types" },
2000 { "field_name" : "right_angle" }
2002 { "kind_name" : "TypeParameters",
2003 "type_name" : "type_parameters",
2004 "description" : "type_parameters",
2005 "prefix" : "type_parameters",
2007 { "field_name" : "left_angle" },
2008 { "field_name" : "parameters" },
2009 { "field_name" : "right_angle" }
2011 { "kind_name" : "TupleTypeSpecifier",
2012 "type_name" : "tuple_type_specifier",
2013 "description" : "tuple_type_specifier",
2016 { "field_name" : "left_paren" },
2017 { "field_name" : "types" },
2018 { "field_name" : "right_paren" }
2020 { "kind_name" : "ErrorSyntax",
2021 "type_name" : "error",
2022 "description" : "error",
2025 { "field_name" : "error" }
2027 { "kind_name" : "ListItem",
2028 "type_name" : "list_item",
2029 "description" : "list_item",
2032 { "field_name" : "item" },
2033 { "field_name" : "separator" }
2036 { "kind_name" : "Token",
2037 "type_name" : "token",
2038 "description" : "token",
2041 { "field_name" : "leading" },
2042 { "field_name" : "trailing" } ] },
2043 { "kind_name" : "Missing",
2044 "type_name" : "missing",
2045 "description" : "missing",
2048 { "kind_name" : "SyntaxList",
2049 "type_name" : "syntax_list",
2050 "description" : "syntax_list",
2052 "fields" : [ ] } ] }