[
{
"type": "args",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
{
"type": "array_ref",
"named": true,
"fields": {
"index": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "exp_list",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
}
]
}
},
{
"type": "assignment_exp",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
}
},
{
"type": "binary_exp",
"named": true,
"fields": {
"left": {
"multiple": true,
"required": true,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "exp_list",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"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": "in",
"named": false
},
{
"type": "||",
"named": false
},
{
"type": "~",
"named": false
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
}
},
{
"type": "block",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "break_statement",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "delete_statement",
"named": true
},
{
"type": "do_while_statement",
"named": true
},
{
"type": "exit_statement",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "for_in_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "next_statement",
"named": true
},
{
"type": "nextfile_statement",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "piped_io_statement",
"named": true
},
{
"type": "print_statement",
"named": true
},
{
"type": "printf_statement",
"named": true
},
{
"type": "redirected_io_statement",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "comment",
"named": true,
"fields": {}
},
{
"type": "delete_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
}
]
}
},
{
"type": "directive",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "string",
"named": true
}
]
}
},
{
"type": "do_while_statement",
"named": true,
"fields": {
"condition": {
"multiple": true,
"required": true,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "break_statement",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "delete_statement",
"named": true
},
{
"type": "do_while_statement",
"named": true
},
{
"type": "exit_statement",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "for_in_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "next_statement",
"named": true
},
{
"type": "nextfile_statement",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "piped_io_statement",
"named": true
},
{
"type": "print_statement",
"named": true
},
{
"type": "printf_statement",
"named": true
},
{
"type": "redirected_io_statement",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "else_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "break_statement",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "delete_statement",
"named": true
},
{
"type": "do_while_statement",
"named": true
},
{
"type": "exit_statement",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "for_in_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "next_statement",
"named": true
},
{
"type": "nextfile_statement",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "piped_io_statement",
"named": true
},
{
"type": "print_statement",
"named": true
},
{
"type": "printf_statement",
"named": true
},
{
"type": "redirected_io_statement",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "exit_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
{
"type": "exp_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
{
"type": "field_ref",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
{
"type": "for_in_statement",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "break_statement",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "delete_statement",
"named": true
},
{
"type": "do_while_statement",
"named": true
},
{
"type": "exit_statement",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "for_in_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "next_statement",
"named": true
},
{
"type": "nextfile_statement",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "piped_io_statement",
"named": true
},
{
"type": "print_statement",
"named": true
},
{
"type": "printf_statement",
"named": true
},
{
"type": "redirected_io_statement",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "for_statement",
"named": true,
"fields": {
"advancement": {
"multiple": false,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
},
"initializer": {
"multiple": false,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "break_statement",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "delete_statement",
"named": true
},
{
"type": "do_while_statement",
"named": true
},
{
"type": "exit_statement",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "for_in_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "next_statement",
"named": true
},
{
"type": "nextfile_statement",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "piped_io_statement",
"named": true
},
{
"type": "print_statement",
"named": true
},
{
"type": "printf_statement",
"named": true
},
{
"type": "redirected_io_statement",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "func_call",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "args",
"named": true
}
]
}
},
{
"type": "func_def",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "block",
"named": true
},
{
"type": "param_list",
"named": true
}
]
}
},
{
"type": "getline_file",
"named": true,
"fields": {
"filename": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
}
]
}
},
{
"type": "getline_input",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
}
]
}
},
{
"type": "grouping",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
{
"type": "if_statement",
"named": true,
"fields": {
"condition": {
"multiple": true,
"required": true,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "break_statement",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "delete_statement",
"named": true
},
{
"type": "do_while_statement",
"named": true
},
{
"type": "else_clause",
"named": true
},
{
"type": "exit_statement",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "for_in_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "next_statement",
"named": true
},
{
"type": "nextfile_statement",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "piped_io_statement",
"named": true
},
{
"type": "print_statement",
"named": true
},
{
"type": "printf_statement",
"named": true
},
{
"type": "redirected_io_statement",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "indirect_func_call",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "func_call",
"named": true
}
]
}
},
{
"type": "namespace",
"named": true,
"fields": {}
},
{
"type": "ns_qualified_name",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "namespace",
"named": true
}
]
}
},
{
"type": "number",
"named": true,
"fields": {}
},
{
"type": "param_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "pattern",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "range_pattern",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
{
"type": "piped_io_exp",
"named": true,
"fields": {
"command": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "getline_input",
"named": true
}
]
}
},
{
"type": "piped_io_statement",
"named": true,
"fields": {
"command": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "print_statement",
"named": true
},
{
"type": "printf_statement",
"named": true
}
]
}
},
{
"type": "print_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "exp_list",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
{
"type": "printf_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "exp_list",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
{
"type": "program",
"named": true,
"root": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "directive",
"named": true
},
{
"type": "func_def",
"named": true
},
{
"type": "rule",
"named": true
}
]
}
},
{
"type": "range_pattern",
"named": true,
"fields": {
"start": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
},
"stop": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
}
},
{
"type": "redirected_io_statement",
"named": true,
"fields": {
"filename": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "print_statement",
"named": true
},
{
"type": "printf_statement",
"named": true
}
]
}
},
{
"type": "regex",
"named": true,
"fields": {
"flags": {
"multiple": false,
"required": false,
"types": [
{
"type": "regex_flags",
"named": true
}
]
},
"pattern": {
"multiple": false,
"required": false,
"types": [
{
"type": "regex_pattern",
"named": true
}
]
}
}
},
{
"type": "regex_constant",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "regex",
"named": true
}
]
}
},
{
"type": "regex_pattern",
"named": true,
"fields": {}
},
{
"type": "return_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
{
"type": "rule",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "block",
"named": true
},
{
"type": "pattern",
"named": true
}
]
}
},
{
"type": "string",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "escape_sequence",
"named": true
}
]
}
},
{
"type": "string_concat",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "concatenating_space",
"named": true
}
]
}
},
{
"type": "switch_body",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "switch_case",
"named": true
},
{
"type": "switch_default",
"named": true
}
]
}
},
{
"type": "switch_case",
"named": true,
"fields": {
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "number",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "string",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "break_statement",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "delete_statement",
"named": true
},
{
"type": "do_while_statement",
"named": true
},
{
"type": "exit_statement",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "for_in_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "next_statement",
"named": true
},
{
"type": "nextfile_statement",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "piped_io_statement",
"named": true
},
{
"type": "print_statement",
"named": true
},
{
"type": "printf_statement",
"named": true
},
{
"type": "redirected_io_statement",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "switch_default",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "break_statement",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "delete_statement",
"named": true
},
{
"type": "do_while_statement",
"named": true
},
{
"type": "exit_statement",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "for_in_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "next_statement",
"named": true
},
{
"type": "nextfile_statement",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "piped_io_statement",
"named": true
},
{
"type": "print_statement",
"named": true
},
{
"type": "printf_statement",
"named": true
},
{
"type": "redirected_io_statement",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "switch_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "switch_body",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
{
"type": "ternary_exp",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
},
"consequence": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "comment",
"named": true
}
]
}
},
{
"type": "unary_exp",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "!",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": "-",
"named": false
}
]
}
}
},
{
"type": "update_exp",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "++",
"named": false
},
{
"type": "--",
"named": false
}
]
}
}
},
{
"type": "while_statement",
"named": true,
"fields": {
"condition": {
"multiple": true,
"required": true,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_ref",
"named": true
},
{
"type": "assignment_exp",
"named": true
},
{
"type": "binary_exp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "break_statement",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "delete_statement",
"named": true
},
{
"type": "do_while_statement",
"named": true
},
{
"type": "exit_statement",
"named": true
},
{
"type": "field_ref",
"named": true
},
{
"type": "for_in_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "func_call",
"named": true
},
{
"type": "getline_file",
"named": true
},
{
"type": "getline_input",
"named": true
},
{
"type": "grouping",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "indirect_func_call",
"named": true
},
{
"type": "next_statement",
"named": true
},
{
"type": "nextfile_statement",
"named": true
},
{
"type": "ns_qualified_name",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "piped_io_exp",
"named": true
},
{
"type": "piped_io_statement",
"named": true
},
{
"type": "print_statement",
"named": true
},
{
"type": "printf_statement",
"named": true
},
{
"type": "redirected_io_statement",
"named": true
},
{
"type": "regex",
"named": true
},
{
"type": "regex_constant",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "string_concat",
"named": true
},
{
"type": "switch_statement",
"named": true
},
{
"type": "ternary_exp",
"named": true
},
{
"type": "unary_exp",
"named": true
},
{
"type": "update_exp",
"named": true
},
{
"type": "while_statement",
"named": true
}
]
}
},
{
"type": "\n",
"named": false
},
{
"type": "\r\n",
"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": "@include",
"named": false
},
{
"type": "@load",
"named": false
},
{
"type": "@namespace",
"named": false
},
{
"type": "BEGIN",
"named": false
},
{
"type": "BEGINFILE",
"named": false
},
{
"type": "END",
"named": false
},
{
"type": "ENDFILE",
"named": false
},
{
"type": "[",
"named": false
},
{
"type": "]",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "^=",
"named": false
},
{
"type": "alnum",
"named": false
},
{
"type": "alpha",
"named": false
},
{
"type": "and",
"named": false
},
{
"type": "asort",
"named": false
},
{
"type": "asorti",
"named": false
},
{
"type": "bindtextdomain",
"named": false
},
{
"type": "blank",
"named": false
},
{
"type": "break_statement",
"named": true
},
{
"type": "case",
"named": false
},
{
"type": "cntrl",
"named": false
},
{
"type": "compl",
"named": false
},
{
"type": "concatenating_space",
"named": true
},
{
"type": "continue_statement",
"named": true
},
{
"type": "cos",
"named": false
},
{
"type": "dcgettext",
"named": false
},
{
"type": "dcngettext",
"named": false
},
{
"type": "default",
"named": false
},
{
"type": "delete",
"named": false
},
{
"type": "digit",
"named": false
},
{
"type": "do",
"named": false
},
{
"type": "else",
"named": false
},
{
"type": "escape_sequence",
"named": true
},
{
"type": "exit",
"named": false
},
{
"type": "exp",
"named": false
},
{
"type": "for",
"named": false
},
{
"type": "func",
"named": false
},
{
"type": "function",
"named": false
},
{
"type": "gensub",
"named": false
},
{
"type": "getline",
"named": false
},
{
"type": "graph",
"named": false
},
{
"type": "gsub",
"named": false
},
{
"type": "identifier",
"named": true
},
{
"type": "if",
"named": false
},
{
"type": "in",
"named": false
},
{
"type": "index",
"named": false
},
{
"type": "int",
"named": false
},
{
"type": "isarray",
"named": false
},
{
"type": "length",
"named": false
},
{
"type": "log",
"named": false
},
{
"type": "lower",
"named": false
},
{
"type": "lshift",
"named": false
},
{
"type": "match",
"named": false
},
{
"type": "mktime",
"named": false
},
{
"type": "namespace",
"named": false
},
{
"type": "next_statement",
"named": true
},
{
"type": "nextfile_statement",
"named": true
},
{
"type": "or",
"named": false
},
{
"type": "patsplit",
"named": false
},
{
"type": "print",
"named": false
},
{
"type": "printf",
"named": false
},
{
"type": "punct",
"named": false
},
{
"type": "rand",
"named": false
},
{
"type": "regex_flags",
"named": true
},
{
"type": "return",
"named": false
},
{
"type": "rshift",
"named": false
},
{
"type": "sin",
"named": false
},
{
"type": "space",
"named": false
},
{
"type": "split",
"named": false
},
{
"type": "sprintf",
"named": false
},
{
"type": "sqrt",
"named": false
},
{
"type": "srand",
"named": false
},
{
"type": "strftime",
"named": false
},
{
"type": "strtonum",
"named": false
},
{
"type": "sub",
"named": false
},
{
"type": "substr",
"named": false
},
{
"type": "switch",
"named": false
},
{
"type": "systime",
"named": false
},
{
"type": "tolower",
"named": false
},
{
"type": "toupper",
"named": false
},
{
"type": "typeof",
"named": false
},
{
"type": "upper",
"named": false
},
{
"type": "while",
"named": false
},
{
"type": "xdigit",
"named": false
},
{
"type": "xor",
"named": false
},
{
"type": "{",
"named": false
},
{
"type": "|",
"named": false
},
{
"type": "|&",
"named": false
},
{
"type": "||",
"named": false
},
{
"type": "}",
"named": false
},
{
"type": "~",
"named": false
}
]