[ { "type": "argument", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "bracket_argument", "named": true }, { "type": "quoted_argument", "named": true }, { "type": "unquoted_argument", "named": true } ] } }, { "type": "argument_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "argument", "named": true }, { "type": "bracket_comment", "named": true }, { "type": "line_comment", "named": true } ] } }, { "type": "block_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "block", "named": true } ] } }, { "type": "block_def", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "block_command", "named": true }, { "type": "body", "named": true }, { "type": "endblock_command", "named": true } ] } }, { "type": "body", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "block_def", "named": true }, { "type": "bracket_comment", "named": true }, { "type": "foreach_loop", "named": true }, { "type": "function_def", "named": true }, { "type": "if_condition", "named": true }, { "type": "line_comment", "named": true }, { "type": "macro_def", "named": true }, { "type": "normal_command", "named": true }, { "type": "while_loop", "named": true } ] } }, { "type": "cache_var", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "variable", "named": true } ] } }, { "type": "else_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "else", "named": true } ] } }, { "type": "elseif_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "elseif", "named": true } ] } }, { "type": "endblock_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "endblock", "named": true } ] } }, { "type": "endforeach_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument", "named": true }, { "type": "endforeach", "named": true } ] } }, { "type": "endfunction_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "endfunction", "named": true } ] } }, { "type": "endif_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "endif", "named": true } ] } }, { "type": "endmacro_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "endmacro", "named": true } ] } }, { "type": "endwhile_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument", "named": true }, { "type": "endwhile", "named": true } ] } }, { "type": "env_var", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "variable", "named": true } ] } }, { "type": "escape_sequence", "named": true, "fields": {} }, { "type": "foreach_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "foreach", "named": true } ] } }, { "type": "foreach_loop", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "body", "named": true }, { "type": "endforeach_command", "named": true }, { "type": "foreach_command", "named": true } ] } }, { "type": "function_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "function", "named": true } ] } }, { "type": "function_def", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "body", "named": true }, { "type": "endfunction_command", "named": true }, { "type": "function_command", "named": true } ] } }, { "type": "if_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "if", "named": true } ] } }, { "type": "if_condition", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "body", "named": true }, { "type": "else_command", "named": true }, { "type": "elseif_command", "named": true }, { "type": "endif_command", "named": true }, { "type": "if_command", "named": true } ] } }, { "type": "macro_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "macro", "named": true } ] } }, { "type": "macro_def", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "body", "named": true }, { "type": "endmacro_command", "named": true }, { "type": "macro_command", "named": true } ] } }, { "type": "normal_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "identifier", "named": true } ] } }, { "type": "normal_var", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "variable", "named": true } ] } }, { "type": "quoted_argument", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "quoted_element", "named": true } ] } }, { "type": "quoted_element", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "escape_sequence", "named": true }, { "type": "variable_ref", "named": true } ] } }, { "type": "source_file", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "block_def", "named": true }, { "type": "bracket_comment", "named": true }, { "type": "foreach_loop", "named": true }, { "type": "function_def", "named": true }, { "type": "if_condition", "named": true }, { "type": "line_comment", "named": true }, { "type": "macro_def", "named": true }, { "type": "normal_command", "named": true }, { "type": "while_loop", "named": true } ] } }, { "type": "unquoted_argument", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "escape_sequence", "named": true }, { "type": "variable_ref", "named": true } ] } }, { "type": "variable", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "escape_sequence", "named": true }, { "type": "variable_ref", "named": true } ] } }, { "type": "variable_ref", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "cache_var", "named": true }, { "type": "env_var", "named": true }, { "type": "normal_var", "named": true } ] } }, { "type": "while_command", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "while", "named": true } ] } }, { "type": "while_loop", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "body", "named": true }, { "type": "endwhile_command", "named": true }, { "type": "while_command", "named": true } ] } }, { "type": "\"", "named": false }, { "type": "$", "named": false }, { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": ";", "named": false }, { "type": "CACHE", "named": false }, { "type": "ENV", "named": false }, { "type": "\\;", "named": false }, { "type": "\\n", "named": false }, { "type": "\\r", "named": false }, { "type": "\\t", "named": false }, { "type": "block", "named": true }, { "type": "bracket_argument", "named": true }, { "type": "bracket_comment", "named": true }, { "type": "else", "named": true }, { "type": "elseif", "named": true }, { "type": "endblock", "named": true }, { "type": "endforeach", "named": true }, { "type": "endfunction", "named": true }, { "type": "endif", "named": true }, { "type": "endmacro", "named": true }, { "type": "endwhile", "named": true }, { "type": "foreach", "named": true }, { "type": "function", "named": true }, { "type": "identifier", "named": true }, { "type": "if", "named": true }, { "type": "line_comment", "named": true }, { "type": "macro", "named": true }, { "type": "while", "named": true }, { "type": "{", "named": false }, { "type": "}", "named": false } ]