tsl-devkit/lsp-server/test/test_tree_sitter/src/grammar.json

7825 lines
172 KiB
JSON

{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "tsf",
"word": "identifier",
"rules": {
"root": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
"_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "unit_definition"
},
{
"type": "SYMBOL",
"name": "class_definition"
},
{
"type": "SYMBOL",
"name": "external_method_definition"
},
{
"type": "SYMBOL",
"name": "function_declaration"
},
{
"type": "SYMBOL",
"name": "function_definition"
},
{
"type": "SYMBOL",
"name": "tslx_block"
},
{
"type": "SYMBOL",
"name": "compiler_directive_statement"
},
{
"type": "SYMBOL",
"name": "_conditional_compilation_statement"
},
{
"type": "SYMBOL",
"name": "matrix_iteration_statement"
},
{
"type": "SYMBOL",
"name": "if_statement"
},
{
"type": "SYMBOL",
"name": "_for_statement"
},
{
"type": "SYMBOL",
"name": "while_statement"
},
{
"type": "SYMBOL",
"name": "repeat_statement"
},
{
"type": "SYMBOL",
"name": "case_statement"
},
{
"type": "SYMBOL",
"name": "try_statement"
},
{
"type": "SYMBOL",
"name": "break_statement"
},
{
"type": "SYMBOL",
"name": "continue_statement"
},
{
"type": "SYMBOL",
"name": "return_statement"
},
{
"type": "SYMBOL",
"name": "block_statement"
},
{
"type": "SYMBOL",
"name": "uses_statement"
},
{
"type": "SYMBOL",
"name": "var_declaration"
},
{
"type": "SYMBOL",
"name": "static_declaration"
},
{
"type": "SYMBOL",
"name": "global_declaration"
},
{
"type": "SYMBOL",
"name": "const_declaration"
},
{
"type": "SYMBOL",
"name": "anonymous_function_statement"
},
{
"type": "SYMBOL",
"name": "expression_statement"
},
{
"type": "SYMBOL",
"name": "_empty_statement"
}
]
},
"unit_definition": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)unit"
},
"named": false,
"value": "unit"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ";"
},
{
"type": "FIELD",
"name": "interface",
"content": {
"type": "SYMBOL",
"name": "interface_section"
}
},
{
"type": "FIELD",
"name": "implementation",
"content": {
"type": "SYMBOL",
"name": "implementation_section"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "initialization",
"content": {
"type": "SYMBOL",
"name": "initialization_section"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "finalization",
"content": {
"type": "SYMBOL",
"name": "finalization_section"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)end"
},
"named": false,
"value": "end"
},
{
"type": "STRING",
"value": "."
}
]
},
"interface_section": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)interface"
},
"named": false,
"value": "interface"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"implementation_section": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)implementation"
},
"named": false,
"value": "implementation"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"initialization_section": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)initialization"
},
"named": false,
"value": "initialization"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"finalization_section": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)finalization"
},
"named": false,
"value": "finalization"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"class_definition": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)type"
},
"named": false,
"value": "type"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)class"
},
"named": false,
"value": "class"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_parent_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "class_body"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)end"
},
"named": false,
"value": "end"
}
]
},
"external_method_definition": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "external_method"
},
{
"type": "SYMBOL",
"name": "external_operator_method"
}
]
},
"_parent_list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "parent",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "attribute_expression"
}
]
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "parent",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "attribute_expression"
}
]
}
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"class_body": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "uses_statement"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "class_member"
}
}
]
},
"class_member": {
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "access_modifier",
"content": {
"type": "SYMBOL",
"name": "access_modifier"
}
},
{
"type": "FIELD",
"name": "reference_modifier",
"content": {
"type": "SYMBOL",
"name": "reference_modifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "method_declaration"
},
{
"type": "SYMBOL",
"name": "method_definition"
},
{
"type": "SYMBOL",
"name": "variable_declaration"
},
{
"type": "SYMBOL",
"name": "property_declaration"
}
]
}
]
},
"access_modifier": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)public"
},
"named": false,
"value": "public"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)protected"
},
"named": false,
"value": "protected"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)private"
},
"named": false,
"value": "private"
}
]
},
"variable_declaration": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_reference_tag"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "SYMBOL",
"name": "member_variable"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"_reference_tag": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "ref_modifier",
"content": {
"type": "SYMBOL",
"name": "reference_modifier"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"reference_modifier": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)weakref"
},
"named": false,
"value": "weakref"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)autoref"
},
"named": false,
"value": "autoref"
}
]
},
"member_variable": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "static_member_variable"
},
{
"type": "SYMBOL",
"name": "field_member_variable"
}
]
},
"static_member_variable": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)static"
},
"named": false,
"value": "static"
},
{
"type": "SYMBOL",
"name": "_identifier_list"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"field_member_variable": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_identifier_list"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_method_header": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)class"
},
"named": false,
"value": "class"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)function"
},
"named": false,
"value": "function"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)procedure"
},
"named": false,
"value": "procedure"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "method_name"
}
},
{
"type": "SYMBOL",
"name": "_parameter_signature"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "return_type",
"content": {
"type": "SYMBOL",
"name": "_type_clause"
}
},
{
"type": "BLANK"
}
]
}
]
},
"method_declaration": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_method_header"
},
{
"type": "STRING",
"value": ";"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "modifier",
"content": {
"type": "SYMBOL",
"name": "method_modifier"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"method_definition": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_method_header"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "FIELD",
"name": "modifier",
"content": {
"type": "SYMBOL",
"name": "method_modifier"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "block_statement"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
"method_name": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_identifier_or_keyword"
},
{
"type": "SYMBOL",
"name": "operator_overload"
}
]
},
"external_method": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)class"
},
"named": false,
"value": "class"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)function"
},
"named": false,
"value": "function"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)procedure"
},
"named": false,
"value": "procedure"
}
]
},
{
"type": "SYMBOL",
"name": "_qualified_method_name"
},
{
"type": "SYMBOL",
"name": "_parameter_signature"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "return_type",
"content": {
"type": "SYMBOL",
"name": "_type_clause"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "FIELD",
"name": "modifier",
"content": {
"type": "SYMBOL",
"name": "method_modifier"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "block_statement"
}
}
]
},
"external_operator_method": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)function"
},
"named": false,
"value": "function"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)procedure"
},
"named": false,
"value": "procedure"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)operator"
},
"named": false,
"value": "operator"
},
{
"type": "FIELD",
"name": "class_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "_overloadable_operator"
}
},
{
"type": "SYMBOL",
"name": "_parameter_signature"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "return_type",
"content": {
"type": "SYMBOL",
"name": "_type_clause"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "FIELD",
"name": "modifier",
"content": {
"type": "SYMBOL",
"name": "method_modifier"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "block_statement"
}
}
]
},
"_qualified_method_name": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "class_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "method_name",
"content": {
"type": "SYMBOL",
"name": "_identifier_or_keyword"
}
}
]
},
"_identifier_or_keyword": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "_soft_keyword"
}
]
},
"operator_overload": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)operator"
},
"named": false,
"value": "operator"
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "_overloadable_operator"
}
}
]
},
"_overloadable_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "\\"
},
{
"type": "STRING",
"value": "[]"
}
]
},
"method_modifier": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)virtual"
},
"named": false,
"value": "virtual"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)override"
},
"named": false,
"value": "override"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)overload"
},
"named": false,
"value": "overload"
}
]
},
"property_declaration": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)property"
},
"named": false,
"value": "property"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_property_index"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "accessors",
"content": {
"type": "SYMBOL",
"name": "property_accessors"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"_property_index": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)index"
},
"named": false,
"value": "index"
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "string"
}
]
}
}
]
},
"property_accessors": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_read_only_accessor"
},
{
"type": "SYMBOL",
"name": "_write_only_accessor"
},
{
"type": "SYMBOL",
"name": "_read_write_accessor"
},
{
"type": "SYMBOL",
"name": "_write_read_accessor"
}
]
},
"_read_only_accessor": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)read"
},
"named": false,
"value": "read"
},
{
"type": "FIELD",
"name": "read",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"_write_only_accessor": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)write"
},
"named": false,
"value": "write"
},
{
"type": "FIELD",
"name": "write",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"_read_write_accessor": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)read"
},
"named": false,
"value": "read"
},
{
"type": "FIELD",
"name": "read",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)write"
},
"named": false,
"value": "write"
},
{
"type": "FIELD",
"name": "write",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"_write_read_accessor": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)write"
},
"named": false,
"value": "write"
},
{
"type": "FIELD",
"name": "write",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)read"
},
"named": false,
"value": "read"
},
{
"type": "FIELD",
"name": "read",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"_function_header": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)function"
},
"named": false,
"value": "function"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)procedure"
},
"named": false,
"value": "procedure"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "SYMBOL",
"name": "_parameter_signature"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "return_type",
"content": {
"type": "SYMBOL",
"name": "_type_clause"
}
},
{
"type": "BLANK"
}
]
}
]
},
"function_declaration": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_function_header"
},
{
"type": "STRING",
"value": ";"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)overload"
},
"named": false,
"value": "overload"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"function_definition": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_function_header"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)overload"
},
"named": false,
"value": "overload"
},
{
"type": "REPEAT1",
"content": {
"type": "STRING",
"value": ";"
}
}
]
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "block_statement"
}
}
]
},
"_parameter_signature": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "parameters"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"parameters": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "parameter",
"content": {
"type": "SYMBOL",
"name": "parameter"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "FIELD",
"name": "parameter",
"content": {
"type": "SYMBOL",
"name": "parameter"
}
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
"parameter": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "mode",
"content": {
"type": "SYMBOL",
"name": "parameter_mode"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "default_value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"parameter_mode": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)var"
},
"named": false,
"value": "var"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)out"
},
"named": false,
"value": "out"
},
{
"type": "SYMBOL",
"name": "in"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)const"
},
"named": false,
"value": "const"
}
]
},
"tslx_block": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "tslx_tag"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "tslx_content"
},
{
"type": "SYMBOL",
"name": "_tsl_statement_block"
},
{
"type": "SYMBOL",
"name": "_tsl_expression_block"
}
]
}
},
{
"type": "SYMBOL",
"name": "tslx_end_tag"
}
]
}
},
"_tsl_statement_block": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "tsl_statement_start_tag"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
{
"type": "SYMBOL",
"name": "tsl_statement_end_tag"
}
]
},
"_tsl_expression_block": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "tsl_expression_start_tag"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "SYMBOL",
"name": "tsl_expression_end_tag"
}
]
},
"tslx_tag": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<?"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)tslx"
},
"named": false,
"value": "tslx"
},
{
"type": "STRING",
"value": ">"
}
]
},
"compiler_directive_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{$"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "switch",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_conditional_compilation_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "conditional_block_statement"
},
{
"type": "SYMBOL",
"name": "conditional_directive_statement"
}
]
},
"conditional_directive_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{$"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)define"
},
"named": false,
"value": "define"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)undef"
},
"named": false,
"value": "undef"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"conditional_block_statement": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{$"
},
{
"type": "FIELD",
"name": "keyword",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)ifdef"
},
"named": false,
"value": "ifdef"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)ifndef"
},
"named": false,
"value": "ifndef"
}
]
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "}"
},
{
"type": "REPEAT",
"content": {
"type": "FIELD",
"name": "consequence",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{$"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)else"
},
"named": false,
"value": "else"
},
{
"type": "STRING",
"value": "}"
},
{
"type": "REPEAT",
"content": {
"type": "FIELD",
"name": "alternative",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "{$"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)endif"
},
"named": false,
"value": "endif"
},
{
"type": "STRING",
"value": "}"
}
]
},
"matrix_iteration_statement": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "target",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": "::"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "block_statement"
}
}
]
},
"if_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "if_clause"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "else_if_clause"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "else_clause"
},
{
"type": "BLANK"
}
]
}
]
}
},
"if_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)if"
},
"named": false,
"value": "if"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)then"
},
"named": false,
"value": "then"
},
{
"type": "FIELD",
"name": "consequence",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"else_if_clause": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)else"
},
"named": false,
"value": "else"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)if"
},
"named": false,
"value": "if"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)then"
},
"named": false,
"value": "then"
},
{
"type": "FIELD",
"name": "consequence",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
}
},
"else_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)else"
},
"named": false,
"value": "else"
},
{
"type": "FIELD",
"name": "consequence",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"_for_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "for_in_statement"
},
{
"type": "SYMBOL",
"name": "for_to_statement"
}
]
},
"for_in_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)for"
},
"named": false,
"value": "for"
},
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)in"
},
"named": false,
"value": "in"
},
{
"type": "FIELD",
"name": "collection",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "SYMBOL",
"name": "do"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"for_to_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)for"
},
"named": false,
"value": "for"
},
{
"type": "FIELD",
"name": "counter",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":="
},
{
"type": "FIELD",
"name": "start",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "direction",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)to"
},
"named": false,
"value": "to"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)downto"
},
"named": false,
"value": "downto"
}
]
}
},
{
"type": "FIELD",
"name": "end",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)step"
},
"named": false,
"value": "step"
},
{
"type": "FIELD",
"name": "step",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "do"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"while_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)while"
},
"named": false,
"value": "while"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "SYMBOL",
"name": "do"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"repeat_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)repeat"
},
"named": false,
"value": "repeat"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)until"
},
"named": false,
"value": "until"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"case_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)case"
},
"named": false,
"value": "case"
},
{
"type": "FIELD",
"name": "discriminant",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)of"
},
"named": false,
"value": "of"
},
{
"type": "FIELD",
"name": "branches",
"content": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "case_branch"
}
}
},
{
"type": "FIELD",
"name": "default",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "case_else"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)end"
},
"named": false,
"value": "end"
}
]
},
"case_branch": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_case_values"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "consequence",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
"_case_values": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
}
]
},
"case_else": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)else"
},
"named": false,
"value": "else"
},
{
"type": "FIELD",
"name": "consequence",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
"try_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)try"
},
"named": false,
"value": "try"
},
{
"type": "FIELD",
"name": "try_body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block_body"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)except"
},
"named": false,
"value": "except"
},
{
"type": "FIELD",
"name": "except_body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "block_body"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)end"
},
"named": false,
"value": "end"
}
]
},
"block_body": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
"block_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)begin"
},
"named": false,
"value": "begin"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "block_body"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)end"
},
"named": false,
"value": "end"
}
]
},
"uses_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)uses"
},
"named": false,
"value": "uses"
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "unit",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "unit",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
}
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"break_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)break"
},
"named": false,
"value": "break"
},
{
"type": "STRING",
"value": ";"
}
]
},
"continue_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)continue"
},
"named": false,
"value": "continue"
},
{
"type": "STRING",
"value": ";"
}
]
},
"return_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)return"
},
"named": false,
"value": "return"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"var_declaration": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)var"
},
"named": false,
"value": "var"
},
{
"type": "SYMBOL",
"name": "_identifier_list"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_initializer"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"static_declaration": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)static"
},
"named": false,
"value": "static"
},
{
"type": "SYMBOL",
"name": "_identifier_list"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_initializer"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"global_declaration": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)global"
},
"named": false,
"value": "global"
},
{
"type": "SYMBOL",
"name": "_identifier_list"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_initializer"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"const_declaration": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)const"
},
"named": false,
"value": "const"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"_identifier_list": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
}
}
]
},
"_initializer": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":="
},
{
"type": "FIELD",
"name": "initializer",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"_type_clause": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type_name"
}
}
]
},
"type_name": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "array"
},
{
"type": "PATTERN",
"value": "\\s+"
},
{
"type": "STRING",
"value": "of"
},
{
"type": "PATTERN",
"value": "\\s+"
},
{
"type": "PATTERN",
"value": "[_a-zA-Z][_a-zA-Z0-9_.]*"
}
]
},
{
"type": "PATTERN",
"value": "[_a-zA-Z][_a-zA-Z0-9_.]*"
}
]
}
},
"anonymous_function_statement": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "lvalue_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "_assignment_operator"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "anonymous_function_expression"
}
}
]
},
"anonymous_function_expression": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)static"
},
"named": false,
"value": "static"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)function"
},
"named": false,
"value": "function"
},
{
"type": "SYMBOL",
"name": "_parameter_signature"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "return_type",
"content": {
"type": "SYMBOL",
"name": "_type_clause"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "block_statement"
}
}
]
},
"_empty_statement": {
"type": "STRING",
"value": ";"
},
"expression_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": ";"
}
]
},
"expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_tssql_select_expression"
},
{
"type": "SYMBOL",
"name": "_tssql_dml_expression"
},
{
"type": "SYMBOL",
"name": "assignment_expression"
},
{
"type": "SYMBOL",
"name": "ternary_expression"
},
{
"type": "SYMBOL",
"name": "binary_expression"
},
{
"type": "SYMBOL",
"name": "unary_expression"
},
{
"type": "SYMBOL",
"name": "call_expression"
},
{
"type": "SYMBOL",
"name": "subscript_expression"
},
{
"type": "SYMBOL",
"name": "attribute_expression"
},
{
"type": "SYMBOL",
"name": "_primary_expression"
}
]
},
"_tssql_select_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "select_expression"
},
{
"type": "SYMBOL",
"name": "sselect_expression"
},
{
"type": "SYMBOL",
"name": "vselect_expression"
},
{
"type": "SYMBOL",
"name": "mselect_expression"
}
]
},
"_tssql_dml_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "update_expression"
},
{
"type": "SYMBOL",
"name": "delete_expression"
},
{
"type": "SYMBOL",
"name": "insert_expression"
}
]
},
"select_expression": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)select"
},
"named": false,
"value": "select"
},
{
"type": "SYMBOL",
"name": "_select_clause"
}
]
},
"sselect_expression": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)sselect"
},
"named": false,
"value": "sselect"
},
{
"type": "SYMBOL",
"name": "_select_clause"
}
]
},
"vselect_expression": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)vselect"
},
"named": false,
"value": "vselect"
},
{
"type": "SYMBOL",
"name": "_select_clause"
}
]
},
"mselect_expression": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)mselect"
},
"named": false,
"value": "mselect"
},
{
"type": "SYMBOL",
"name": "_select_clause"
}
]
},
"update_expression": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)update"
},
"named": false,
"value": "update"
},
{
"type": "FIELD",
"name": "table",
"content": {
"type": "SYMBOL",
"name": "from_item"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)set"
},
"named": false,
"value": "set"
},
{
"type": "FIELD",
"name": "assignments",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "update_assignment"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "update_assignment"
}
]
}
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "where",
"content": {
"type": "SYMBOL",
"name": "where_clause"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)end"
},
"named": false,
"value": "end"
}
]
},
"delete_expression": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)delete"
},
"named": false,
"value": "delete"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)from"
},
"named": false,
"value": "from"
},
{
"type": "FIELD",
"name": "table",
"content": {
"type": "SYMBOL",
"name": "delete_or_insert_item"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "where",
"content": {
"type": "SYMBOL",
"name": "where_clause"
}
},
{
"type": "BLANK"
}
]
}
]
}
},
"insert_expression": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)insert"
},
"named": false,
"value": "insert"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)into"
},
"named": false,
"value": "into"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "table",
"content": {
"type": "SYMBOL",
"name": "delete_or_insert_item"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "insert_fields"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "values_clause"
},
{
"type": "FIELD",
"name": "source",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"_select_clause": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "distinct",
"content": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)distinct"
},
"named": false,
"value": "distinct"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "drange",
"content": {
"type": "SYMBOL",
"name": "drange_clause"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "columns",
"content": {
"type": "SYMBOL",
"name": "select_list"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "from",
"content": {
"type": "SYMBOL",
"name": "from_clause"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "where",
"content": {
"type": "SYMBOL",
"name": "where_clause"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "group_by",
"content": {
"type": "SYMBOL",
"name": "group_by_clause"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "order_by",
"content": {
"type": "SYMBOL",
"name": "order_by_clause"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "having",
"content": {
"type": "SYMBOL",
"name": "having_clause"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)end"
},
"named": false,
"value": "end"
}
]
},
"drange_clause": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)drange"
},
"named": false,
"value": "drange"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "drange_to"
},
{
"type": "SYMBOL",
"name": "drange_of"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SYMBOL",
"name": "drange_to"
},
{
"type": "SYMBOL",
"name": "drange_of"
}
]
},
"drange_to": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "start",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)to"
},
"named": false,
"value": "to"
},
{
"type": "FIELD",
"name": "end",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"drange_of": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "part",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)of"
},
"named": false,
"value": "of"
},
{
"type": "FIELD",
"name": "total",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"select_list": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "select_item"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "select_item"
}
]
}
}
]
},
"select_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "expression",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "alias_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"alias_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)as"
},
"named": false,
"value": "as"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
"from_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)from"
},
"named": false,
"value": "from"
},
{
"type": "SYMBOL",
"name": "from_item"
}
]
},
"from_item": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "join_clause"
},
{
"type": "SYMBOL",
"name": "sqltable"
},
{
"type": "SYMBOL",
"name": "_table_or_subquery"
}
]
},
"delete_or_insert_item": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "sqltable"
},
{
"type": "SYMBOL",
"name": "_table_or_subquery"
}
]
},
"join_clause": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_table_or_subquery"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_join_part"
}
}
]
},
"_join_part": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "join_type",
"content": {
"type": "SYMBOL",
"name": "join_type"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_table_or_subquery"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "on_condition"
},
{
"type": "SYMBOL",
"name": "with_condition"
}
]
}
},
{
"type": "BLANK"
}
]
}
]
},
"join_type": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)join"
},
"named": false,
"value": "join"
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)left"
},
"named": false,
"value": "left"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)join"
},
"named": false,
"value": "join"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)right"
},
"named": false,
"value": "right"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)join"
},
"named": false,
"value": "join"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)full"
},
"named": false,
"value": "full"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)join"
},
"named": false,
"value": "join"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)cross"
},
"named": false,
"value": "cross"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)join"
},
"named": false,
"value": "join"
}
]
},
{
"type": "STRING",
"value": ","
}
]
},
"on_condition": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)on"
},
"named": false,
"value": "on"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"with_condition": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)with"
},
"named": false,
"value": "with"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "left_fields",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)on"
},
"named": false,
"value": "on"
},
{
"type": "FIELD",
"name": "right_fields",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"sqltable": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)sqltable"
},
"named": false,
"value": "sqltable"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)of"
},
"named": false,
"value": "of"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
"_table_or_subquery": {
"type": "CHOICE",
"members": [
{
"type": "PREC",
"value": 0,
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "select_expression"
},
{
"type": "STRING",
"value": ")"
}
]
}
}
]
},
"where_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)where"
},
"named": false,
"value": "where"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"group_by_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)group"
},
"named": false,
"value": "group"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)by"
},
"named": false,
"value": "by"
},
{
"type": "FIELD",
"name": "expressions",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
}
}
]
},
"order_by_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)order"
},
"named": false,
"value": "order"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)by"
},
"named": false,
"value": "by"
},
{
"type": "FIELD",
"name": "expressions",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_order_by_item"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_order_by_item"
}
]
}
}
]
}
}
]
},
"_order_by_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "expression",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "direction",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)asc"
},
"named": false,
"value": "asc"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)desc"
},
"named": false,
"value": "desc"
}
]
}
},
{
"type": "BLANK"
}
]
}
]
},
"having_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)having"
},
"named": false,
"value": "having"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"column_reference": {
"type": "PREC",
"value": 20,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"update_assignment": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "column",
"content": {
"type": "SYMBOL",
"name": "lvalue_expression"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"insert_fields": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)insertfields"
},
"named": false,
"value": "insertfields"
},
{
"type": "SYMBOL",
"name": "parenthesized_expression"
}
]
},
"values_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)values"
},
"named": false,
"value": "values"
},
{
"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": ")"
}
]
},
"assignment_expression": {
"type": "PREC_RIGHT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "lvalue_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "_assignment_operator"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"lvalue_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_identifier_or_keyword"
},
{
"type": "SYMBOL",
"name": "subscript_expression"
},
{
"type": "SYMBOL",
"name": "attribute_expression"
},
{
"type": "SYMBOL",
"name": "unpack_pattern"
},
{
"type": "SYMBOL",
"name": "column_reference"
},
{
"type": "SYMBOL",
"name": "sql_keyword"
}
]
},
"_assignment_operator": {
"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": "STRING",
"value": "~="
},
{
"type": "STRING",
"value": "%="
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)div"
},
"named": false,
"value": "div"
},
{
"type": "STRING",
"value": "="
}
]
},
{
"type": "STRING",
"value": "|="
},
{
"type": "STRING",
"value": ":|="
},
{
"type": "STRING",
"value": "&="
},
{
"type": "STRING",
"value": ":*="
},
{
"type": "STRING",
"value": ":/="
},
{
"type": "STRING",
"value": ":\\="
},
{
"type": "STRING",
"value": ":^="
},
{
"type": "STRING",
"value": "::="
},
{
"type": "STRING",
"value": ".|="
},
{
"type": "STRING",
"value": ".&="
},
{
"type": "STRING",
"value": ".||="
},
{
"type": "STRING",
"value": ".&&="
},
{
"type": "STRING",
"value": ".^="
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)union"
},
"named": false,
"value": "union"
},
{
"type": "STRING",
"value": "="
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)union2"
},
"named": false,
"value": "union2"
},
{
"type": "STRING",
"value": "="
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)intersect"
},
"named": false,
"value": "intersect"
},
{
"type": "STRING",
"value": "="
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)outersect"
},
"named": false,
"value": "outersect"
},
{
"type": "STRING",
"value": "="
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)minus"
},
"named": false,
"value": "minus"
},
{
"type": "STRING",
"value": "="
}
]
}
]
},
"ternary_expression": {
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": "?"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "consequence",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "alternative",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"binary_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)or"
},
"named": false,
"value": "or"
},
{
"type": "STRING",
"value": ".||"
},
{
"type": "STRING",
"value": "||"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)and"
},
"named": false,
"value": "and"
},
{
"type": "STRING",
"value": ".&&"
},
{
"type": "STRING",
"value": "&&"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 6,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": ".|"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 7,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": ".^"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 8,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": ".&"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 9,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"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": "STRING",
"value": ".<"
},
{
"type": "STRING",
"value": ">="
},
{
"type": "STRING",
"value": ".>="
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": ".<="
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)like"
},
"named": false,
"value": "like"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)in"
},
"named": false,
"value": "in"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)is"
},
"named": false,
"value": "is"
}
]
}
},
{
"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": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)union"
},
"named": false,
"value": "union"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)union2"
},
"named": false,
"value": "union2"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)intersect"
},
"named": false,
"value": "intersect"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)outersect"
},
"named": false,
"value": "outersect"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)minus"
},
"named": false,
"value": "minus"
}
]
}
},
{
"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": "FIELD",
"name": "operator",
"content": {
"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": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "STRING",
"value": ":|"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 11,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 12,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)shl"
},
"named": false,
"value": "shl"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)shr"
},
"named": false,
"value": "shr"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)rol"
},
"named": false,
"value": "rol"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)ror"
},
"named": false,
"value": "ror"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 13,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "\\"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)mod"
},
"named": false,
"value": "mod"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)div"
},
"named": false,
"value": "div"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 13,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ":*"
},
{
"type": "STRING",
"value": ":/"
},
{
"type": "STRING",
"value": ":\\"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 14,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "~"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 14,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "$"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_RIGHT",
"value": 16,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "^"
},
{
"type": "STRING",
"value": ":^"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
}
]
},
"unary_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "unary_plus_expression"
},
{
"type": "SYMBOL",
"name": "unary_minus_expression"
},
{
"type": "SYMBOL",
"name": "prefix_increment_expression"
},
{
"type": "SYMBOL",
"name": "prefix_decrement_expression"
},
{
"type": "SYMBOL",
"name": "postfix_increment_expression"
},
{
"type": "SYMBOL",
"name": "postfix_decrement_expression"
},
{
"type": "SYMBOL",
"name": "logical_not_expression"
},
{
"type": "SYMBOL",
"name": "bitwise_not_expression"
},
{
"type": "SYMBOL",
"name": "derivative_expression"
},
{
"type": "SYMBOL",
"name": "function_pointer_expression"
},
{
"type": "SYMBOL",
"name": "matrix_transpose_expression"
},
{
"type": "SYMBOL",
"name": "expr_operator_expression"
}
]
},
"unary_plus_expression": {
"type": "PREC_RIGHT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "+"
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"unary_minus_expression": {
"type": "PREC_RIGHT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "-"
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"prefix_increment_expression": {
"type": "PREC_RIGHT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "++"
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"prefix_decrement_expression": {
"type": "PREC_RIGHT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "--"
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"postfix_increment_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "++"
}
}
]
}
},
"postfix_decrement_expression": {
"type": "PREC_LEFT",
"value": 17,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "--"
}
}
]
}
},
"logical_not_expression": {
"type": "PREC_LEFT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)not"
},
"named": false,
"value": "not"
},
{
"type": "STRING",
"value": ".!!"
}
]
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"bitwise_not_expression": {
"type": "PREC_LEFT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": ".!"
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"derivative_expression": {
"type": "PREC_RIGHT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "!"
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"function_pointer_expression": {
"type": "PREC_RIGHT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "##"
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"matrix_transpose_expression": {
"type": "PREC_RIGHT",
"value": 15,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "`"
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"expr_operator_expression": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "STRING",
"value": "&"
}
]
}
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"call_expression": {
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "callee",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameter_mode"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "argument"
}
]
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "argument",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameter_mode"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "argument"
}
]
}
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"argument": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "SYMBOL",
"name": "named_argument"
}
]
},
"named_argument": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"subscript_expression": {
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "base",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "subscript_index"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"subscript_index": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "SYMBOL",
"name": "slice"
},
{
"type": "SYMBOL",
"name": "matrix_slice"
}
]
},
"slice": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "start",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ":"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "end",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "BLANK"
}
]
}
]
},
"matrix_slice": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "SYMBOL",
"name": "slice"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "SYMBOL",
"name": "slice"
}
]
}
]
}
}
]
},
"attribute_expression": {
"type": "PREC_LEFT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "object",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "attribute",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
"unpack_pattern": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "lvalue_expression"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "lvalue_expression"
}
]
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"_primary_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_builtin_expression"
},
{
"type": "SYMBOL",
"name": "array_expression"
},
{
"type": "SYMBOL",
"name": "parenthesized_expression"
},
{
"type": "SYMBOL",
"name": "_identifier_or_keyword"
},
{
"type": "SYMBOL",
"name": "_literal"
},
{
"type": "SYMBOL",
"name": "ellipsis"
},
{
"type": "SYMBOL",
"name": "asterisk"
},
{
"type": "SYMBOL",
"name": "column_reference"
},
{
"type": "SYMBOL",
"name": "sql_keyword"
}
]
},
"_builtin_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "new_expression"
},
{
"type": "SYMBOL",
"name": "echo_expression"
},
{
"type": "SYMBOL",
"name": "raise_expression"
},
{
"type": "SYMBOL",
"name": "inherited_expression"
}
]
},
"new_expression": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)new"
},
"named": false,
"value": "new"
},
{
"type": "FIELD",
"name": "constructor",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"echo_expression": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)echo"
},
"named": false,
"value": "echo"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "expression"
}
]
}
}
]
}
]
}
},
"raise_expression": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)raise"
},
"named": false,
"value": "raise"
},
{
"type": "FIELD",
"name": "exception",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"inherited_expression": {
"type": "PREC_RIGHT",
"value": 18,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)inherited"
},
"named": false,
"value": "inherited"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "class",
"content": {
"type": "SYMBOL",
"name": "call_expression"
}
},
{
"type": "BLANK"
}
]
}
]
}
},
"array_expression": {
"type": "PREC",
"value": 20,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)array"
},
"named": false,
"value": "array"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_array_elements"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"_array_elements": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "array_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "array_element"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
"array_element": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "key_value_pair"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
"key_value_pair": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
},
"parenthesized_expression": {
"type": "PREC",
"value": 19,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_parenthesized_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_parenthesized_element"
}
]
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
},
"_parenthesized_element": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "key_value_pair"
},
{
"type": "SYMBOL",
"name": "expression"
}
]
},
"_soft_keyword": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "unit"
},
"named": true,
"value": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "class"
},
"named": true,
"value": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "in"
},
"named": true,
"value": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "type"
},
"named": true,
"value": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "do"
},
"named": true,
"value": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "select"
},
"named": true,
"value": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "sselect"
},
"named": true,
"value": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "vselect"
},
"named": true,
"value": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "update"
},
"named": true,
"value": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "insert"
},
"named": true,
"value": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "delete"
},
"named": true,
"value": "identifier"
}
]
},
"unit": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)unit"
},
"named": false,
"value": "unit"
},
"class": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)class"
},
"named": false,
"value": "class"
},
"in": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)in"
},
"named": false,
"value": "in"
},
"type": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)type"
},
"named": false,
"value": "type"
},
"do": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)do"
},
"named": false,
"value": "do"
},
"select": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)select"
},
"named": false,
"value": "select"
},
"sselect": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)sselect"
},
"named": false,
"value": "sselect"
},
"vselect": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)vselect"
},
"named": false,
"value": "vselect"
},
"update": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)update"
},
"named": false,
"value": "update"
},
"insert": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)insert"
},
"named": false,
"value": "insert"
},
"delete": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)delete"
},
"named": false,
"value": "delete"
},
"sql_keyword": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)thisrow"
},
"named": false,
"value": "thisrow"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)thisrowindex"
},
"named": false,
"value": "thisrowindex"
}
]
},
"identifier": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "[a-zA-Z_\\u4e00-\\u9fa5][\\w\\u4e00-\\u9fa5]*"
}
}
},
"_literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "char"
},
{
"type": "SYMBOL",
"name": "boolean"
},
{
"type": "SYMBOL",
"name": "nil"
},
{
"type": "SYMBOL",
"name": "nan"
},
{
"type": "SYMBOL",
"name": "infinity"
}
]
},
"number": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "0[xX][0-9a-fA-F]+"
},
{
"type": "PATTERN",
"value": "0[bB][01]+"
},
{
"type": "PATTERN",
"value": "0[oO][0-7]+"
},
{
"type": "PATTERN",
"value": "[+-]?\\d+\\.\\d*(?:[eE][+-]?\\d+)?"
},
{
"type": "PATTERN",
"value": "[+-]?\\.\\d+(?:[eE][+-]?\\d+)?"
},
{
"type": "PATTERN",
"value": "[+-]?\\d+(?:[eE][+-]?\\d+)?"
}
]
}
},
"string": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\"\\\\]+"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "."
},
{
"type": "PATTERN",
"value": "x[0-9a-fA-F]{2}"
},
{
"type": "PATTERN",
"value": "u[0-9a-fA-F]{4}"
},
{
"type": "PATTERN",
"value": "U[0-9a-fA-F]{8}"
}
]
}
]
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^'\\\\]+"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "."
},
{
"type": "PATTERN",
"value": "x[0-9a-fA-F]{2}"
},
{
"type": "PATTERN",
"value": "u[0-9a-fA-F]{4}"
},
{
"type": "PATTERN",
"value": "U[0-9a-fA-F]{8}"
}
]
}
]
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "L"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^'\\\\]+"
},
{
"type": "PATTERN",
"value": "\\\\."
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\"\\\\]+"
},
{
"type": "PATTERN",
"value": "\\\\."
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
}
]
}
]
}
]
}
},
"boolean": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "true"
},
{
"type": "SYMBOL",
"name": "false"
}
]
},
"char": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "\\d+"
},
{
"type": "PATTERN",
"value": "\\$[0-9a-fA-F]+"
}
]
}
]
}
},
"true": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)true"
},
"named": false,
"value": "true"
},
"false": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)false"
},
"named": false,
"value": "false"
},
"nil": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)nil"
},
"named": false,
"value": "nil"
},
"nan": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)nan"
},
"named": false,
"value": "nan"
},
"infinity": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "minus_inf"
},
{
"type": "SYMBOL",
"name": "plus_inf"
}
]
},
"minus_inf": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)\\-inf"
},
"named": false,
"value": "-inf"
},
"plus_inf": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(?i)\\+inf"
},
"named": false,
"value": "+inf"
},
"ellipsis": {
"type": "STRING",
"value": "..."
},
"asterisk": {
"type": "STRING",
"value": "*"
},
"line_comment": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": ".*"
}
]
}
},
"block_comment": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "PATTERN",
"value": "([^$}][^}]*)?"
},
{
"type": "STRING",
"value": "}"
}
]
}
},
"nested_comment": {
"type": "TOKEN",
"content": {
"type": "PATTERN",
"value": "[(][*]([^*]*[*]+[^)*])*[^*]*[*]+[)]"
}
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
},
{
"type": "SYMBOL",
"name": "line_comment"
},
{
"type": "SYMBOL",
"name": "block_comment"
},
{
"type": "SYMBOL",
"name": "nested_comment"
}
],
"conflicts": [
[
"lvalue_expression",
"_primary_expression"
],
[
"lvalue_expression",
"expression"
],
[
"select_expression",
"select"
],
[
"sselect_expression",
"sselect"
],
[
"vselect_expression",
"vselect"
],
[
"insert_expression",
"insert"
],
[
"update_expression",
"update"
],
[
"delete_expression",
"delete"
],
[
"function_declaration",
"function_definition"
],
[
"parameter_mode",
"_soft_keyword"
]
],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
"name": "tslx_content"
},
{
"type": "SYMBOL",
"name": "tsl_statement_start_tag"
},
{
"type": "SYMBOL",
"name": "tsl_statement_end_tag"
},
{
"type": "SYMBOL",
"name": "tsl_expression_start_tag"
},
{
"type": "SYMBOL",
"name": "tsl_expression_end_tag"
},
{
"type": "SYMBOL",
"name": "tslx_end_tag"
}
],
"inline": [
"_statement"
],
"supertypes": [],
"reserved": {}
}