{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "matlab",
"rules": {
"source_file": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_block"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "function_definition"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "function_definition"
}
}
]
}
]
},
"_block": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_function_definition_with_end"
},
"named": true,
"value": "function_definition"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
}
]
}
},
"_functionless_block": {
"type": "PREC",
"value": 1,
"content": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
}
]
}
}
},
"block": {
"type": "SYMBOL",
"name": "_block"
},
"identifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_external_identifier"
},
{
"type": "SYMBOL",
"name": "_keywords"
}
]
},
"_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "assignment"
},
{
"type": "SYMBOL",
"name": "break_statement"
},
{
"type": "SYMBOL",
"name": "class_definition"
},
{
"type": "SYMBOL",
"name": "command"
},
{
"type": "SYMBOL",
"name": "continue_statement"
},
{
"type": "SYMBOL",
"name": "for_statement"
},
{
"type": "SYMBOL",
"name": "global_operator"
},
{
"type": "SYMBOL",
"name": "if_statement"
},
{
"type": "SYMBOL",
"name": "persistent_operator"
},
{
"type": "SYMBOL",
"name": "return_statement"
},
{
"type": "SYMBOL",
"name": "spmd_statement"
},
{
"type": "SYMBOL",
"name": "switch_statement"
},
{
"type": "SYMBOL",
"name": "try_statement"
},
{
"type": "SYMBOL",
"name": "while_statement"
}
]
},
"_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "binary_operator"
},
{
"type": "SYMBOL",
"name": "boolean_operator"
},
{
"type": "SYMBOL",
"name": "cell"
},
{
"type": "SYMBOL",
"name": "comparison_operator"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "handle_operator"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "lambda"
},
{
"type": "SYMBOL",
"name": "matrix"
},
{
"type": "SYMBOL",
"name": "metaclass_operator"
},
{
"type": "SYMBOL",
"name": "not_operator"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "parenthesis"
},
{
"type": "SYMBOL",
"name": "postfix_operator"
},
{
"type": "SYMBOL",
"name": "range"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "unary_operator"
},
{
"type": "SYMBOL",
"name": "field_expression"
}
]
},
"parenthesis": {
"type": "PREC",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"_binary_expression": {
"type": "PREC",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "binary_operator"
},
{
"type": "SYMBOL",
"name": "boolean_operator"
},
{
"type": "SYMBOL",
"name": "cell"
},
{
"type": "SYMBOL",
"name": "comparison_operator"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "matrix"
},
{
"type": "SYMBOL",
"name": "not_operator"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "parenthesis"
},
{
"type": "SYMBOL",
"name": "postfix_operator"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "SYMBOL",
"name": "unary_operator"
}
]
}
},
"binary_operator": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": "+"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": ".+"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": "-"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": ".-"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": "*"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": ".*"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": "/"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": "./"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": "\\"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": ".\\"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 22,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": "^"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 22,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": ".^"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 14,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": "|"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
},
{
"type": "STRING",
"value": "&"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_binary_expression"
}
}
]
}
}
]
},
"unary_operator": {
"type": "PREC",
"value": 20,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cell"
},
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "matrix"
},
{
"type": "SYMBOL",
"name": "not_operator"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "parenthesis"
},
{
"type": "SYMBOL",
"name": "postfix_operator"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "unary_operator"
}
]
}
}
]
}
},
"indirect_access": {
"type": "PREC",
"value": -2,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "binary_operator"
},
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "matrix"
},
{
"type": "SYMBOL",
"name": "parenthesis"
},
{
"type": "SYMBOL",
"name": "postfix_operator"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "unary_operator"
},
{
"type": "SYMBOL",
"name": "not_operator"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"field_expression": {
"type": "PREC_DYNAMIC",
"value": 24,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "function_call"
}
]
}
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "field",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_extended_keywords"
},
"named": true,
"value": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_function_call_with_keywords"
},
"named": true,
"value": "function_call"
},
{
"type": "SYMBOL",
"name": "indirect_access"
}
]
}
}
]
}
}
]
}
},
"not_operator": {
"type": "PREC",
"value": 12,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "~"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cell"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "handle_operator"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "matrix"
},
{
"type": "SYMBOL",
"name": "metaclass_operator"
},
{
"type": "SYMBOL",
"name": "not_operator"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "parenthesis"
},
{
"type": "SYMBOL",
"name": "postfix_operator"
},
{
"type": "SYMBOL",
"name": "range"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "unary_operator"
},
{
"type": "SYMBOL",
"name": "field_expression"
}
]
}
]
}
},
"metaclass_operator": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
}
]
}
},
"handle_operator": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
}
]
},
"comparison_operator": {
"type": "PREC_LEFT",
"value": 13,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "~="
},
{
"type": "STRING",
"value": ">="
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
"boolean_operator": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 11,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "&&"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": "||"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
}
]
},
"postfix_operator": {
"type": "PREC",
"value": 21,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "binary_operator"
},
{
"type": "SYMBOL",
"name": "cell"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "matrix"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "parenthesis"
},
{
"type": "SYMBOL",
"name": "postfix_operator"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "SYMBOL",
"name": "unary_operator"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_transpose"
},
"named": false,
"value": "'"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_ctranspose"
},
"named": false,
"value": ".'"
}
]
}
]
}
},
"string": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_double_quote_string_start"
},
"named": false,
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string_content"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "formatting_sequence"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_double_quote_string_end"
},
"named": false,
"value": "\""
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_single_quote_string_start"
},
"named": false,
"value": "'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string_content"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "formatting_sequence"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_single_quote_string_end"
},
"named": false,
"value": "'"
}
]
}
]
},
"row": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "ignored_argument"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_entry_delimiter"
},
"named": false,
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "ignored_argument"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_entry_delimiter"
},
"named": false,
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
"matrix": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[,]*;[ ,;]*"
},
{
"type": "PATTERN",
"value": "[\\r\\n]"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "row"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[,]*;[ ,;]*"
},
{
"type": "PATTERN",
"value": "[\\r\\n]"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "row"
},
{
"type": "BLANK"
}
]
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"cell": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[,]*;[ ,;]*"
},
{
"type": "PATTERN",
"value": "[\\r\\n]"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "row"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[,]*;[ ,;]*"
},
{
"type": "PATTERN",
"value": "[\\r\\n]"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "row"
},
{
"type": "BLANK"
}
]
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"ignored_argument": {
"type": "PREC",
"value": 13,
"content": {
"type": "STRING",
"value": "~"
}
},
"assignment": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "SYMBOL",
"name": "ignored_argument"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "multioutput_variable"
}
]
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
"multioutput_variable": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_multioutput_variable_start"
},
"named": false,
"value": "["
},
{
"type": "REPEAT",
"content": {
"type": "STRING",
"value": "\n"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "SYMBOL",
"name": "ignored_argument"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "ignored_argument"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "SYMBOL",
"name": "ignored_argument"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "ignored_argument"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"spread_operator": {
"type": "STRING",
"value": ":"
},
"_index_boolean_operator": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 12,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_expression"
},
"named": true,
"value": "_expression"
}
},
{
"type": "STRING",
"value": "&&"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_expression"
},
"named": true,
"value": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 11,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_expression"
},
"named": true,
"value": "_expression"
}
},
{
"type": "STRING",
"value": "||"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_expression"
},
"named": true,
"value": "_expression"
}
}
]
}
}
]
},
"_index_comparison_operator": {
"type": "PREC_LEFT",
"value": 14,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_index_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "~="
},
{
"type": "STRING",
"value": ">="
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "SYMBOL",
"name": "_index_expression"
}
]
}
},
"_index_not_operator": {
"type": "PREC",
"value": 13,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "~"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_expression"
},
"named": true,
"value": "_expression"
}
]
}
},
"_index_unary_operator": {
"type": "PREC",
"value": 21,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cell"
},
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_matrix"
},
"named": true,
"value": "matrix"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_not_operator"
},
"named": true,
"value": "not_operator"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_parenthesis"
},
"named": true,
"value": "parenthesis"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_postfix_operator"
},
"named": true,
"value": "postfix_operator"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_unary_operator"
},
"named": true,
"value": "unary_operator"
}
]
}
}
]
}
},
"_index_postfix_operator": {
"type": "PREC",
"value": 22,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_binary_operator"
},
"named": true,
"value": "binary_operator"
},
{
"type": "SYMBOL",
"name": "cell"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_matrix"
},
"named": true,
"value": "matrix"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_parenthesis"
},
"named": true,
"value": "parenthesis"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_postfix_operator"
},
"named": true,
"value": "postfix_operator"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_unary_operator"
},
"named": true,
"value": "unary_operator"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_transpose"
},
"named": false,
"value": "'"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_ctranspose"
},
"named": false,
"value": ".'"
}
]
}
]
}
},
"_index_row": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_index_expression"
},
{
"type": "SYMBOL",
"name": "ignored_argument"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_entry_delimiter"
},
"named": false,
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_index_expression"
},
{
"type": "SYMBOL",
"name": "ignored_argument"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_entry_delimiter"
},
"named": false,
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
"_index_matrix": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT",
"content": {
"type": "STRING",
"value": "\n"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_row"
},
"named": true,
"value": "row"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "PATTERN",
"value": "[\\r\\n]"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_row"
},
"named": true,
"value": "row"
},
{
"type": "BLANK"
}
]
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"_index_range_element": {
"type": "PREC",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_matrix"
},
"named": true,
"value": "matrix"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_not_operator"
},
"named": true,
"value": "not_operator"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_parenthesis"
},
"named": true,
"value": "parenthesis"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_postfix_operator"
},
"named": true,
"value": "postfix_operator"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "PREC_DYNAMIC",
"value": -1,
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_unary_operator"
},
"named": true,
"value": "unary_operator"
}
},
{
"type": "PREC_DYNAMIC",
"value": 1,
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_binary_operator"
},
"named": true,
"value": "binary_operator"
}
},
{
"type": "SYMBOL",
"name": "end_keyword"
}
]
}
},
"_index_range": {
"type": "PREC_RIGHT",
"value": 21,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_index_range_element"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_index_range_element"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_index_range_element"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"_index_parenthesis": {
"type": "PREC",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_index_expression"
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"_index_expression": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_boolean_operator"
},
"named": true,
"value": "boolean_operator"
},
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "handle_operator"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "cell"
},
{
"type": "SYMBOL",
"name": "lambda"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_matrix"
},
"named": true,
"value": "matrix"
},
{
"type": "SYMBOL",
"name": "metaclass_operator"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_not_operator"
},
"named": true,
"value": "not_operator"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_comparison_operator"
},
"named": true,
"value": "comparison_operator"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_parenthesis"
},
"named": true,
"value": "parenthesis"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_range"
},
"named": true,
"value": "range"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_binary_operator"
},
"named": true,
"value": "binary_operator"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_postfix_operator"
},
"named": true,
"value": "postfix_operator"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_unary_operator"
},
"named": true,
"value": "unary_operator"
},
{
"type": "SYMBOL",
"name": "end_keyword"
}
]
},
"_index_binary_expression": {
"type": "PREC",
"value": 2,
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_binary_operator"
},
"named": true,
"value": "binary_operator"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_boolean_operator"
},
"named": true,
"value": "boolean_operator"
},
{
"type": "SYMBOL",
"name": "cell"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_comparison_operator"
},
"named": true,
"value": "comparison_operator"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_matrix"
},
"named": true,
"value": "matrix"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_not_operator"
},
"named": true,
"value": "not_operator"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_parenthesis"
},
"named": true,
"value": "parenthesis"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_postfix_operator"
},
"named": true,
"value": "postfix_operator"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_index_unary_operator"
},
"named": true,
"value": "unary_operator"
},
{
"type": "SYMBOL",
"name": "end_keyword"
}
]
}
},
"_index_binary_operator": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": "+"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": ".+"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": "-"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": ".-"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": "*"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": ".*"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": "/"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": "./"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": "\\"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 19,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": ".\\"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 22,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": "^"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 22,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": ".^"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 14,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": "|"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
},
{
"type": "STRING",
"value": "&"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_index_binary_expression"
}
}
]
}
}
]
},
"_index_argument": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "spread_operator"
},
{
"type": "SYMBOL",
"name": "_index_expression"
}
]
},
"_index_arguments": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "_index_argument"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "_index_argument"
}
}
]
}
}
]
},
"arguments": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_index_arguments"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
]
}
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
]
}
}
]
}
]
},
"_args": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"function_call": {
"type": "CHOICE",
"members": [
{
"type": "PREC_RIGHT",
"value": 23,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "end_keyword"
},
"named": true,
"value": "identifier"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "field_expression"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "property_name"
},
"named": true,
"value": "superclass"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_args"
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 23,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "field_expression"
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "property_name"
},
"named": true,
"value": "superclass"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_args"
},
{
"type": "BLANK"
}
]
}
]
}
}
]
},
"_function_call_with_keywords": {
"type": "CHOICE",
"members": [
{
"type": "PREC_RIGHT",
"value": 23,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "end_keyword"
},
"named": true,
"value": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_extended_keywords"
},
"named": true,
"value": "identifier"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "field_expression"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "property_name"
},
"named": true,
"value": "superclass"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_args"
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 23,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "field_expression"
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "property_name"
},
"named": true,
"value": "superclass"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_args"
},
{
"type": "BLANK"
}
]
}
]
}
}
]
},
"command": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "command_name"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "command_argument"
}
}
]
}
},
"_range_element": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "matrix"
},
{
"type": "SYMBOL",
"name": "not_operator"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "parenthesis"
},
{
"type": "SYMBOL",
"name": "postfix_operator"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "PREC_DYNAMIC",
"value": -1,
"content": {
"type": "SYMBOL",
"name": "unary_operator"
}
},
{
"type": "PREC_DYNAMIC",
"value": 1,
"content": {
"type": "SYMBOL",
"name": "binary_operator"
}
}
]
},
"range": {
"type": "PREC_RIGHT",
"value": 21,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_range_element"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_range_element"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_range_element"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"return_statement": {
"type": "STRING",
"value": "return"
},
"continue_statement": {
"type": "STRING",
"value": "continue"
},
"break_statement": {
"type": "STRING",
"value": "break"
},
"elseif_clause": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "elseif"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
}
]
}
},
"else_clause": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
}
]
}
},
"if_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "elseif_clause"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "else_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "end"
}
]
},
"iterator": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"parfor_options": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "field_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
"for_statement": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "for"
},
{
"type": "STRING",
"value": "parfor"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "iterator"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "iterator"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "end"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "parfor"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "iterator"
},
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "parfor_options"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "end"
}
]
}
]
},
"while_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "while"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "end"
}
]
},
"case_clause": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "case"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
}
]
}
},
"otherwise_clause": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "otherwise"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
}
]
}
},
"switch_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "switch"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "case_clause"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "otherwise_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "end"
}
]
},
"_lambda_arguments": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ignored_argument"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "ignored_argument"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
]
}
}
]
},
"lambda": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "STRING",
"value": "("
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_lambda_arguments"
},
{
"type": "BLANK"
}
]
},
"named": true,
"value": "arguments"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "FIELD",
"name": "expression",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
"global_operator": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "global"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"persistent_operator": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "persistent"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"_argument_attributes": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"class_property": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ".?"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
"arguments_statement": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "arguments"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_argument_attributes"
},
"named": true,
"value": "attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "property"
},
{
"type": "SYMBOL",
"name": "class_property"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
}
]
}
},
{
"type": "STRING",
"value": "end"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_end_of_line"
},
{
"type": "BLANK"
}
]
}
]
}
},
"function_output": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "multioutput_variable"
}
]
},
{
"type": "STRING",
"value": "="
}
]
},
"function_arguments": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_lambda_arguments"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"function_definition": {
"type": "PREC_DYNAMIC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "function"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_output"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "get."
},
{
"type": "STRING",
"value": "set."
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "property_name"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "end_keyword"
},
"named": true,
"value": "identifier"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_end_of_line"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "_end_of_line"
}
]
}
},
{
"type": "SYMBOL",
"name": "arguments_statement"
}
]
}
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "_end_of_line"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_functionless_block"
},
"named": true,
"value": "block"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "end"
},
{
"type": "STRING",
"value": "endfunction"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"_function_definition_with_end": {
"type": "PREC_DYNAMIC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "function"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_output"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "get."
},
{
"type": "STRING",
"value": "set."
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "property_name"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "end_keyword"
},
"named": true,
"value": "identifier"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_end_of_line"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "_end_of_line"
}
]
}
},
{
"type": "SYMBOL",
"name": "arguments_statement"
}
]
}
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "_end_of_line"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "end"
},
{
"type": "STRING",
"value": "endfunction"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
}
},
"_negated_attribute": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "~"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"attribute": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_negated_attribute"
},
"named": true,
"value": "not_operator"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"attributes": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "attribute"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "attribute"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"superclasses": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "property_name"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "&"
},
{
"type": "SYMBOL",
"name": "property_name"
}
]
}
}
]
},
"dimensions": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "spread_operator"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "spread_operator"
}
]
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"validation_functions": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "field_expression"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "field_expression"
}
]
}
]
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"default_value": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"property_name": {
"type": "PREC_RIGHT",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "*"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"property": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "property_name"
},
{
"type": "SYMBOL",
"name": "ignored_argument"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "dimensions"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "property_name"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "validation_functions"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "default_value"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "property_name"
},
{
"type": "SYMBOL",
"name": "ignored_argument"
}
]
}
},
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "vector"
},
{
"type": "STRING",
"value": "matrix"
},
{
"type": "STRING",
"value": "scalar"
}
]
},
{
"type": "BLANK"
}
]
},
"named": true,
"value": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "default_value"
},
{
"type": "BLANK"
}
]
}
]
}
]
}
},
"properties": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "properties"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_end_of_line"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "property"
},
{
"type": "SYMBOL",
"name": "_end_of_line"
}
]
},
{
"type": "SYMBOL",
"name": "_end_of_line"
},
{
"type": "SYMBOL",
"name": "comment"
}
]
}
},
{
"type": "STRING",
"value": "end"
}
]
},
"function_signature": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_output"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "get."
},
{
"type": "STRING",
"value": "set."
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_external_identifier"
},
{
"type": "STRING",
"value": "get"
},
{
"type": "STRING",
"value": "set"
},
{
"type": "STRING",
"value": "arguments"
}
]
},
"named": true,
"value": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "function_arguments"
},
{
"type": "BLANK"
}
]
}
]
},
"methods": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "methods"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "function_output"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "end"
},
"named": true,
"value": "identifier"
}
},
{
"type": "SYMBOL",
"name": "function_arguments"
}
]
},
"named": true,
"value": "function_signature"
},
{
"type": "SYMBOL",
"name": "function_signature"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_function_definition_with_end"
},
"named": true,
"value": "function_definition"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
}
]
}
},
{
"type": "STRING",
"value": "end"
}
]
},
"events": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "events"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_end_of_line"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "_end_of_line"
}
]
},
{
"type": "SYMBOL",
"name": "_end_of_line"
},
{
"type": "SYMBOL",
"name": "comment"
}
]
}
},
{
"type": "STRING",
"value": "end"
}
]
},
"enum": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"enumeration": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "enumeration"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_end_of_line"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "enum"
},
{
"type": "SYMBOL",
"name": "_end_of_line"
}
]
},
{
"type": "SYMBOL",
"name": "_end_of_line"
},
{
"type": "SYMBOL",
"name": "comment"
}
]
}
},
{
"type": "STRING",
"value": "end"
}
]
},
"class_definition": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "classdef"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "superclasses"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_end_of_line"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "properties"
},
{
"type": "SYMBOL",
"name": "methods"
},
{
"type": "SYMBOL",
"name": "events"
},
{
"type": "SYMBOL",
"name": "enumeration"
},
{
"type": "SYMBOL",
"name": "_end_of_line"
},
{
"type": "SYMBOL",
"name": "comment"
}
]
}
},
{
"type": "STRING",
"value": "end"
}
]
},
"catch_clause": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "catch"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_catch_identifier"
},
"named": true,
"value": "identifier"
},
{
"type": "SYMBOL",
"name": "_end_of_line"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
}
]
}
},
"try_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "try"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "catch_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "end"
}
]
},
"spmd_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "spmd"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_end_of_line"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "end"
}
]
},
"number": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "(\\d+|\\d+\\.\\d*|\\.\\d+)([eEdD][+-]?\\d+)?[ij]?"
},
{
"type": "PATTERN",
"value": "0[xX][\\dA-Fa-f]+([suSU](8|16|32|64))?"
},
{
"type": "PATTERN",
"value": "0[bB][01]+([suSU](8|16|32|64))?"
}
]
},
"end_keyword": {
"type": "STRING",
"value": "end"
},
"_keywords": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "get"
},
{
"type": "STRING",
"value": "set"
},
{
"type": "STRING",
"value": "properties"
},
{
"type": "STRING",
"value": "arguments"
},
{
"type": "STRING",
"value": "enumeration"
},
{
"type": "STRING",
"value": "events"
},
{
"type": "STRING",
"value": "methods"
}
]
},
"_extended_keywords": {
"type": "PREC",
"value": 100,
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "break"
},
{
"type": "STRING",
"value": "case"
},
{
"type": "STRING",
"value": "catch"
},
{
"type": "STRING",
"value": "classdef"
},
{
"type": "STRING",
"value": "continue"
},
{
"type": "STRING",
"value": "else"
},
{
"type": "STRING",
"value": "elseif"
},
{
"type": "STRING",
"value": "end"
},
{
"type": "STRING",
"value": "for"
},
{
"type": "STRING",
"value": "function"
},
{
"type": "STRING",
"value": "global"
},
{
"type": "STRING",
"value": "if"
},
{
"type": "STRING",
"value": "otherwise"
},
{
"type": "STRING",
"value": "parfor"
},
{
"type": "STRING",
"value": "persistent"
},
{
"type": "STRING",
"value": "return"
},
{
"type": "STRING",
"value": "spmd"
},
{
"type": "STRING",
"value": "switch"
},
{
"type": "STRING",
"value": "try"
},
{
"type": "STRING",
"value": "while"
}
]
}
},
"_end_of_line": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "STRING",
"value": "\n"
},
{
"type": "STRING",
"value": "\r"
},
{
"type": "STRING",
"value": ","
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
},
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "line_continuation"
}
],
"conflicts": [
[
"_expression",
"_range_element"
],
[
"field_expression"
],
[
"range"
],
[
"block"
],
[
"_index_range"
],
[
"_index_arguments"
],
[
"function_call",
"_function_call_with_keywords"
],
[
"block",
"_functionless_block"
],
[
"function_definition",
"_function_definition_with_end"
],
[
"_function_definition_with_end"
]
],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "line_continuation"
},
{
"type": "SYMBOL",
"name": "command_name"
},
{
"type": "SYMBOL",
"name": "command_argument"
},
{
"type": "SYMBOL",
"name": "_single_quote_string_start"
},
{
"type": "SYMBOL",
"name": "_single_quote_string_end"
},
{
"type": "SYMBOL",
"name": "_double_quote_string_start"
},
{
"type": "SYMBOL",
"name": "_double_quote_string_end"
},
{
"type": "SYMBOL",
"name": "formatting_sequence"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "string_content"
},
{
"type": "SYMBOL",
"name": "_entry_delimiter"
},
{
"type": "SYMBOL",
"name": "_multioutput_variable_start"
},
{
"type": "SYMBOL",
"name": "_external_identifier"
},
{
"type": "SYMBOL",
"name": "_catch_identifier"
},
{
"type": "SYMBOL",
"name": "_transpose"
},
{
"type": "SYMBOL",
"name": "_ctranspose"
},
{
"type": "SYMBOL",
"name": "error_sentinel"
}
],
"inline": [],
"supertypes": [],
"reserved": {}
}