[
{
"type": "simple_statement",
"named": true,
"subtypes": [
{
"type": "break_statement",
"named": true
},
{
"type": "case_label",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "demote_statement",
"named": true
},
{
"type": "discard_statement",
"named": true
},
{
"type": "do_statement",
"named": true
},
{
"type": "expression_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "local_declaration",
"named": true
},
{
"type": "preproc_call",
"named": true
},
{
"type": "preproc_def",
"named": true
},
{
"type": "preproc_function_def",
"named": true
},
{
"type": "preproc_if",
"named": true
},
{
"type": "preproc_ifdef",
"named": true
},
{
"type": "preproc_undef",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "terminate_invocation_statement",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
},
{
"type": "single_type_qualifier",
"named": true,
"subtypes": [
{
"type": "interpolation_qualifier",
"named": true
},
{
"type": "invariant_qualifier",
"named": true
},
{
"type": "layout_qualifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "precise_qualifier",
"named": true
},
{
"type": "precision_qualifier",
"named": true
},
{
"type": "storage_qualifier",
"named": true
}
]
},
{
"type": "statement",
"named": true,
"subtypes": [
{
"type": "compound_statement",
"named": true
},
{
"type": "simple_statement",
"named": true
}
]
},
{
"type": "argument_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
},
{
"type": "array_specifier",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
},
{
"type": "assignment_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "bool_literal",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "assignment_operator",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
}
},
{
"type": "assignment_operator",
"named": true,
"fields": {}
},
{
"type": "binary_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "preproc_defined",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "!=",
"named": false
},
{
"type": "%",
"named": false
},
{
"type": "&",
"named": false
},
{
"type": "&&",
"named": false
},
{
"type": "*",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "<<",
"named": false
},
{
"type": "<=",
"named": false
},
{
"type": "==",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": ">=",
"named": false
},
{
"type": ">>",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "^^",
"named": false
},
{
"type": "|",
"named": false
},
{
"type": "||",
"named": false
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "preproc_defined",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
}
},
{
"type": "bool_literal",
"named": true,
"fields": {}
},
{
"type": "break_statement",
"named": true,
"fields": {}
},
{
"type": "case_label",
"named": true,
"fields": {
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
}
},
{
"type": "comma_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
}
},
{
"type": "compound_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "statement_list",
"named": true
}
]
}
},
{
"type": "condition",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "initializer",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "type",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
},
{
"type": "conditional_expression",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
},
"consequence": {
"multiple": false,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
}
},
{
"type": "continue_statement",
"named": true,
"fields": {}
},
{
"type": "declaration",
"named": true,
"fields": {
"instance_name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_specifier",
"named": true
},
{
"type": "declarator_list",
"named": true
},
{
"type": "field_declaration_list",
"named": true
},
{
"type": "function_declarator",
"named": true
},
{
"type": "identifier_list",
"named": true
},
{
"type": "precision_qualifier",
"named": true
},
{
"type": "type_qualifier",
"named": true
},
{
"type": "type_specifier",
"named": true
}
]
}
},
{
"type": "declarator",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "initializer",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_specifier",
"named": true
},
{
"type": "type",
"named": true
}
]
}
},
{
"type": "declarator_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "declarator",
"named": true
}
]
}
},
{
"type": "demote_statement",
"named": true,
"fields": {}
},
{
"type": "discard_statement",
"named": true,
"fields": {}
},
{
"type": "do_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
}
},
{
"type": "else_clause",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "expression_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
},
{
"type": "field_declaration",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "field_declarator_list",
"named": true
},
{
"type": "type_qualifier",
"named": true
},
{
"type": "type_specifier",
"named": true
}
]
}
},
{
"type": "field_declaration_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "field_declaration",
"named": true
},
{
"type": "preproc_call",
"named": true
},
{
"type": "preproc_def",
"named": true
},
{
"type": "preproc_function_def",
"named": true
},
{
"type": "preproc_if",
"named": true
},
{
"type": "preproc_ifdef",
"named": true
},
{
"type": "preproc_undef",
"named": true
}
]
}
},
{
"type": "field_declarator",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "array_specifier",
"named": true
}
]
}
},
{
"type": "field_declarator_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "field_declarator",
"named": true
}
]
}
},
{
"type": "field_expression",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "bool_literal",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
},
"field": {
"multiple": false,
"required": true,
"types": [
{
"type": "field_identifier",
"named": true
}
]
}
}
},
{
"type": "for_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "compound_statement",
"named": true
},
{
"type": "simple_statement",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": false,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "condition",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
},
"initializer": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression_statement",
"named": true
},
{
"type": "local_declaration",
"named": true
}
]
},
"update": {
"multiple": false,
"required": false,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
}
},
{
"type": "function_call",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": false,
"types": [
{
"type": "argument_list",
"named": true
},
{
"type": "macro_argument_list",
"named": true
}
]
},
"function": {
"multiple": false,
"required": true,
"types": [
{
"type": "bool_literal",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "type_specifier",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
}
},
{
"type": "function_declarator",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "parameter_list",
"named": true
}
]
},
"return_type": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
}
}
},
{
"type": "function_definition",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "compound_statement",
"named": true
},
{
"type": "function_declarator",
"named": true
}
]
}
},
{
"type": "identifier_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "if_statement",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": false,
"types": [
{
"type": "else_clause",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
},
"consequence": {
"multiple": false,
"required": true,
"types": [
{
"type": "statement",
"named": true
}
]
}
}
},
{
"type": "initializer",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "initializer_list",
"named": true
}
]
}
},
{
"type": "initializer_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "initializer",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
},
{
"type": "interpolation_qualifier",
"named": true,
"fields": {}
},
{
"type": "layout_argument",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "layout_qualifier",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "layout_argument",
"named": true
}
]
}
},
{
"type": "local_declaration",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "declarator_list",
"named": true
}
]
}
},
{
"type": "macro_argument",
"named": true,
"fields": {}
},
{
"type": "macro_argument_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "macro_argument",
"named": true
}
]
}
},
{
"type": "macro_invocation",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": false,
"types": [
{
"type": "macro_argument_list",
"named": true
}
]
},
"function": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "multilingual_c_code_block",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "multilingual_code_line",
"named": true
}
]
}
},
{
"type": "multilingual_cpp_code_block",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "multilingual_code_line",
"named": true
}
]
}
},
{
"type": "parameter_declaration",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"type": {
"multiple": false,
"required": true,
"types": [
{
"type": "type_specifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_specifier",
"named": true
},
{
"type": "type_qualifier",
"named": true
}
]
}
},
{
"type": "parameter_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "parameter_declaration",
"named": true
}
]
}
},
{
"type": "parenthesized_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "preproc_defined",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
},
{
"type": "precision_qualifier",
"named": true,
"fields": {}
},
{
"type": "preproc_c_condition",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "preproc_c_language_check",
"named": true
}
]
}
},
{
"type": "preproc_c_language_check",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "preproc_c_language_macro",
"named": true
}
]
}
},
{
"type": "preproc_c_language_macro",
"named": true,
"fields": {}
},
{
"type": "preproc_call",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_arg",
"named": true
}
]
},
"directive": {
"multiple": false,
"required": true,
"types": [
{
"type": "preproc_directive",
"named": true
}
]
}
}
},
{
"type": "preproc_cpp_condition",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "preproc_c_language_check",
"named": true
},
{
"type": "preproc_cpp_language_check",
"named": true
}
]
}
},
{
"type": "preproc_cpp_language_check",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "preproc_cpp_language_macro",
"named": true
}
]
}
},
{
"type": "preproc_def",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_arg",
"named": true
}
]
}
}
},
{
"type": "preproc_defined",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "preproc_elif",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_elif",
"named": true
},
{
"type": "preproc_else",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "preproc_c_condition",
"named": true
},
{
"type": "preproc_cpp_condition",
"named": true
},
{
"type": "preproc_defined",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"consequence": {
"multiple": false,
"required": false,
"types": [
{
"type": "multilingual_c_code_block",
"named": true
},
{
"type": "multilingual_cpp_code_block",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "declaration",
"named": true
},
{
"type": "field_declaration",
"named": true
},
{
"type": "function_definition",
"named": true
},
{
"type": "preproc_call",
"named": true
},
{
"type": "preproc_def",
"named": true
},
{
"type": "preproc_error",
"named": true
},
{
"type": "preproc_extension",
"named": true
},
{
"type": "preproc_function_def",
"named": true
},
{
"type": "preproc_if",
"named": true
},
{
"type": "preproc_ifdef",
"named": true
},
{
"type": "preproc_language_if",
"named": true
},
{
"type": "preproc_language_ifdef",
"named": true
},
{
"type": "preproc_language_ifndef",
"named": true
},
{
"type": "preproc_line",
"named": true
},
{
"type": "preproc_nothing",
"named": true
},
{
"type": "preproc_pragma",
"named": true
},
{
"type": "preproc_undef",
"named": true
},
{
"type": "preproc_version",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "preproc_else",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "multilingual_c_code_block",
"named": true
},
{
"type": "multilingual_cpp_code_block",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "declaration",
"named": true
},
{
"type": "field_declaration",
"named": true
},
{
"type": "function_definition",
"named": true
},
{
"type": "preproc_call",
"named": true
},
{
"type": "preproc_def",
"named": true
},
{
"type": "preproc_error",
"named": true
},
{
"type": "preproc_extension",
"named": true
},
{
"type": "preproc_function_def",
"named": true
},
{
"type": "preproc_if",
"named": true
},
{
"type": "preproc_ifdef",
"named": true
},
{
"type": "preproc_language_if",
"named": true
},
{
"type": "preproc_language_ifdef",
"named": true
},
{
"type": "preproc_language_ifndef",
"named": true
},
{
"type": "preproc_line",
"named": true
},
{
"type": "preproc_nothing",
"named": true
},
{
"type": "preproc_pragma",
"named": true
},
{
"type": "preproc_undef",
"named": true
},
{
"type": "preproc_version",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "preproc_error",
"named": true,
"fields": {
"message": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_arg",
"named": true
}
]
}
}
},
{
"type": "preproc_extension",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_arg",
"named": true
}
]
}
}
},
{
"type": "preproc_function_def",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": true,
"types": [
{
"type": "preproc_params",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_arg",
"named": true
}
]
}
}
},
{
"type": "preproc_if",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_elif",
"named": true
},
{
"type": "preproc_else",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "preproc_defined",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "declaration",
"named": true
},
{
"type": "field_declaration",
"named": true
},
{
"type": "function_definition",
"named": true
},
{
"type": "preproc_call",
"named": true
},
{
"type": "preproc_def",
"named": true
},
{
"type": "preproc_error",
"named": true
},
{
"type": "preproc_extension",
"named": true
},
{
"type": "preproc_function_def",
"named": true
},
{
"type": "preproc_if",
"named": true
},
{
"type": "preproc_ifdef",
"named": true
},
{
"type": "preproc_language_if",
"named": true
},
{
"type": "preproc_language_ifdef",
"named": true
},
{
"type": "preproc_language_ifndef",
"named": true
},
{
"type": "preproc_line",
"named": true
},
{
"type": "preproc_nothing",
"named": true
},
{
"type": "preproc_pragma",
"named": true
},
{
"type": "preproc_undef",
"named": true
},
{
"type": "preproc_version",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "preproc_ifdef",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_elif",
"named": true
},
{
"type": "preproc_else",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "declaration",
"named": true
},
{
"type": "field_declaration",
"named": true
},
{
"type": "function_definition",
"named": true
},
{
"type": "preproc_call",
"named": true
},
{
"type": "preproc_def",
"named": true
},
{
"type": "preproc_error",
"named": true
},
{
"type": "preproc_extension",
"named": true
},
{
"type": "preproc_function_def",
"named": true
},
{
"type": "preproc_if",
"named": true
},
{
"type": "preproc_ifdef",
"named": true
},
{
"type": "preproc_language_if",
"named": true
},
{
"type": "preproc_language_ifdef",
"named": true
},
{
"type": "preproc_language_ifndef",
"named": true
},
{
"type": "preproc_line",
"named": true
},
{
"type": "preproc_nothing",
"named": true
},
{
"type": "preproc_pragma",
"named": true
},
{
"type": "preproc_undef",
"named": true
},
{
"type": "preproc_version",
"named": true
},
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "preproc_language_if",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_elif",
"named": true
},
{
"type": "preproc_else",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "preproc_c_condition",
"named": true
},
{
"type": "preproc_cpp_condition",
"named": true
},
{
"type": "preproc_not_c_condition",
"named": true
},
{
"type": "preproc_not_cpp_condition",
"named": true
}
]
},
"consequence": {
"multiple": false,
"required": false,
"types": [
{
"type": "multilingual_c_code_block",
"named": true
},
{
"type": "multilingual_cpp_code_block",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "declaration",
"named": true
},
{
"type": "function_definition",
"named": true
},
{
"type": "preproc_call",
"named": true
},
{
"type": "preproc_def",
"named": true
},
{
"type": "preproc_error",
"named": true
},
{
"type": "preproc_extension",
"named": true
},
{
"type": "preproc_function_def",
"named": true
},
{
"type": "preproc_if",
"named": true
},
{
"type": "preproc_ifdef",
"named": true
},
{
"type": "preproc_language_if",
"named": true
},
{
"type": "preproc_language_ifdef",
"named": true
},
{
"type": "preproc_language_ifndef",
"named": true
},
{
"type": "preproc_line",
"named": true
},
{
"type": "preproc_nothing",
"named": true
},
{
"type": "preproc_pragma",
"named": true
},
{
"type": "preproc_undef",
"named": true
},
{
"type": "preproc_version",
"named": true
}
]
}
},
{
"type": "preproc_language_ifdef",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_else",
"named": true
}
]
},
"consequence": {
"multiple": false,
"required": true,
"types": [
{
"type": "multilingual_c_code_block",
"named": true
},
{
"type": "multilingual_cpp_code_block",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "preproc_c_language_macro",
"named": true
},
{
"type": "preproc_cpp_language_macro",
"named": true
}
]
}
}
},
{
"type": "preproc_language_ifndef",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_else",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "preproc_c_language_macro",
"named": true
},
{
"type": "preproc_cpp_language_macro",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "declaration",
"named": true
},
{
"type": "function_definition",
"named": true
},
{
"type": "preproc_call",
"named": true
},
{
"type": "preproc_def",
"named": true
},
{
"type": "preproc_error",
"named": true
},
{
"type": "preproc_extension",
"named": true
},
{
"type": "preproc_function_def",
"named": true
},
{
"type": "preproc_if",
"named": true
},
{
"type": "preproc_ifdef",
"named": true
},
{
"type": "preproc_language_if",
"named": true
},
{
"type": "preproc_language_ifdef",
"named": true
},
{
"type": "preproc_language_ifndef",
"named": true
},
{
"type": "preproc_line",
"named": true
},
{
"type": "preproc_nothing",
"named": true
},
{
"type": "preproc_pragma",
"named": true
},
{
"type": "preproc_undef",
"named": true
},
{
"type": "preproc_version",
"named": true
}
]
}
},
{
"type": "preproc_line",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_arg",
"named": true
}
]
}
}
},
{
"type": "preproc_not_c_condition",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "preproc_c_language_check",
"named": true
}
]
}
},
{
"type": "preproc_not_cpp_condition",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "preproc_cpp_language_check",
"named": true
}
]
}
},
{
"type": "preproc_nothing",
"named": true,
"fields": {}
},
{
"type": "preproc_params",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "preproc_pragma",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": false,
"types": [
{
"type": "preproc_arg",
"named": true
}
]
}
}
},
{
"type": "preproc_undef",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "preproc_version",
"named": true,
"fields": {}
},
{
"type": "return_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
},
{
"type": "statement_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "statement",
"named": true
}
]
}
},
{
"type": "storage_qualifier",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "type_name_list",
"named": true
}
]
}
},
{
"type": "struct_specifier",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "field_declaration_list",
"named": true
}
]
}
},
{
"type": "subscript_expression",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "bool_literal",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
},
"index": {
"multiple": false,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
}
},
{
"type": "switch_statement",
"named": true,
"fields": {
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "statement_list",
"named": true
}
]
}
},
{
"type": "terminate_invocation_statement",
"named": true,
"fields": {}
},
{
"type": "translation_unit",
"named": true,
"root": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "declaration",
"named": true
},
{
"type": "function_definition",
"named": true
},
{
"type": "preproc_call",
"named": true
},
{
"type": "preproc_def",
"named": true
},
{
"type": "preproc_error",
"named": true
},
{
"type": "preproc_extension",
"named": true
},
{
"type": "preproc_function_def",
"named": true
},
{
"type": "preproc_if",
"named": true
},
{
"type": "preproc_ifdef",
"named": true
},
{
"type": "preproc_language_if",
"named": true
},
{
"type": "preproc_language_ifdef",
"named": true
},
{
"type": "preproc_language_ifndef",
"named": true
},
{
"type": "preproc_line",
"named": true
},
{
"type": "preproc_nothing",
"named": true
},
{
"type": "preproc_pragma",
"named": true
},
{
"type": "preproc_undef",
"named": true
},
{
"type": "preproc_version",
"named": true
}
]
}
},
{
"type": "type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "type_qualifier",
"named": true
},
{
"type": "type_specifier",
"named": true
}
]
}
},
{
"type": "type_name_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "type_qualifier",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "single_type_qualifier",
"named": true
}
]
}
},
{
"type": "type_specifier",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_specifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "struct_specifier",
"named": true
},
{
"type": "type_identifier",
"named": true
}
]
}
},
{
"type": "unary_expression",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "preproc_defined",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "!",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "~",
"named": false
}
]
}
}
},
{
"type": "update_expression",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "bool_literal",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "++",
"named": false
},
{
"type": "--",
"named": false
}
]
}
}
},
{
"type": "while_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": true,
"types": [
{
"type": "compound_statement",
"named": true
},
{
"type": "simple_statement",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "assignment_expression",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "bool_literal",
"named": true
},
{
"type": "comma_expression",
"named": true
},
{
"type": "condition",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "macro_invocation",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "subscript_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "update_expression",
"named": true
}
]
}
}
},
{
"type": "!",
"named": false
},
{
"type": "!=",
"named": false
},
{
"type": "#define",
"named": false
},
{
"type": "#elif",
"named": false
},
{
"type": "#else",
"named": false
},
{
"type": "#endif",
"named": false
},
{
"type": "#error",
"named": false
},
{
"type": "#extension",
"named": false
},
{
"type": "#if",
"named": false
},
{
"type": "#ifdef",
"named": false
},
{
"type": "#ifndef",
"named": false
},
{
"type": "#line",
"named": false
},
{
"type": "#pragma",
"named": false
},
{
"type": "#undef",
"named": false
},
{
"type": "%",
"named": false
},
{
"type": "%=",
"named": false
},
{
"type": "&",
"named": false
},
{
"type": "&&",
"named": false
},
{
"type": "&=",
"named": false
},
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "*",
"named": false
},
{
"type": "*=",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "++",
"named": false
},
{
"type": "+=",
"named": false
},
{
"type": ",",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "--",
"named": false
},
{
"type": "-=",
"named": false
},
{
"type": ".",
"named": false
},
{
"type": "...",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": "/=",
"named": false
},
{
"type": ":",
"named": false
},
{
"type": ";",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "<<",
"named": false
},
{
"type": "<<=",
"named": false
},
{
"type": "<=",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": "==",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": ">=",
"named": false
},
{
"type": ">>",
"named": false
},
{
"type": ">>=",
"named": false
},
{
"type": "?",
"named": false
},
{
"type": "[",
"named": false
},
{
"type": "]",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "^=",
"named": false
},
{
"type": "^^",
"named": false
},
{
"type": "_MSC_VER",
"named": false
},
{
"type": "__GNUC__",
"named": false
},
{
"type": "__STDC__",
"named": false
},
{
"type": "__clang__",
"named": false
},
{
"type": "accelerationStructureEXT",
"named": false
},
{
"type": "accelerationStructureNV",
"named": false
},
{
"type": "atomic_uint",
"named": false
},
{
"type": "attachmentEXT",
"named": false
},
{
"type": "attribute",
"named": false
},
{
"type": "bf16vec2",
"named": false
},
{
"type": "bf16vec3",
"named": false
},
{
"type": "bf16vec4",
"named": false
},
{
"type": "bfloat16_t",
"named": false
},
{
"type": "bool",
"named": false
},
{
"type": "break",
"named": false
},
{
"type": "buffer",
"named": false
},
{
"type": "bvec2",
"named": false
},
{
"type": "bvec3",
"named": false
},
{
"type": "bvec4",
"named": false
},
{
"type": "callableDataEXT",
"named": false
},
{
"type": "callableDataInEXT",
"named": false
},
{
"type": "callableDataInNV",
"named": false
},
{
"type": "callableDataNV",
"named": false
},
{
"type": "case",
"named": false
},
{
"type": "centroid",
"named": false
},
{
"type": "coherent",
"named": false
},
{
"type": "comment",
"named": true,
"extra": true
},
{
"type": "const",
"named": false
},
{
"type": "continue",
"named": false
},
{
"type": "coopmat",
"named": false
},
{
"type": "coopmatNV",
"named": false
},
{
"type": "coopvecNV",
"named": false
},
{
"type": "default",
"named": false
},
{
"type": "defined",
"named": false
},
{
"type": "demote",
"named": false
},
{
"type": "discard",
"named": false
},
{
"type": "dmat2",
"named": false
},
{
"type": "dmat2x2",
"named": false
},
{
"type": "dmat2x3",
"named": false
},
{
"type": "dmat2x4",
"named": false
},
{
"type": "dmat3",
"named": false
},
{
"type": "dmat3x2",
"named": false
},
{
"type": "dmat3x3",
"named": false
},
{
"type": "dmat3x4",
"named": false
},
{
"type": "dmat4",
"named": false
},
{
"type": "dmat4x2",
"named": false
},
{
"type": "dmat4x3",
"named": false
},
{
"type": "dmat4x4",
"named": false
},
{
"type": "do",
"named": false
},
{
"type": "double",
"named": false
},
{
"type": "dvec2",
"named": false
},
{
"type": "dvec3",
"named": false
},
{
"type": "dvec4",
"named": false
},
{
"type": "else",
"named": false
},
{
"type": "f16mat2",
"named": false
},
{
"type": "f16mat2x2",
"named": false
},
{
"type": "f16mat2x3",
"named": false
},
{
"type": "f16mat2x4",
"named": false
},
{
"type": "f16mat3",
"named": false
},
{
"type": "f16mat3x2",
"named": false
},
{
"type": "f16mat3x3",
"named": false
},
{
"type": "f16mat3x4",
"named": false
},
{
"type": "f16mat4",
"named": false
},
{
"type": "f16mat4x2",
"named": false
},
{
"type": "f16mat4x3",
"named": false
},
{
"type": "f16mat4x4",
"named": false
},
{
"type": "f16vec2",
"named": false
},
{
"type": "f16vec3",
"named": false
},
{
"type": "f16vec4",
"named": false
},
{
"type": "f32mat2",
"named": false
},
{
"type": "f32mat2x2",
"named": false
},
{
"type": "f32mat2x3",
"named": false
},
{
"type": "f32mat2x4",
"named": false
},
{
"type": "f32mat3",
"named": false
},
{
"type": "f32mat3x2",
"named": false
},
{
"type": "f32mat3x3",
"named": false
},
{
"type": "f32mat3x4",
"named": false
},
{
"type": "f32mat4",
"named": false
},
{
"type": "f32mat4x2",
"named": false
},
{
"type": "f32mat4x3",
"named": false
},
{
"type": "f32mat4x4",
"named": false
},
{
"type": "f32vec2",
"named": false
},
{
"type": "f32vec3",
"named": false
},
{
"type": "f32vec4",
"named": false
},
{
"type": "f64mat2",
"named": false
},
{
"type": "f64mat2x2",
"named": false
},
{
"type": "f64mat2x3",
"named": false
},
{
"type": "f64mat2x4",
"named": false
},
{
"type": "f64mat3",
"named": false
},
{
"type": "f64mat3x2",
"named": false
},
{
"type": "f64mat3x3",
"named": false
},
{
"type": "f64mat3x4",
"named": false
},
{
"type": "f64mat4",
"named": false
},
{
"type": "f64mat4x2",
"named": false
},
{
"type": "f64mat4x3",
"named": false
},
{
"type": "f64mat4x4",
"named": false
},
{
"type": "f64vec2",
"named": false
},
{
"type": "f64vec3",
"named": false
},
{
"type": "f64vec4",
"named": false
},
{
"type": "false",
"named": false
},
{
"type": "fcoopmatNV",
"named": false
},
{
"type": "fe4m3vec2",
"named": false
},
{
"type": "fe4m3vec3",
"named": false
},
{
"type": "fe4m3vec4",
"named": false
},
{
"type": "fe5m2vec2",
"named": false
},
{
"type": "fe5m2vec3",
"named": false
},
{
"type": "fe5m2vec4",
"named": false
},
{
"type": "field_identifier",
"named": true
},
{
"type": "flat",
"named": false
},
{
"type": "float",
"named": false
},
{
"type": "float16_t",
"named": false
},
{
"type": "float32_t",
"named": false
},
{
"type": "float64_t",
"named": false
},
{
"type": "floate4m3_t",
"named": false
},
{
"type": "floate5m2_t",
"named": false
},
{
"type": "for",
"named": false
},
{
"type": "highp",
"named": false
},
{
"type": "hitAttributeEXT",
"named": false
},
{
"type": "hitAttributeNV",
"named": false
},
{
"type": "hitObjectAttributeEXT",
"named": false
},
{
"type": "hitObjectAttributeNV",
"named": false
},
{
"type": "hitObjectEXT",
"named": false
},
{
"type": "hitObjectNV",
"named": false
},
{
"type": "i16vec2",
"named": false
},
{
"type": "i16vec3",
"named": false
},
{
"type": "i16vec4",
"named": false
},
{
"type": "i32vec2",
"named": false
},
{
"type": "i32vec3",
"named": false
},
{
"type": "i32vec4",
"named": false
},
{
"type": "i64vec2",
"named": false
},
{
"type": "i64vec3",
"named": false
},
{
"type": "i64vec4",
"named": false
},
{
"type": "i8vec2",
"named": false
},
{
"type": "i8vec3",
"named": false
},
{
"type": "i8vec4",
"named": false
},
{
"type": "iattachmentEXT",
"named": false
},
{
"type": "icoopmatNV",
"named": false
},
{
"type": "identifier",
"named": true
},
{
"type": "if",
"named": false
},
{
"type": "iimage1D",
"named": false
},
{
"type": "iimage1DArray",
"named": false
},
{
"type": "iimage2D",
"named": false
},
{
"type": "iimage2DArray",
"named": false
},
{
"type": "iimage2DMS",
"named": false
},
{
"type": "iimage2DMSArray",
"named": false
},
{
"type": "iimage2DRect",
"named": false
},
{
"type": "iimage3D",
"named": false
},
{
"type": "iimageBuffer",
"named": false
},
{
"type": "iimageCube",
"named": false
},
{
"type": "iimageCubeArray",
"named": false
},
{
"type": "image1D",
"named": false
},
{
"type": "image1DArray",
"named": false
},
{
"type": "image2D",
"named": false
},
{
"type": "image2DArray",
"named": false
},
{
"type": "image2DMS",
"named": false
},
{
"type": "image2DMSArray",
"named": false
},
{
"type": "image2DRect",
"named": false
},
{
"type": "image3D",
"named": false
},
{
"type": "imageBuffer",
"named": false
},
{
"type": "imageCube",
"named": false
},
{
"type": "imageCubeArray",
"named": false
},
{
"type": "in",
"named": false
},
{
"type": "inout",
"named": false
},
{
"type": "int",
"named": false
},
{
"type": "int16_t",
"named": false
},
{
"type": "int32_t",
"named": false
},
{
"type": "int64_t",
"named": false
},
{
"type": "int8_t",
"named": false
},
{
"type": "invariant_qualifier",
"named": true
},
{
"type": "isampler1D",
"named": false
},
{
"type": "isampler1DArray",
"named": false
},
{
"type": "isampler2D",
"named": false
},
{
"type": "isampler2DArray",
"named": false
},
{
"type": "isampler2DMS",
"named": false
},
{
"type": "isampler2DMSArray",
"named": false
},
{
"type": "isampler2DRect",
"named": false
},
{
"type": "isampler3D",
"named": false
},
{
"type": "isamplerBuffer",
"named": false
},
{
"type": "isamplerCube",
"named": false
},
{
"type": "isamplerCubeArray",
"named": false
},
{
"type": "isubpassInput",
"named": false
},
{
"type": "isubpassInputMS",
"named": false
},
{
"type": "itexture1D",
"named": false
},
{
"type": "itexture1DArray",
"named": false
},
{
"type": "itexture2D",
"named": false
},
{
"type": "itexture2DArray",
"named": false
},
{
"type": "itexture2DMS",
"named": false
},
{
"type": "itexture2DMSArray",
"named": false
},
{
"type": "itexture2DRect",
"named": false
},
{
"type": "itexture3D",
"named": false
},
{
"type": "itextureBuffer",
"named": false
},
{
"type": "itextureCube",
"named": false
},
{
"type": "itextureCubeArray",
"named": false
},
{
"type": "ivec2",
"named": false
},
{
"type": "ivec3",
"named": false
},
{
"type": "ivec4",
"named": false
},
{
"type": "layout",
"named": false
},
{
"type": "lowp",
"named": false
},
{
"type": "mat2",
"named": false
},
{
"type": "mat2x2",
"named": false
},
{
"type": "mat2x3",
"named": false
},
{
"type": "mat2x4",
"named": false
},
{
"type": "mat3",
"named": false
},
{
"type": "mat3x2",
"named": false
},
{
"type": "mat3x3",
"named": false
},
{
"type": "mat3x4",
"named": false
},
{
"type": "mat4",
"named": false
},
{
"type": "mat4x2",
"named": false
},
{
"type": "mat4x3",
"named": false
},
{
"type": "mat4x4",
"named": false
},
{
"type": "mediump",
"named": false
},
{
"type": "multilingual_code_line",
"named": true
},
{
"type": "nontemporal",
"named": false
},
{
"type": "nonuniformEXT",
"named": false
},
{
"type": "noperspective",
"named": false
},
{
"type": "number_literal",
"named": true
},
{
"type": "out",
"named": false
},
{
"type": "patch",
"named": false
},
{
"type": "perprimitiveEXT",
"named": false
},
{
"type": "perprimitiveNV",
"named": false
},
{
"type": "pervertexEXT",
"named": false
},
{
"type": "pervertexNV",
"named": false
},
{
"type": "perviewNV",
"named": false
},
{
"type": "precise_qualifier",
"named": true
},
{
"type": "precision",
"named": false
},
{
"type": "preproc_arg",
"named": true
},
{
"type": "preproc_cpp_language_macro",
"named": true
},
{
"type": "preproc_directive",
"named": true
},
{
"type": "rayPayloadEXT",
"named": false
},
{
"type": "rayPayloadInEXT",
"named": false
},
{
"type": "rayPayloadInNV",
"named": false
},
{
"type": "rayPayloadNV",
"named": false
},
{
"type": "rayQueryEXT",
"named": false
},
{
"type": "readonly",
"named": false
},
{
"type": "restrict",
"named": false
},
{
"type": "return",
"named": false
},
{
"type": "sample",
"named": false
},
{
"type": "sampler",
"named": false
},
{
"type": "sampler1D",
"named": false
},
{
"type": "sampler1DArray",
"named": false
},
{
"type": "sampler1DArrayShadow",
"named": false
},
{
"type": "sampler1DShadow",
"named": false
},
{
"type": "sampler2D",
"named": false
},
{
"type": "sampler2DArray",
"named": false
},
{
"type": "sampler2DArrayShadow",
"named": false
},
{
"type": "sampler2DMS",
"named": false
},
{
"type": "sampler2DMSArray",
"named": false
},
{
"type": "sampler2DRect",
"named": false
},
{
"type": "sampler2DRectShadow",
"named": false
},
{
"type": "sampler2DShadow",
"named": false
},
{
"type": "sampler3D",
"named": false
},
{
"type": "samplerBuffer",
"named": false
},
{
"type": "samplerCube",
"named": false
},
{
"type": "samplerCubeArray",
"named": false
},
{
"type": "samplerCubeArrayShadow",
"named": false
},
{
"type": "samplerCubeShadow",
"named": false
},
{
"type": "samplerShadow",
"named": false
},
{
"type": "shaderRecordEXT",
"named": false
},
{
"type": "shaderRecordNV",
"named": false
},
{
"type": "shadercallcoherent",
"named": false
},
{
"type": "shared",
"named": false
},
{
"type": "smooth",
"named": false
},
{
"type": "struct",
"named": false
},
{
"type": "subgroupuniformEXT",
"named": false
},
{
"type": "subpassInput",
"named": false
},
{
"type": "subpassInputMS",
"named": false
},
{
"type": "subroutine",
"named": false
},
{
"type": "switch",
"named": false
},
{
"type": "taskNV",
"named": false
},
{
"type": "taskPayloadSharedEXT",
"named": false
},
{
"type": "tensorARM",
"named": false
},
{
"type": "tensorLayoutNV",
"named": false
},
{
"type": "tensorViewNV",
"named": false
},
{
"type": "terminateInvocation",
"named": false
},
{
"type": "texture1D",
"named": false
},
{
"type": "texture1DArray",
"named": false
},
{
"type": "texture2D",
"named": false
},
{
"type": "texture2DArray",
"named": false
},
{
"type": "texture2DMS",
"named": false
},
{
"type": "texture2DMSArray",
"named": false
},
{
"type": "texture2DRect",
"named": false
},
{
"type": "texture3D",
"named": false
},
{
"type": "textureBuffer",
"named": false
},
{
"type": "textureCube",
"named": false
},
{
"type": "textureCubeArray",
"named": false
},
{
"type": "tileImageEXT",
"named": false
},
{
"type": "true",
"named": false
},
{
"type": "type_identifier",
"named": true
},
{
"type": "u16vec2",
"named": false
},
{
"type": "u16vec3",
"named": false
},
{
"type": "u16vec4",
"named": false
},
{
"type": "u32vec2",
"named": false
},
{
"type": "u32vec3",
"named": false
},
{
"type": "u32vec4",
"named": false
},
{
"type": "u64vec2",
"named": false
},
{
"type": "u64vec3",
"named": false
},
{
"type": "u64vec4",
"named": false
},
{
"type": "u8vec2",
"named": false
},
{
"type": "u8vec3",
"named": false
},
{
"type": "u8vec4",
"named": false
},
{
"type": "uattachmentEXT",
"named": false
},
{
"type": "ucoopmatNV",
"named": false
},
{
"type": "uimage1D",
"named": false
},
{
"type": "uimage1DArray",
"named": false
},
{
"type": "uimage2D",
"named": false
},
{
"type": "uimage2DArray",
"named": false
},
{
"type": "uimage2DMS",
"named": false
},
{
"type": "uimage2DMSArray",
"named": false
},
{
"type": "uimage2DRect",
"named": false
},
{
"type": "uimage3D",
"named": false
},
{
"type": "uimageBuffer",
"named": false
},
{
"type": "uimageCube",
"named": false
},
{
"type": "uimageCubeArray",
"named": false
},
{
"type": "uint",
"named": false
},
{
"type": "uint16_t",
"named": false
},
{
"type": "uint32_t",
"named": false
},
{
"type": "uint64_t",
"named": false
},
{
"type": "uint8_t",
"named": false
},
{
"type": "uniform",
"named": false
},
{
"type": "usampler1D",
"named": false
},
{
"type": "usampler1DArray",
"named": false
},
{
"type": "usampler2D",
"named": false
},
{
"type": "usampler2DArray",
"named": false
},
{
"type": "usampler2DMS",
"named": false
},
{
"type": "usampler2DMSArray",
"named": false
},
{
"type": "usampler2DRect",
"named": false
},
{
"type": "usampler3D",
"named": false
},
{
"type": "usamplerBuffer",
"named": false
},
{
"type": "usamplerCube",
"named": false
},
{
"type": "usamplerCubeArray",
"named": false
},
{
"type": "usubpassInput",
"named": false
},
{
"type": "usubpassInputMS",
"named": false
},
{
"type": "utexture1D",
"named": false
},
{
"type": "utexture1DArray",
"named": false
},
{
"type": "utexture2D",
"named": false
},
{
"type": "utexture2DArray",
"named": false
},
{
"type": "utexture2DMS",
"named": false
},
{
"type": "utexture2DMSArray",
"named": false
},
{
"type": "utexture2DRect",
"named": false
},
{
"type": "utexture3D",
"named": false
},
{
"type": "utextureBuffer",
"named": false
},
{
"type": "utextureCube",
"named": false
},
{
"type": "utextureCubeArray",
"named": false
},
{
"type": "uvec2",
"named": false
},
{
"type": "uvec3",
"named": false
},
{
"type": "uvec4",
"named": false
},
{
"type": "varying",
"named": false
},
{
"type": "vec2",
"named": false
},
{
"type": "vec3",
"named": false
},
{
"type": "vec4",
"named": false
},
{
"type": "void",
"named": false
},
{
"type": "volatile",
"named": false
},
{
"type": "while",
"named": false
},
{
"type": "writeonly",
"named": false
},
{
"type": "{",
"named": false
},
{
"type": "|",
"named": false
},
{
"type": "|=",
"named": false
},
{
"type": "||",
"named": false
},
{
"type": "}",
"named": false
},
{
"type": "~",
"named": false
}
]