tree-sitter-tiger/src/grammar.json

1962 lines
44 KiB
JSON

{
"name": "tiger",
"word": "identifier",
"rules": {
"source_file": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration_chunks"
},
{
"type": "BLANK"
}
]
}
]
},
"_expr": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "nil_literal"
},
{
"type": "SYMBOL",
"name": "integer_literal"
},
{
"type": "SYMBOL",
"name": "string_literal"
},
{
"type": "SYMBOL",
"name": "array_expression"
},
{
"type": "SYMBOL",
"name": "record_expression"
},
{
"type": "SYMBOL",
"name": "_lvalue"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "unary_expression"
},
{
"type": "SYMBOL",
"name": "binary_expression"
},
{
"type": "SYMBOL",
"name": "sequence_expression"
},
{
"type": "SYMBOL",
"name": "assignment_expression"
},
{
"type": "SYMBOL",
"name": "if_expression"
},
{
"type": "SYMBOL",
"name": "while_expression"
},
{
"type": "SYMBOL",
"name": "for_expression"
},
{
"type": "SYMBOL",
"name": "break_expression"
},
{
"type": "SYMBOL",
"name": "let_expression"
},
{
"type": "SYMBOL",
"name": "new_expression"
},
{
"type": "SYMBOL",
"name": "method_call"
},
{
"type": "SYMBOL",
"name": "meta_cast"
},
{
"type": "SYMBOL",
"name": "meta_expression"
}
]
},
"nil_literal": {
"type": "STRING",
"value": "nil"
},
"integer_literal": {
"type": "PATTERN",
"value": "[0-9]+"
},
"string_literal": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "PATTERN",
"value": "[^\"\\\\]+"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"identifier": {
"type": "PATTERN",
"value": "[_a-zA-Z0-9]+"
},
"_type_identifier": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "type_identifier"
},
{
"type": "SYMBOL",
"name": "meta_type_identifier"
}
]
},
"_field_identifier": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "field_identifier"
},
"escape_sequence": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "a"
},
{
"type": "STRING",
"value": "b"
},
{
"type": "STRING",
"value": "f"
},
{
"type": "STRING",
"value": "n"
},
{
"type": "STRING",
"value": "r"
},
{
"type": "STRING",
"value": "t"
},
{
"type": "STRING",
"value": "v"
}
]
},
{
"type": "PATTERN",
"value": "[0-3][0-7]{2}"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "x"
},
{
"type": "PATTERN",
"value": "[0-9a-fA-F]{2}"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "STRING",
"value": "\""
}
]
}
]
}
]
}
},
"_lvalue": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "record_value"
},
{
"type": "SYMBOL",
"name": "array_value"
},
{
"type": "SYMBOL",
"name": "meta_lvalue"
}
]
},
"record_value": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "record",
"content": {
"type": "SYMBOL",
"name": "_lvalue"
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "field",
"content": {
"type": "SYMBOL",
"name": "_field_identifier"
}
}
]
},
"array_value": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "array",
"content": {
"type": "SYMBOL",
"name": "_lvalue"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"function_call": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"unary_expression": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "-"
},
"named": true,
"value": "operator"
}
},
{
"type": "FIELD",
"name": "expression",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
"binary_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 6,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
}
]
},
"named": true,
"value": "operator"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
"named": true,
"value": "operator"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ">="
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "<>"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
}
]
},
"named": true,
"value": "operator"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "&"
},
"named": true,
"value": "operator"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "|"
},
"named": true,
"value": "operator"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
}
]
},
"sequence_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"array_expression": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "size",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": "]"
},
{
"type": "STRING",
"value": "of"
},
{
"type": "FIELD",
"name": "init",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
"record_expression": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "field",
"content": {
"type": "SYMBOL",
"name": "_field_identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "init",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "field",
"content": {
"type": "SYMBOL",
"name": "_field_identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "init",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"assignment_expression": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_lvalue"
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": ":="
},
"named": true,
"value": "operator"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
"if_expression": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": "then"
},
{
"type": "FIELD",
"name": "consequence",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "FIELD",
"name": "alternative",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"while_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "while"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": "do"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
"for_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "for"
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": ":="
},
"named": true,
"value": "operator"
},
{
"type": "FIELD",
"name": "start",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": "to"
},
{
"type": "FIELD",
"name": "end",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": "do"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
"break_expression": {
"type": "STRING",
"value": "break"
},
"let_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "let"
},
{
"type": "FIELD",
"name": "declarations",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration_chunks"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": "in"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": "end"
}
]
},
"_declaration_chunks": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "meta_chunks"
},
{
"type": "SYMBOL",
"name": "_declaration_chunk"
}
]
}
},
"_declaration_chunk": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "type_declaration"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "class_declaration"
}
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_declaration"
},
{
"type": "SYMBOL",
"name": "primitive_declaration"
}
]
}
},
{
"type": "SYMBOL",
"name": "variable_declaration"
},
{
"type": "SYMBOL",
"name": "import_declaration"
}
]
}
},
"type_declaration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "type"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_type"
}
}
]
},
"_type": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_alias"
},
{
"type": "SYMBOL",
"name": "record_type"
},
{
"type": "SYMBOL",
"name": "array_type"
},
{
"type": "SYMBOL",
"name": "class_type"
}
]
},
"type_alias": {
"type": "SYMBOL",
"name": "_type_identifier"
},
"record_type": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "_field_identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "_field_identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
}
]
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"array_type": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "array"
},
{
"type": "STRING",
"value": "of"
},
{
"type": "FIELD",
"name": "element_type",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
}
]
},
"function_declaration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "function"
},
{
"type": "SYMBOL",
"name": "_function_declaration_common"
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
"primitive_declaration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "primitive"
},
{
"type": "SYMBOL",
"name": "_function_declaration_common"
}
]
},
"_function_declaration_common": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "parameters"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "return_type",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
}
]
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"variable_declaration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "var"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": ":="
},
"named": true,
"value": "operator"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
"import_declaration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "FIELD",
"name": "file",
"content": {
"type": "SYMBOL",
"name": "string_literal"
}
}
]
},
"new_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "new"
},
{
"type": "FIELD",
"name": "class",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
}
]
},
"method_call": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "_lvalue"
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "method",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"class_declaration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "class"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "SYMBOL",
"name": "_class_declaration_common"
}
]
},
"class_type": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "class"
},
{
"type": "SYMBOL",
"name": "_class_declaration_common"
}
]
},
"_class_declaration_common": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "extends_qualifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "fields",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_class_field"
}
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"extends_qualifier": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "extends"
},
{
"type": "FIELD",
"name": "super",
"content": {
"type": "SYMBOL",
"name": "_type_identifier"
}
}
]
},
"_class_field": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_field_declaration"
},
{
"type": "SYMBOL",
"name": "method_declaration"
}
]
},
"_field_declaration": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "variable_declaration"
},
"named": true,
"value": "field_declaration"
},
"method_declaration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "method"
},
{
"type": "SYMBOL",
"name": "_function_declaration_common"
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
"meta_chunks": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "_chunks"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "integer_literal"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"meta_cast": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "_cast"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "expression",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"meta_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "_exp"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "integer_literal"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"meta_lvalue": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "_lvalue"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "integer_literal"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"meta_type_identifier": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "_namety"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "integer_literal"
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "( |\\n|\\r|\\t)+"
},
{
"type": "SYMBOL",
"name": "comment"
}
],
"conflicts": [
[
"_lvalue",
"array_expression"
],
[
"_lvalue",
"record_expression"
],
[
"_lvalue",
"_type_identifier"
]
],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
"name": "comment"
}
],
"inline": [
"_type_identifier",
"_field_identifier",
"_function_declaration_common",
"_class_declaration_common",
"_class_field"
],
"supertypes": []
}