{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "awk",
"word": "identifier",
"rules": {
"program": {
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "rule"
},
{
"type": "SYMBOL",
"name": "func_def"
},
{
"type": "SYMBOL",
"name": "directive"
},
{
"type": "SYMBOL",
"name": "comment"
}
]
}
},
"rule": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "pattern"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "pattern"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "block"
}
]
}
]
}
},
"pattern": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "SYMBOL",
"name": "range_pattern"
},
{
"type": "SYMBOL",
"name": "_special_pattern"
}
]
}
},
"range_pattern": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "start",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "stop",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
},
"_special_pattern": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "BEGIN"
},
{
"type": "STRING",
"value": "END"
},
{
"type": "STRING",
"value": "BEGINFILE"
},
{
"type": "STRING",
"value": "ENDFILE"
}
]
},
"directive": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "@include"
},
{
"type": "STRING",
"value": "@load"
},
{
"type": "STRING",
"value": "@namespace"
}
]
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
"_statement": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_statement_separated"
},
{
"type": "SYMBOL",
"name": "_statement"
}
]
},
{
"type": "SYMBOL",
"name": "_statement_separated"
},
{
"type": "SYMBOL",
"name": "_control_statement"
},
{
"type": "SYMBOL",
"name": "_io_statement"
},
{
"type": "SYMBOL",
"name": "_exp"
}
]
}
},
"_statement_separated": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "STRING",
"value": "\n"
},
{
"type": "STRING",
"value": "\r\n"
}
]
}
]
}
},
"_control_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "if_statement"
},
{
"type": "SYMBOL",
"name": "while_statement"
},
{
"type": "SYMBOL",
"name": "do_while_statement"
},
{
"type": "SYMBOL",
"name": "for_statement"
},
{
"type": "SYMBOL",
"name": "for_in_statement"
},
{
"type": "SYMBOL",
"name": "break_statement"
},
{
"type": "SYMBOL",
"name": "continue_statement"
},
{
"type": "SYMBOL",
"name": "delete_statement"
},
{
"type": "SYMBOL",
"name": "exit_statement"
},
{
"type": "SYMBOL",
"name": "return_statement"
},
{
"type": "SYMBOL",
"name": "switch_statement"
}
]
},
"if_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "STRING",
"value": ")"
}
]
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "comment"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_if_else_separator"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "comment"
}
},
{
"type": "SYMBOL",
"name": "else_clause"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"else_clause": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "SYMBOL",
"name": "_statement"
}
]
}
]
},
"while_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "while"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "STRING",
"value": ")"
}
]
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "comment"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
}
},
"do_while_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "do"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "comment"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "SYMBOL",
"name": "_statement"
}
]
},
{
"type": "STRING",
"value": "while"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "STRING",
"value": ")"
}
]
}
}
]
}
},
"for_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "for"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "initializer",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ";"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ";"
},
{
"type": "FIELD",
"name": "advancement",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ")"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "comment"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
}
},
"for_in_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "for"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "left",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
}
]
}
},
{
"type": "STRING",
"value": "in"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "array_ref"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
}
]
}
},
{
"type": "STRING",
"value": ")"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "comment"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
}
},
"break_statement": {
"type": "STRING",
"value": "break"
},
"continue_statement": {
"type": "STRING",
"value": "continue"
},
"delete_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "delete"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "array_ref"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
}
]
}
]
},
"exit_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "exit"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "BLANK"
}
]
}
]
}
},
"return_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "return"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "BLANK"
}
]
}
]
}
},
"switch_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "switch"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "comment"
}
},
{
"type": "SYMBOL",
"name": "switch_body"
}
]
},
"switch_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "switch_case"
},
{
"type": "SYMBOL",
"name": "switch_default"
},
{
"type": "SYMBOL",
"name": "comment"
}
]
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"switch_case": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "case"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_primitive"
},
{
"type": "SYMBOL",
"name": "regex"
}
]
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "comment"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "BLANK"
}
]
}
]
}
},
"switch_default": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "default"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "comment"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "BLANK"
}
]
}
]
}
},
"_io_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "next_statement"
},
{
"type": "SYMBOL",
"name": "nextfile_statement"
},
{
"type": "SYMBOL",
"name": "print_statement"
},
{
"type": "SYMBOL",
"name": "printf_statement"
},
{
"type": "SYMBOL",
"name": "redirected_io_statement"
},
{
"type": "SYMBOL",
"name": "piped_io_statement"
}
]
},
"_getline_exp": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "getline_input"
},
{
"type": "SYMBOL",
"name": "getline_file"
}
]
},
"getline_input": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "getline"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
},
{
"type": "SYMBOL",
"name": "array_ref"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"getline_file": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "getline"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "<"
},
{
"type": "FIELD",
"name": "filename",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
},
"next_statement": {
"type": "STRING",
"value": "next"
},
"nextfile_statement": {
"type": "STRING",
"value": "nextfile"
},
"_print_args": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "SYMBOL",
"name": "exp_list"
}
]
}
},
"print_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "print"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_print_args"
},
{
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "("
}
},
{
"type": "SYMBOL",
"name": "_print_args"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"printf_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "printf"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_print_args"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_print_args"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
]
},
"redirected_io_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "print_statement"
},
{
"type": "SYMBOL",
"name": "printf_statement"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": ">>"
}
]
},
{
"type": "FIELD",
"name": "filename",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
"piped_io_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "print_statement"
},
{
"type": "SYMBOL",
"name": "printf_statement"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "STRING",
"value": "|&"
}
]
},
{
"type": "FIELD",
"name": "command",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
"block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_block_content"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"_block_content": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "SYMBOL",
"name": "comment"
}
]
}
},
"_exp": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
},
{
"type": "SYMBOL",
"name": "ternary_exp"
},
{
"type": "SYMBOL",
"name": "binary_exp"
},
{
"type": "SYMBOL",
"name": "unary_exp"
},
{
"type": "SYMBOL",
"name": "update_exp"
},
{
"type": "SYMBOL",
"name": "assignment_exp"
},
{
"type": "SYMBOL",
"name": "field_ref"
},
{
"type": "SYMBOL",
"name": "func_call"
},
{
"type": "SYMBOL",
"name": "indirect_func_call"
},
{
"type": "SYMBOL",
"name": "_primitive"
},
{
"type": "SYMBOL",
"name": "array_ref"
},
{
"type": "SYMBOL",
"name": "regex"
},
{
"type": "SYMBOL",
"name": "regex_constant"
},
{
"type": "SYMBOL",
"name": "grouping"
},
{
"type": "SYMBOL",
"name": "piped_io_exp"
},
{
"type": "SYMBOL",
"name": "string_concat"
},
{
"type": "SYMBOL",
"name": "_getline_exp"
}
]
},
"ternary_exp": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "STRING",
"value": "?"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "consequence",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "alternative",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
"binary_exp": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": "binary_exponent",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "^"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_exponent",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "**"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_times",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "*"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_times",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "/"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_times",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "%"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_plus",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "+"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_plus",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "-"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_relation",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "<"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_relation",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": ">"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_relation",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "<="
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_relation",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": ">="
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_relation",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "=="
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_relation",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "!="
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_match",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "~"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_match",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "!~"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_and",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "&&"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_or",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "||"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "SYMBOL",
"name": "_binary_in"
}
]
},
"_binary_in": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "exp_list"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SYMBOL",
"name": "_exp"
}
]
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "in"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
"unary_exp": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "!"
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "+"
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "-"
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
]
},
"update_exp": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "field_ref"
},
{
"type": "SYMBOL",
"name": "array_ref"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
}
]
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "++"
},
{
"type": "STRING",
"value": "--"
}
]
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "++"
},
{
"type": "STRING",
"value": "--"
}
]
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "field_ref"
},
{
"type": "SYMBOL",
"name": "array_ref"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
}
]
}
}
]
}
]
}
},
"assignment_exp": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "array_ref"
},
{
"type": "SYMBOL",
"name": "field_ref"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "+="
},
{
"type": "STRING",
"value": "-="
},
{
"type": "STRING",
"value": "*="
},
{
"type": "STRING",
"value": "/="
},
{
"type": "STRING",
"value": "%="
},
{
"type": "STRING",
"value": "^="
}
]
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
"piped_io_exp": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "command",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "STRING",
"value": "|&"
}
]
},
{
"type": "SYMBOL",
"name": "getline_input"
}
]
},
"string_concat": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
},
{
"type": "SYMBOL",
"name": "ternary_exp"
},
{
"type": "SYMBOL",
"name": "binary_exp"
},
{
"type": "SYMBOL",
"name": "unary_exp"
},
{
"type": "SYMBOL",
"name": "field_ref"
},
{
"type": "SYMBOL",
"name": "func_call"
},
{
"type": "SYMBOL",
"name": "_primitive"
},
{
"type": "SYMBOL",
"name": "array_ref"
},
{
"type": "SYMBOL",
"name": "grouping"
},
{
"type": "SYMBOL",
"name": "string_concat"
}
]
}
},
{
"type": "SYMBOL",
"name": "concatenating_space"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
},
{
"type": "SYMBOL",
"name": "ternary_exp"
},
{
"type": "SYMBOL",
"name": "binary_exp"
},
{
"type": "SYMBOL",
"name": "unary_exp"
},
{
"type": "SYMBOL",
"name": "field_ref"
},
{
"type": "SYMBOL",
"name": "func_call"
},
{
"type": "SYMBOL",
"name": "_primitive"
},
{
"type": "SYMBOL",
"name": "array_ref"
},
{
"type": "SYMBOL",
"name": "grouping"
},
{
"type": "SYMBOL",
"name": "string_concat"
}
]
}
}
]
}
},
"field_ref": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "SYMBOL",
"name": "_exp"
}
]
},
"array_ref": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "array_ref"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
}
]
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "SYMBOL",
"name": "exp_list"
}
]
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"exp_list": {
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "STRING",
"value": ","
}
]
}
},
{
"type": "SYMBOL",
"name": "_exp"
}
]
},
"regex": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "pattern",
"content": {
"type": "SYMBOL",
"name": "regex_pattern"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "/"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "flags",
"content": {
"type": "SYMBOL",
"name": "regex_flags"
}
},
{
"type": "BLANK"
}
]
}
]
},
"_regex_char": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[^/\\\\\\[\\n\\r]"
}
},
"_regex_char_escaped": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "PATTERN",
"value": "."
}
]
}
},
"_regex_char_class": {
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "["
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": ":"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "alnum"
},
{
"type": "STRING",
"value": "alpha"
},
{
"type": "STRING",
"value": "blank"
},
{
"type": "STRING",
"value": "cntrl"
},
{
"type": "STRING",
"value": "digit"
},
{
"type": "STRING",
"value": "graph"
},
{
"type": "STRING",
"value": "lower"
},
{
"type": "STRING",
"value": "print"
},
{
"type": "STRING",
"value": "punct"
},
{
"type": "STRING",
"value": "space"
},
{
"type": "STRING",
"value": "upper"
},
{
"type": "STRING",
"value": "xdigit"
}
]
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": ":"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "]"
}
}
]
},
"_regex_bracket_exp": {
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "["
}
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_regex_char_escaped"
},
{
"type": "SYMBOL",
"name": "_regex_char"
},
{
"type": "SYMBOL",
"name": "_regex_char_class"
}
]
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "]"
}
}
]
},
"regex_pattern": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_regex_char"
},
{
"type": "SYMBOL",
"name": "_regex_char_escaped"
},
{
"type": "SYMBOL",
"name": "_regex_bracket_exp"
}
]
}
},
"regex_flags": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[a-z]+"
}
},
"regex_constant": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "regex"
}
]
},
"grouping": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "STRING",
"value": ")"
}
]
},
"_primitive": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
"identifier": {
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_]*"
},
"namespace": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": false,
"value": "namespace"
},
"ns_qualified_name": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "namespace"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "::"
}
},
{
"type": "SYMBOL",
"name": "_no_space"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"number": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[\\d.]+"
},
{
"type": "PATTERN",
"value": "[\\d.]+e[\\d.+-]+"
}
]
},
"string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\"\\\\]+"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"escape_sequence": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "PATTERN",
"value": "[\\\\abfnrtv]"
},
{
"type": "PATTERN",
"value": "x[0-9a-fA-F]{1,2}"
},
{
"type": "PATTERN",
"value": "[0-7]{1,3}"
}
]
}
]
}
},
"func_def": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "function"
},
{
"type": "STRING",
"value": "func"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
}
]
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "param_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "block"
}
]
},
"param_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
"func_call": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "ns_qualified_name"
}
]
}
},
{
"type": "SYMBOL",
"name": "_func_call"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "("
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "args"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SYMBOL",
"name": "_builtin_func_call"
}
]
},
"_builtin_func_call": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "and"
},
{
"type": "STRING",
"value": "asort"
},
{
"type": "STRING",
"value": "asorti"
},
{
"type": "STRING",
"value": "bindtextdomain"
},
{
"type": "STRING",
"value": "compl"
},
{
"type": "STRING",
"value": "cos"
},
{
"type": "STRING",
"value": "dcgettext"
},
{
"type": "STRING",
"value": "dcngettext"
},
{
"type": "STRING",
"value": "exp"
},
{
"type": "STRING",
"value": "gensub"
},
{
"type": "STRING",
"value": "gsub"
},
{
"type": "STRING",
"value": "index"
},
{
"type": "STRING",
"value": "int"
},
{
"type": "STRING",
"value": "isarray"
},
{
"type": "STRING",
"value": "length"
},
{
"type": "STRING",
"value": "log"
},
{
"type": "STRING",
"value": "lshift"
},
{
"type": "STRING",
"value": "match"
},
{
"type": "STRING",
"value": "mktime"
},
{
"type": "STRING",
"value": "or"
},
{
"type": "STRING",
"value": "patsplit"
},
{
"type": "STRING",
"value": "rand"
},
{
"type": "STRING",
"value": "rshift"
},
{
"type": "STRING",
"value": "sin"
},
{
"type": "STRING",
"value": "split"
},
{
"type": "STRING",
"value": "sprintf"
},
{
"type": "STRING",
"value": "sqrt"
},
{
"type": "STRING",
"value": "srand"
},
{
"type": "STRING",
"value": "strftime"
},
{
"type": "STRING",
"value": "strtonum"
},
{
"type": "STRING",
"value": "sub"
},
{
"type": "STRING",
"value": "substr"
},
{
"type": "STRING",
"value": "systime"
},
{
"type": "STRING",
"value": "tolower"
},
{
"type": "STRING",
"value": "toupper"
},
{
"type": "STRING",
"value": "typeof"
},
{
"type": "STRING",
"value": "xor"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "args"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"indirect_func_call": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "func_call"
}
]
},
"args": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_exp"
}
]
}
}
]
},
"comment": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "PATTERN",
"value": ".*"
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "[\\s\\t]"
},
{
"type": "STRING",
"value": "\\\n"
},
{
"type": "STRING",
"value": "\\\r\n"
}
],
"conflicts": [],
"precedences": [
[
{
"type": "SYMBOL",
"name": "getline_file"
},
{
"type": "SYMBOL",
"name": "getline_input"
},
{
"type": "SYMBOL",
"name": "field_ref"
},
{
"type": "STRING",
"value": "binary_exponent"
},
{
"type": "STRING",
"value": "binary_times"
},
{
"type": "STRING",
"value": "binary_plus"
},
{
"type": "SYMBOL",
"name": "unary_exp"
},
{
"type": "STRING",
"value": "binary_relation"
},
{
"type": "STRING",
"value": "binary_match"
},
{
"type": "SYMBOL",
"name": "_binary_in"
},
{
"type": "STRING",
"value": "binary_and"
},
{
"type": "STRING",
"value": "binary_or"
},
{
"type": "SYMBOL",
"name": "ternary_exp"
},
{
"type": "SYMBOL",
"name": "exp_list"
},
{
"type": "SYMBOL",
"name": "piped_io_exp"
},
{
"type": "SYMBOL",
"name": "range_pattern"
},
{
"type": "SYMBOL",
"name": "_statement"
}
],
[
{
"type": "SYMBOL",
"name": "func_call"
},
{
"type": "SYMBOL",
"name": "_exp"
}
],
[
{
"type": "SYMBOL",
"name": "update_exp"
},
{
"type": "SYMBOL",
"name": "_exp"
}
],
[
{
"type": "SYMBOL",
"name": "if_statement"
},
{
"type": "SYMBOL",
"name": "_statement_separated"
}
],
[
{
"type": "SYMBOL",
"name": "else_clause"
},
{
"type": "SYMBOL",
"name": "_statement_separated"
}
],
[
{
"type": "SYMBOL",
"name": "print_statement"
},
{
"type": "SYMBOL",
"name": "printf_statement"
},
{
"type": "SYMBOL",
"name": "grouping"
}
],
[
{
"type": "SYMBOL",
"name": "_print_args"
},
{
"type": "SYMBOL",
"name": "grouping"
},
{
"type": "SYMBOL",
"name": "piped_io_exp"
},
{
"type": "STRING",
"value": "binary_relation"
}
],
[
{
"type": "SYMBOL",
"name": "for_in_statement"
},
{
"type": "SYMBOL",
"name": "_exp"
}
],
[
{
"type": "SYMBOL",
"name": "_exp"
},
{
"type": "SYMBOL",
"name": "string_concat"
},
{
"type": "SYMBOL",
"name": "assignment_exp"
}
],
[
{
"type": "SYMBOL",
"name": "_print_args"
},
{
"type": "SYMBOL",
"name": "_binary_in"
}
]
],
"externals": [
{
"type": "SYMBOL",
"name": "concatenating_space"
},
{
"type": "SYMBOL",
"name": "_if_else_separator"
},
{
"type": "SYMBOL",
"name": "_no_space"
},
{
"type": "SYMBOL",
"name": "_func_call"
}
],
"inline": [],
"supertypes": [],
"reserved": {}
}