4 "script_declarations":{
8 "kind":"markup_section",
24 "kind":"markup_suffix",
25 "markup_suffix_less_than_question":{
39 "markup_suffix_name":{
49 "trailing":[{"kind":"end_of_line","text":"\n","offset":4,"width":1}],
56 "kind":"function_declaration",
57 "function_attribute_spec":{"kind":"missing"},
58 "function_declaration_header":{
59 "kind":"function_declaration_header",
60 "function_modifiers":{"kind":"missing"},
70 "leading":[{"kind":"end_of_line","text":"\n","offset":5,"width":1}],
71 "trailing":[{"kind":"whitespace","text":" ","offset":14,"width":1}],
89 "function_type_parameter_list":{"kind":"missing"},
90 "function_left_paren":{
104 "function_parameter_list":{"kind":"missing"},
105 "function_right_paren":{
119 "function_capability":{"kind":"missing"},
130 "trailing":[{"kind":"whitespace","text":" ","offset":22,"width":1}],
135 "kind":"simple_type_specifier",
136 "simple_type_specifier":{
146 "trailing":[{"kind":"whitespace","text":" ","offset":27,"width":1}],
151 "function_where_clause":{"kind":"missing"}
154 "kind":"compound_statement",
155 "compound_left_brace":{
165 "trailing":[{"kind":"end_of_line","text":"\n","offset":29,"width":1}],
169 "compound_statements":{
173 "kind":"expression_statement",
174 "expression_statement_expression":{
175 "kind":"binary_expression",
176 "binary_left_operand":{
178 "variable_expression":{
187 "leading":[{"kind":"whitespace","text":" ","offset":30,"width":2}],
188 "trailing":[{"kind":"whitespace","text":" ","offset":34,"width":1}],
203 "trailing":[{"kind":"whitespace","text":" ","offset":36,"width":1}],
207 "binary_right_operand":{
208 "kind":"function_pointer_expression",
209 "function_pointer_receiver":{
223 "function_pointer_type_args":{
224 "kind":"type_arguments",
225 "type_arguments_left_angle":{
239 "type_arguments_types":{
245 "kind":"attributized_specifier",
246 "attributized_specifier_attribute_spec":{
247 "kind":"old_attribute_specification",
248 "old_attribute_specification_left_double_angle":{
262 "old_attribute_specification_attributes":{
268 "kind":"constructor_call",
269 "constructor_call_type":{
273 "text":"MyAttribute",
283 "constructor_call_left_paren":{"kind":"missing"},
284 "constructor_call_argument_list":{"kind":"missing"},
285 "constructor_call_right_paren":{"kind":"missing"}
287 "list_separator":{"kind":"missing"}
291 "old_attribute_specification_right_double_angle":{
301 "trailing":[{"kind":"whitespace","text":" ","offset":56,"width":1}],
306 "attributized_specifier_type":{
307 "kind":"simple_type_specifier",
308 "simple_type_specifier":{
324 "list_separator":{"kind":"missing"}
328 "type_arguments_right_angle":{
345 "expression_statement_semicolon":{
355 "trailing":[{"kind":"end_of_line","text":"\n","offset":66,"width":1}],
362 "compound_right_brace":{
372 "trailing":[{"kind":"end_of_line","text":"\n","offset":68,"width":1}],
379 "kind":"end_of_file",
380 "end_of_file_token":{
383 "kind":"end_of_file",
398 "program_text":"<?hh\n\nfunction test(): void {\n $x = foo<<<MyAttribute>> MyClass>;\n}\n",
399 "version":"2020-12-09-0001"