UNPKG

tree-sitter-bos

Version:

DSL scripting language for controlling unit animations and state. Used by the Recoil engine.

2,775 lines 51.9 kB
[ { "type": "constant", "named": true, "subtypes": [ { "type": "degree_constant", "named": true }, { "type": "linear_constant", "named": true }, { "type": "number_literal", "named": true } ] }, { "type": "declaration", "named": true, "subtypes": [ { "type": "function_declaration", "named": true }, { "type": "piece_declaration", "named": true }, { "type": "static_var_declaration", "named": true } ] }, { "type": "expression", "named": true, "subtypes": [ { "type": "binary_expression", "named": true }, { "type": "constant", "named": true }, { "type": "false", "named": true }, { "type": "macro_call_expression", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "true", "named": true }, { "type": "unary_expression", "named": true }, { "type": "varying", "named": true } ] }, { "type": "keyword_statement", "named": true, "subtypes": [ { "type": "attach_unit_statement", "named": true }, { "type": "cache_statement", "named": true }, { "type": "call_script_statement", "named": true }, { "type": "dont_cache_statement", "named": true }, { "type": "dont_shade_statement", "named": true }, { "type": "dont_shadow_statement", "named": true }, { "type": "drop_unit_statement", "named": true }, { "type": "emit_sfx_statement", "named": true }, { "type": "explode_statement", "named": true }, { "type": "get_statement", "named": true }, { "type": "hide_statement", "named": true }, { "type": "move_statement", "named": true }, { "type": "set_signal_mask_statement", "named": true }, { "type": "set_statement", "named": true }, { "type": "show_statement", "named": true }, { "type": "signal_statement", "named": true }, { "type": "sleep_statement", "named": true }, { "type": "spin_statement", "named": true }, { "type": "start_script_statement", "named": true }, { "type": "stop_spin_statement", "named": true }, { "type": "turn_statement", "named": true }, { "type": "wait_for_move_statement", "named": true }, { "type": "wait_for_turn_statement", "named": true } ] }, { "type": "preproc_expression", "named": true, "subtypes": [ { "type": "constant", "named": true }, { "type": "define_name", "named": true }, { "type": "preproc_binary_expression", "named": true }, { "type": "preproc_call_expression", "named": true }, { "type": "preproc_defined", "named": true }, { "type": "preproc_parenthesized_expression", "named": true }, { "type": "preproc_unary_expression", "named": true } ] }, { "type": "statement", "named": true, "subtypes": [ { "type": ";", "named": false }, { "type": "assign_statement", "named": true }, { "type": "compound_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "keyword_statement", "named": true }, { "type": "return_statement", "named": true }, { "type": "var_statement", "named": true }, { "type": "while_statement", "named": true } ] }, { "type": "varying", "named": true, "subtypes": [ { "type": "get_term", "named": true }, { "type": "rand_call", "named": true }, { "type": "var_name_term", "named": true } ] }, { "type": "argument_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true } ] } }, { "type": "assign_statement", "named": true, "fields": { "name": { "multiple": false, "required": false, "types": [ { "type": "var_name", "named": true } ] }, "value": { "multiple": false, "required": false, "types": [ { "type": "expression", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "decrement_statement", "named": true }, { "type": "increment_statement", "named": true } ] } }, { "type": "attach_unit_statement", "named": true, "fields": { "argument": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "attach-unit", "named": false } ] } } }, { "type": "axis", "named": true, "fields": {} }, { "type": "binary_expression", "named": true, "fields": { "left": { "multiple": false, "required": true, "types": [ { "type": "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 } ] }, "right": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "cache_statement", "named": true, "fields": { "keyword": { "multiple": false, "required": true, "types": [ { "type": "cache", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "call_script_statement", "named": true, "fields": { "arguments": { "multiple": false, "required": true, "types": [ { "type": "argument_list", "named": true } ] }, "function": { "multiple": false, "required": true, "types": [ { "type": "func_name", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "call-script", "named": false } ] } } }, { "type": "compound_statement", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "macro_call_statement", "named": true }, { "type": "macro_name_statement", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_directive", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_include", "named": true }, { "type": "preproc_line", "named": true }, { "type": "preproc_undef", "named": true }, { "type": "statement", "named": true } ] } }, { "type": "decrement_statement", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "var_name", "named": true } ] } } }, { "type": "degree_constant", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "number_literal", "named": true } ] } }, { "type": "dont_cache_statement", "named": true, "fields": { "keyword": { "multiple": false, "required": true, "types": [ { "type": "dont-cache", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "dont_shade_statement", "named": true, "fields": { "keyword": { "multiple": false, "required": true, "types": [ { "type": "dont-shade", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "dont_shadow_statement", "named": true, "fields": { "keyword": { "multiple": false, "required": true, "types": [ { "type": "dont-shadow", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "drop_unit_statement", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "drop-unit", "named": false } ] } } }, { "type": "emit_sfx_statement", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "emit-sfx", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "explode_statement", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "explode", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "function_declaration", "named": true, "fields": { "arg": { "multiple": true, "required": false, "types": [ { "type": "arg_name", "named": true } ] }, "body": { "multiple": false, "required": true, "types": [ { "type": "compound_statement", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "func_name", "named": true } ] } } }, { "type": "get_call", "named": true, "fields": { "arg": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true } ] }, "value_index": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "get_statement", "named": true, "fields": { "call": { "multiple": false, "required": true, "types": [ { "type": "get_call", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "get", "named": false } ] } } }, { "type": "get_term", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "get_call", "named": true } ] } }, { "type": "hide_statement", "named": true, "fields": { "keyword": { "multiple": false, "required": true, "types": [ { "type": "hide", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "if_statement", "named": true, "fields": { "condition": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "else": { "multiple": false, "required": false, "types": [ { "type": "statement", "named": true } ] }, "then": { "multiple": false, "required": true, "types": [ { "type": "statement", "named": true } ] } } }, { "type": "increment_statement", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "var_name", "named": true } ] } } }, { "type": "linear_constant", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "number_literal", "named": true } ] } }, { "type": "macro_call_expression", "named": true, "fields": { "arguments": { "multiple": false, "required": true, "types": [ { "type": "preproc_argument_list", "named": true } ] }, "function": { "multiple": false, "required": true, "types": [ { "type": "define_name", "named": true } ] } } }, { "type": "macro_call_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "macro_call_expression", "named": true } ] } }, { "type": "macro_name_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "define_name", "named": true } ] } }, { "type": "move_statement", "named": true, "fields": { "argument": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true }, { "type": "now", "named": false }, { "type": "speed", "named": false } ] }, "axis": { "multiple": false, "required": true, "types": [ { "type": "axis", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "move", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "parenthesized_expression", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "piece_declaration", "named": true, "fields": { "name": { "multiple": true, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "preproc_argument_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "preproc_expression", "named": true } ] } }, { "type": "preproc_binary_expression", "named": true, "fields": { "left": { "multiple": false, "required": true, "types": [ { "type": "preproc_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 } ] }, "right": { "multiple": false, "required": true, "types": [ { "type": "preproc_expression", "named": true } ] } } }, { "type": "preproc_call_expression", "named": true, "fields": { "arguments": { "multiple": false, "required": true, "types": [ { "type": "preproc_argument_list", "named": true } ] }, "function": { "multiple": false, "required": true, "types": [ { "type": "define_name", "named": true } ] } } }, { "type": "preproc_def", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "define_name", "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": "define_name", "named": true } ] } }, { "type": "preproc_directive", "named": true, "fields": { "argument": { "multiple": false, "required": false, "types": [ { "type": "preproc_arg", "named": true } ] }, "directive": { "multiple": false, "required": true, "types": [ { "type": "preproc_directive_name", "named": true } ] } } }, { "type": "preproc_elif", "named": true, "fields": { "alternative": { "multiple": false, "required": false, "types": [ { "type": "preproc_elif", "named": true }, { "type": "preproc_elifdef", "named": true }, { "type": "preproc_else", "named": true } ] }, "body": { "multiple": true, "required": false, "types": [ { "type": "declaration", "named": true }, { "type": "macro_call_statement", "named": true }, { "type": "macro_name_statement", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_directive", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_include", "named": true }, { "type": "preproc_line", "named": true }, { "type": "preproc_undef", "named": true }, { "type": "statement", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "preproc_expression", "named": true } ] } } }, { "type": "preproc_elifdef", "named": true, "fields": { "alternative": { "multiple": false, "required": false, "types": [ { "type": "preproc_elif", "named": true }, { "type": "preproc_elifdef", "named": true }, { "type": "preproc_else", "named": true } ] }, "body": { "multiple": true, "required": false, "types": [ { "type": "declaration", "named": true }, { "type": "macro_call_statement", "named": true }, { "type": "macro_name_statement", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_directive", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_include", "named": true }, { "type": "preproc_line", "named": true }, { "type": "preproc_undef", "named": true }, { "type": "statement", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "define_name", "named": true } ] } } }, { "type": "preproc_else", "named": true, "fields": { "body": { "multiple": true, "required": false, "types": [ { "type": "declaration", "named": true }, { "type": "macro_call_statement", "named": true }, { "type": "macro_name_statement", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_directive", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_include", "named": true }, { "type": "preproc_line", "named": true }, { "type": "preproc_undef", "named": true }, { "type": "statement", "named": true } ] } } }, { "type": "preproc_function_def", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "define_name", "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_elifdef", "named": true }, { "type": "preproc_else", "named": true } ] }, "body": { "multiple": true, "required": false, "types": [ { "type": "declaration", "named": true }, { "type": "macro_call_statement", "named": true }, { "type": "macro_name_statement", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_directive", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_include", "named": true }, { "type": "preproc_line", "named": true }, { "type": "preproc_undef", "named": true }, { "type": "statement", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "preproc_expression", "named": true } ] } } }, { "type": "preproc_ifdef", "named": true, "fields": { "alternative": { "multiple": false, "required": false, "types": [ { "type": "preproc_elif", "named": true }, { "type": "preproc_elifdef", "named": true }, { "type": "preproc_else", "named": true } ] }, "body": { "multiple": true, "required": false, "types": [ { "type": "declaration", "named": true }, { "type": "macro_call_statement", "named": true }, { "type": "macro_name_statement", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_directive", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_include", "named": true }, { "type": "preproc_line", "named": true }, { "type": "preproc_undef", "named": true }, { "type": "statement", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "define_name", "named": true } ] } } }, { "type": "preproc_include", "named": true, "fields": { "path": { "multiple": false, "required": true, "types": [ { "type": "define_name", "named": true }, { "type": "preproc_call_expression", "named": true }, { "type": "string_literal", "named": true }, { "type": "system_lib_string", "named": true } ] } } }, { "type": "preproc_line", "named": true, "fields": { "filename": { "multiple": false, "required": false, "types": [ { "type": "string_literal", "named": true } ] }, "lineno": { "multiple": false, "required": true, "types": [ { "type": "number_literal", "named": true } ] } } }, { "type": "preproc_params", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "preproc_parenthesized_expression", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "preproc_expression", "named": true } ] } }, { "type": "preproc_unary_expression", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "preproc_expression", "named": true } ] }, "operator": { "multiple": false, "required": true, "types": [ { "type": "!", "named": false }, { "type": "+", "named": false }, { "type": "-", "named": false }, { "type": "~", "named": false } ] } } }, { "type": "preproc_undef", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "define_name", "named": true } ] } } }, { "type": "rand_call", "named": true, "fields": { "lower_bound": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "upper_bound": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "return_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "expression", "named": true } ] } }, { "type": "set_signal_mask_statement", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "set-signal-mask", "named": false } ] } } }, { "type": "set_statement", "named": true, "fields": { "argument": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "set", "named": false } ] } } }, { "type": "show_statement", "named": true, "fields": { "keyword": { "multiple": false, "required": true, "types": [ { "type": "show", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "signal_statement", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "signal", "named": false } ] } } }, { "type": "sleep_statement", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "sleep", "named": false } ] } } }, { "type": "source_file", "named": true, "root": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "declaration", "named": true }, { "type": "macro_call_statement", "named": true }, { "type": "macro_name_statement", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_directive", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_include", "named": true }, { "type": "preproc_line", "named": true }, { "type": "preproc_undef", "named": true } ] } }, { "type": "spin_statement", "named": true, "fields": { "argument": { "multiple": true, "required": true, "types": [ { "type": "accelerate", "named": false }, { "type": "expression", "named": true } ] }, "axis": { "multiple": false, "required": true, "types": [ { "type": "axis", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "spin", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "start_script_statement", "named": true, "fields": { "arguments": { "multiple": false, "required": true, "types": [ { "type": "argument_list", "named": true } ] }, "function": { "multiple": false, "required": true, "types": [ { "type": "func_name", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "start-script", "named": false } ] } } }, { "type": "static_var_declaration", "named": true, "fields": { "name": { "multiple": true, "required": true, "types": [ { "type": "var_name", "named": true } ] } } }, { "type": "stop_spin_statement", "named": true, "fields": { "argument": { "multiple": true, "required": false, "types": [ { "type": "decelerate", "named": false }, { "type": "expression", "named": true } ] }, "axis": { "multiple": false, "required": true, "types": [ { "type": "axis", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "stop-spin", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "string_literal", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "escape_sequence", "named": true }, { "type": "string_content", "named": true } ] } }, { "type": "turn_statement", "named": true, "fields": { "argument": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true }, { "type": "now", "named": false }, { "type": "speed", "named": false } ] }, "axis": { "multiple": false, "required": true, "types": [ { "type": "axis", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "turn", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "unary_expression", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "operator": { "multiple": false, "required": true, "types": [ { "type": "!", "named": false } ] } } }, { "type": "var_statement", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "var_name", "named": true } ] } }, { "type": "wait_for_move_statement", "named": true, "fields": { "axis": { "multiple": false, "required": true, "types": [ { "type": "axis", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "wait-for-move", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "wait_for_turn_statement", "named": true, "fields": { "axis": { "multiple": false, "required": true, "types": [ { "type": "axis", "named": true } ] }, "keyword": { "multiple": false, "required": true, "types": [ { "type": "wait-for-turn", "named": false } ] }, "piece": { "multiple": false, "required": true, "types": [ { "type": "piece_name", "named": true } ] } } }, { "type": "while_statement", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "statement", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "\n", "named": false }, { "type": "!", "named": false }, { "type": "!=", "named": false }, { "type": "\"", "named": false }, { "type": "#define", "named": false }, { "type": "#elif", "named": false }, { "type": "#elifdef", "named": false }, { "type": "#elifndef", "named": false }, { "type": "#else", "named": false }, { "type": "#endif", "named": false }, { "type": "#if", "named": false }, { "type": "#ifdef", "named": false }, { "type": "#ifndef", "named": false }, { "type": "#include", "named": false }, { "type": "#line", "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": "accelerate", "named": false }, { "type": "along", "named": false }, { "type": "arg_name", "named": true }, { "type": "around", "named": false }, { "type": "attach-unit", "named": false }, { "type": "cache", "named": false }, { "type": "call-script", "named": false }, { "type": "comment", "named": true, "extra": true }, { "type": "decelerate", "named": false }, { "type": "define_name", "named": true }, { "type": "defined", "named": false }, { "type": "dont-cache", "named": false }, { "type": "dont-shade", "named": false }, { "type": "dont-shadow", "named": false }, { "type": "drop-unit", "named": false }, { "type": "else", "named": false }, { "type": "emit-sfx", "named": false }, { "type": "escape_sequence", "named": true }, { "type": "explode", "named": false }, { "type": "false", "named": true }, { "type": "from", "named": false }, { "type": "func_name", "named": true }, { "type": "get", "named": false }, { "type": "hide", "na