[
{
"type": "arguments",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
},
{
"type": "assignment_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "block",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "parameters",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "function_definition",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "variable",
"named": true
}
]
}
},
{
"type": "binary_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_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": "and",
"named": false
},
{
"type": "isa",
"named": false
},
{
"type": "or",
"named": false
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
}
},
{
"type": "block",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "assignment_statement",
"named": true
},
{
"type": "break_statement",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "expression_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "if_statement_shorthand",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "bracket_index_expression",
"named": true,
"fields": {
"index": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"map": {
"multiple": false,
"required": true,
"types": [
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
}
]
}
}
},
{
"type": "comment",
"named": true,
"fields": {
"content": {
"multiple": false,
"required": true,
"types": [
{
"type": "comment_content",
"named": true
}
]
},
"start": {
"multiple": false,
"required": true,
"types": [
{
"type": "//",
"named": false
}
]
}
}
},
{
"type": "dot_index_expression",
"named": true,
"fields": {
"index": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"map": {
"multiple": false,
"required": true,
"types": [
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
}
]
}
}
},
{
"type": "else_statement",
"named": true,
"fields": {
"consequence": {
"multiple": false,
"required": false,
"types": [
{
"type": "block",
"named": true
}
]
}
}
},
{
"type": "elseif_statement",
"named": true,
"fields": {
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"consequence": {
"multiple": false,
"required": false,
"types": [
{
"type": "block",
"named": true
}
]
}
}
},
{
"type": "expression_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
},
{
"type": "for_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "block",
"named": true
}
]
},
"list": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"variable": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "function_call",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "arguments",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
}
]
}
}
},
{
"type": "function_definition",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "block",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "parameters",
"named": true
}
]
}
}
},
{
"type": "if_statement",
"named": true,
"fields": {
"alternative": {
"multiple": true,
"required": false,
"types": [
{
"type": "else_statement",
"named": true
},
{
"type": "elseif_statement",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"consequence": {
"multiple": false,
"required": false,
"types": [
{
"type": "block",
"named": true
}
]
}
}
},
{
"type": "if_statement_shorthand",
"named": true,
"fields": {
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"consequence": {
"multiple": true,
"required": false,
"types": [
{
"type": "assignment_statement",
"named": true
},
{
"type": "break_statement",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "expression_statement",
"named": true
},
{
"type": "return_statement",
"named": true
}
]
},
"left": {
"multiple": true,
"required": false,
"types": [
{
"type": "assignment_statement",
"named": true
}
]
},
"operator": {
"multiple": true,
"required": false,
"types": [
{
"type": "assignment_statement",
"named": true
}
]
},
"right": {
"multiple": true,
"required": false,
"types": [
{
"type": "assignment_statement",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "break_statement",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "expression_statement",
"named": true
},
{
"type": "return_statement",
"named": true
}
]
}
},
{
"type": "list_constructor",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
},
{
"type": "literal",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "false",
"named": true
},
{
"type": "null",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "true",
"named": true
}
]
}
},
{
"type": "map_constructor",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "pair",
"named": true
}
]
}
},
{
"type": "pair",
"named": true,
"fields": {
"key": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
}
},
{
"type": "parameters",
"named": true,
"fields": {
"default": {
"multiple": true,
"required": false,
"types": [
{
"type": "literal",
"named": true
}
]
},
"name": {
"multiple": true,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "parenthesized_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
},
{
"type": "return_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
},
{
"type": "slice_expression",
"named": true,
"fields": {
"end": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"map": {
"multiple": false,
"required": true,
"types": [
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
}
]
},
"start": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
}
},
{
"type": "source_file",
"named": true,
"root": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "assignment_statement",
"named": true
},
{
"type": "break_statement",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "expression_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "if_statement_shorthand",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "string",
"named": true,
"fields": {
"content": {
"multiple": false,
"required": false,
"types": [
{
"type": "string_content",
"named": true
}
]
},
"end": {
"multiple": false,
"required": true,
"types": [
{
"type": "string_end",
"named": false
}
]
},
"start": {
"multiple": false,
"required": true,
"types": [
{
"type": "string_start",
"named": false
}
]
}
}
},
{
"type": "string_content",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "escape_sequence",
"named": true
}
]
}
},
{
"type": "unary_expression",
"named": true,
"fields": {
"operand": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "+",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "@",
"named": false
},
{
"type": "new",
"named": false
},
{
"type": "not",
"named": false
}
]
}
}
},
{
"type": "variable",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
}
]
}
},
{
"type": "while_statement",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "block",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "bracket_index_expression",
"named": true
},
{
"type": "dot_index_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "list_constructor",
"named": true
},
{
"type": "literal",
"named": true
},
{
"type": "map_constructor",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "slice_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
}
},
{
"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": "and",
"named": false
},
{
"type": "break_statement",
"named": true
},
{
"type": "comment_content",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "else",
"named": false
},
{
"type": "else if",
"named": false
},
{
"type": "end for",
"named": false
},
{
"type": "end function",
"named": false
},
{
"type": "end if",
"named": false
},
{
"type": "end while",
"named": false
},
{
"type": "escape_sequence",
"named": true
},
{
"type": "false",
"named": true
},
{
"type": "for",
"named": false
},
{
"type": "function",
"named": false
},
{
"type": "identifier",
"named": true
},
{
"type": "if",
"named": false
},
{
"type": "in",
"named": false
},
{
"type": "isa",
"named": false
},
{
"type": "new",
"named": false
},
{
"type": "not",
"named": false
},
{
"type": "null",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "or",
"named": false
},
{
"type": "return",
"named": false
},
{
"type": "string_end",
"named": false
},
{
"type": "string_start",
"named": false
},
{
"type": "then",
"named": false
},
{
"type": "true",
"named": true
},
{
"type": "while",
"named": false
},
{
"type": "{",
"named": false
},
{
"type": "}",
"named": false
}
]