{ "$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": "" } ] }, "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": {} }