{ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "tsf", "word": "identifier", "rules": { "root": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "unit" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_statement" } } ] }, "_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_simple_statement" }, { "type": "SYMBOL", "name": "_compound_statement" } ] }, "_simple_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "var_statement" }, { "type": "SYMBOL", "name": "static_statement" }, { "type": "SYMBOL", "name": "global_statement" }, { "type": "SYMBOL", "name": "const_statement" }, { "type": "SYMBOL", "name": "assignment_statement" }, { "type": "SYMBOL", "name": "expression_statement" }, { "type": "SYMBOL", "name": "uses_statement" }, { "type": "SYMBOL", "name": "break_statement" }, { "type": "SYMBOL", "name": "continue_statement" }, { "type": "SYMBOL", "name": "return_statement" } ] }, "_compound_statement": { "type": "CHOICE", "members": [ { "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": "anonymous_function_statement" }, { "type": "SYMBOL", "name": "function_declaration_statement" }, { "type": "SYMBOL", "name": "function_definition_statement" }, { "type": "SYMBOL", "name": "function_definition_with_overload_statement" }, { "type": "SYMBOL", "name": "class_definition_statement" }, { "type": "SYMBOL", "name": "external_method_statement" }, { "type": "SYMBOL", "name": "_conditional_compilation_statement" }, { "type": "SYMBOL", "name": "compiler_directive_statement" }, { "type": "SYMBOL", "name": "matrix_iteration_statement" }, { "type": "SYMBOL", "name": "_tslx_template_statement" } ] }, "var_statement": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declaration", "content": { "type": "SYMBOL", "name": "var_declaration" } }, { "type": "STRING", "value": ";" } ] }, "static_statement": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declaration", "content": { "type": "SYMBOL", "name": "static_declaration" } }, { "type": "STRING", "value": ";" } ] }, "global_statement": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "declaration", "content": { "type": "SYMBOL", "name": "global_declaration" } }, { "type": "STRING", "value": ";" } ] }, "const_statement": { "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": ";" } ] }, "var_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)var" }, "named": false, "value": "var" }, { "type": "SYMBOL", "name": "_variable_declaration" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type_clause" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_initial_value" }, { "type": "BLANK" } ] } ] }, "static_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)static" }, "named": false, "value": "static" }, { "type": "SYMBOL", "name": "_variable_declaration" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type_clause" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_initial_value" }, { "type": "BLANK" } ] } ] }, "global_declaration": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)global" }, "named": false, "value": "global" }, { "type": "SYMBOL", "name": "_variable_declaration" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type_clause" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_initial_value" }, { "type": "BLANK" } ] } ] }, "_initial_value": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":=" }, { "type": "FIELD", "name": "initial_value", "content": { "type": "SYMBOL", "name": "_right_hand_side" } } ] }, "_variable_declaration": { "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" } } ] } } ] }, "_type_clause": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "type_name", "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_.]*" } ] } }, "assignment_statement": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "assignment_expression" }, { "type": "SYMBOL", "name": "augmented_assignment_expression" } ] }, { "type": "STRING", "value": ";" } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_left_hand_side" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ":=" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "anonymous_function_statement" } } ] } ] }, "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": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" } ] }, { "type": "BLANK" } ] } }, { "type": "STRING", "value": ";" } ] }, "_built_in_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "echo_expression" }, { "type": "SYMBOL", "name": "raise_expression" }, { "type": "SYMBOL", "name": "new_expression" }, { "type": "SYMBOL", "name": "inherited_expression" } ] }, "echo_expression": { "type": "PREC_LEFT", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)echo" }, "named": false, "value": "echo" }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "argument", "content": { "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_LEFT", "value": 0, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)inherited" }, "named": false, "value": "inherited" }, { "type": "FIELD", "name": "class", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "BLANK" } ] } } ] } }, "new_expression": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)new" }, "named": false, "value": "new" }, { "type": "FIELD", "name": "class", "content": { "type": "SYMBOL", "name": "expression" } } ] }, "expression_statement": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ";" } ] }, "expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_operator_expression" }, { "type": "SYMBOL", "name": "_tssql_select_expression" }, { "type": "SYMBOL", "name": "_tssql_dml_expression" }, { "type": "SYMBOL", "name": "_primary_expression" }, { "type": "SYMBOL", "name": "_built_in_expression" } ] }, "_operator_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expr_expression" }, { "type": "SYMBOL", "name": "ternary_expression" }, { "type": "SYMBOL", "name": "binary_expression" }, { "type": "SYMBOL", "name": "unary_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": "function_pointer_expression" } ] }, "expr_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" } } ] } }, "assignment_expression": { "type": "PREC_LEFT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_left_hand_side" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ":=" } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_right_hand_side" } } ] } }, "augmented_assignment_expression": { "type": "PREC_LEFT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "_left_hand_side" } }, { "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": "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": "=" } ] } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "_right_hand_side" } } ] } }, "_assignable_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "assignment_expression" }, { "type": "SYMBOL", "name": "augmented_assignment_expression" } ] }, "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": "_assignable_expression" } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "alternative", "content": { "type": "SYMBOL", "name": "_assignable_expression" } } ] } }, "binary_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_logical_or_expression" }, { "type": "SYMBOL", "name": "_logical_and_expression" }, { "type": "SYMBOL", "name": "_bitwise_or_expression" }, { "type": "SYMBOL", "name": "_bitwise_and_expression" }, { "type": "SYMBOL", "name": "_bitwise_xor_expression" }, { "type": "SYMBOL", "name": "_shift_expression" }, { "type": "SYMBOL", "name": "_addition_expression" }, { "type": "SYMBOL", "name": "_multiplication_expression" }, { "type": "SYMBOL", "name": "_power_expression" }, { "type": "SYMBOL", "name": "_logarithm_expression" }, { "type": "SYMBOL", "name": "_matrix_multiplication_expression" }, { "type": "SYMBOL", "name": "_matrix_power_expression" }, { "type": "SYMBOL", "name": "_matrix_concatenation_expression" }, { "type": "SYMBOL", "name": "_range_expression" }, { "type": "SYMBOL", "name": "_comparison_expression" }, { "type": "SYMBOL", "name": "_set_operation_expression" }, { "type": "SYMBOL", "name": "_concatenation_expression" } ] }, "_comparison_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": "SYMBOL", "name": "in" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)is" }, "named": false, "value": "is" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)like" }, "named": false, "value": "like" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, "_logical_or_expression": { "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" } } ] } }, "_logical_and_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" } } ] } }, "_logical_not_expression": { "type": "PREC_LEFT", "value": 16, "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_or_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" } } ] } }, "_bitwise_and_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" } } ] } }, "_bitwise_xor_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" } } ] } }, "_bitwise_not_expression": { "type": "PREC_LEFT", "value": 16, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": ".!" } }, { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, "_shift_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)rol" }, "named": false, "value": "rol" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)shr" }, "named": false, "value": "shr" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)ror" }, "named": false, "value": "ror" } ] } }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, "_addition_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" } } ] } }, "_multiplication_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" } } ] } }, "_power_expression": { "type": "PREC_RIGHT", "value": 17, "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" } } ] } }, "_logarithm_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" } } ] } }, "_matrix_multiplication_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" } } ] } }, "_matrix_power_expression": { "type": "PREC_RIGHT", "value": 17, "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" } } ] } }, "_matrix_concatenation_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" } } ] } }, "_range_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" } } ] } }, "_matrix_transpose_expression": { "type": "PREC", "value": 16, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "`" } }, { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, "_set_operation_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" } } ] } }, "_concatenation_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" } } ] } }, "unary_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_unary_plus_expression" }, { "type": "SYMBOL", "name": "_unary_minus_expression" }, { "type": "SYMBOL", "name": "_derivative_expression" }, { "type": "SYMBOL", "name": "_logical_not_expression" }, { "type": "SYMBOL", "name": "_bitwise_not_expression" }, { "type": "SYMBOL", "name": "_matrix_transpose_expression" } ] }, "_unary_plus_expression": { "type": "PREC", "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", "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_LEFT", "value": 14, "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": 17, "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": 17, "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_RIGHT", "value": 18, "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_RIGHT", "value": 18, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "--" } } ] } }, "function_pointer_expression": { "type": "PREC", "value": 16, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "operator", "content": { "type": "STRING", "value": "##" } }, { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "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_suite" } } ] }, "unpack_pattern": { "type": "PREC_DYNAMIC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "SYMBOL", "name": "_unpack_vars" }, { "type": "STRING", "value": "]" } ] } }, "_unpack_vars": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT1", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } } ] } } ] }, "_left_hand_side": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_identifier_like" }, { "type": "SYMBOL", "name": "attribute" }, { "type": "SYMBOL", "name": "subscript" }, { "type": "SYMBOL", "name": "unpack_pattern" } ] }, "_right_hand_side": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "assignment_expression" }, { "type": "SYMBOL", "name": "augmented_assignment_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": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "sqltable" } ] } }, { "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": 1, "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": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "sqltable" } ] } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "where", "content": { "type": "SYMBOL", "name": "where_clause" } }, { "type": "BLANK" } ] } ] } }, "insert_expression": { "type": "PREC_RIGHT", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)insert" }, "named": false, "value": "insert" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)into" }, "named": false, "value": "into" }, { "type": "FIELD", "name": "table", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "sqltable" } ] } }, { "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": "identifier" } } ] }, { "type": "BLANK" } ] } ] } }, "insert_fields": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)insertfields" }, "named": false, "value": "insertfields" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "sql_field" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "sql_field" } ] } } ] }, { "type": "STRING", "value": ")" } ] }, { "type": "SYMBOL", "name": "_primary_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": ")" } ] }, "update_assignment": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "column", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } } ] }, "_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": "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": ")" } ] }, "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_list_item" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "select_list_item" } ] } } ] }, "select_list_item": { "type": "CHOICE", "members": [ { "type": "PREC", "value": 10, "content": { "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": "CHOICE", "members": [ { "type": "FIELD", "name": "alias", "content": { "type": "SYMBOL", "name": "string" } }, { "type": "SYMBOL", "name": "nil" } ] } ] }, "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": "_table_or_subquery" }, { "type": "SYMBOL", "name": "join_clause" }, { "type": "SYMBOL", "name": "sqltable" } ] }, "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": "SYMBOL", "name": "expression" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "select_expression" }, { "type": "STRING", "value": ")" } ] } ] }, "table_name": { "type": "SYMBOL", "name": "identifier" }, "sql_field": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_sql_field_with_table" }, { "type": "SYMBOL", "name": "_sql_field_simple" } ] }, "_sql_field_with_table": { "type": "PREC", "value": 21, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "FIELD", "name": "table_index", "content": { "type": "SYMBOL", "name": "number" } }, { "type": "STRING", "value": "]" }, { "type": "STRING", "value": "." }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "*" }, { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "FIELD", "name": "field_name", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "number" }, { "type": "SYMBOL", "name": "identifier" } ] } }, { "type": "STRING", "value": "]" } ] } ] } ] } }, "_sql_field_simple": { "type": "PREC", "value": 20, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "FIELD", "name": "ref", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "number" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "call" } ] } }, { "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" } } ] }, "join_clause": { "type": "PREC_LEFT", "value": 1, "content": { "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": "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": "sql_field" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "sql_field" } ] } } ] } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)on" }, "named": false, "value": "on" }, { "type": "FIELD", "name": "right_fields", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "sql_field" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "sql_field" } ] } } ] } }, { "type": "STRING", "value": ")" } ] }, "_primary_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "attribute" }, { "type": "SYMBOL", "name": "subscript" }, { "type": "SYMBOL", "name": "call" }, { "type": "SYMBOL", "name": "array" }, { "type": "SYMBOL", "name": "literal" }, { "type": "SYMBOL", "name": "reserved_keyword" }, { "type": "SYMBOL", "name": "_parenthesized_expression" }, { "type": "SYMBOL", "name": "_identifier_like" }, { "type": "SYMBOL", "name": "sql_field" } ] }, "identifier": { "type": "TOKEN", "content": { "type": "PREC", "value": -1, "content": { "type": "PATTERN", "value": "[a-zA-Z_][a-zA-Z0-9_]*" } } }, "literal": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "number" }, { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "boolean" }, { "type": "SYMBOL", "name": "nil" }, { "type": "SYMBOL", "name": "infinity" }, { "type": "SYMBOL", "name": "ellipsis" } ] }, "_identifier_like": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "type" }, { "type": "SYMBOL", "name": "do" } ] }, "reserved_keyword": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "class" }, { "type": "SYMBOL", "name": "in" } ] }, "type": { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)type" }, "named": false, "value": "type" }, "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" }, "do": { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)do" }, "named": false, "value": "do" }, "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": "PATTERN", "value": "." } ] } ] } }, { "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": "PATTERN", "value": "." } ] } ] } }, { "type": "STRING", "value": "'" } ] } ] } }, "escape_sequence": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "PATTERN", "value": "." } ] } }, "boolean": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "true" }, { "type": "SYMBOL", "name": "false" } ] }, "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" }, "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": "..." }, "call": { "type": "PREC", "value": 18, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "function", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)const" }, "named": false, "value": "const" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "argument" } } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)const" }, "named": false, "value": "const" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "argument", "content": { "type": "SYMBOL", "name": "argument" } } ] } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] } }, "attribute": { "type": "PREC", "value": 18, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "object", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_primary_expression" } ] } }, { "type": "STRING", "value": "." }, { "type": "FIELD", "name": "attribute", "content": { "type": "SYMBOL", "name": "identifier" } } ] } }, "subscript": { "type": "PREC_DYNAMIC", "value": 2, "content": { "type": "PREC", "value": 18, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "_primary_expression" } }, { "type": "STRING", "value": "[" }, { "type": "FIELD", "name": "subscript", "content": { "type": "SYMBOL", "name": "_index_spec" } }, { "type": "STRING", "value": "]" } ] } } }, "_parenthesized_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_assignable_expression" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "array": { "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": ")" } ] } }, "argument": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "named_argument" }, { "type": "SYMBOL", "name": "asterisk_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" } } ] }, "asterisk_argument": { "type": "STRING", "value": "*" }, "_index_spec": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_multi_index" }, { "type": "SYMBOL", "name": "_single_index" } ] }, "_multi_index": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_index_item" }, { "type": "REPEAT1", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "_index_item" } ] } } ] }, "_single_index": { "type": "SYMBOL", "name": "_index_item" }, "_index_item": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "SYMBOL", "name": "slice" }, { "type": "SYMBOL", "name": "empty_slice" } ] }, "empty_slice": { "type": "STRING", "value": ":" }, "slice": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "range_slice" }, { "type": "SYMBOL", "name": "start_slice" }, { "type": "SYMBOL", "name": "end_slice" }, { "type": "SYMBOL", "name": "step_slice" } ] }, "range_slice": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "expression" } ] }, "start_slice": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ":" } ] }, "end_slice": { "type": "SEQ", "members": [ { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "expression" } ] }, "step_slice": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ":" }, { "type": "SYMBOL", "name": "expression" } ] }, "_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": "PREC", "value": 1, "content": { "type": "SYMBOL", "name": "parenthesized_array" } }, { "type": "SYMBOL", "name": "expression" } ] }, "key_value_pair": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "key", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "expression" } ] } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "value", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "parenthesized_array" }, { "type": "SYMBOL", "name": "expression" } ] } } ] }, "parenthesized_array": { "type": "PREC", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "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" } ] }, { "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": "[(][*]([^*]*[*]+[^)*])*[^*]*[*]+[)]" } }, "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": "_assignable_expression" } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)then" }, "named": false, "value": "then" }, { "type": "FIELD", "name": "consequence", "content": { "type": "SYMBOL", "name": "_statement_suite" } } ] }, "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": "_assignable_expression" } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)then" }, "named": false, "value": "then" }, { "type": "FIELD", "name": "consequence", "content": { "type": "SYMBOL", "name": "_statement_suite" } } ] } }, "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_suite" } } ] }, "_statement_suite": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "block_suite" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, { "type": "SYMBOL", "name": "single_suite" } ] }, "single_suite": { "type": "SYMBOL", "name": "_statement" }, "block_suite": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)begin" }, "named": false, "value": "begin" }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_statement" } }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)end" }, "named": false, "value": "end" } ] }, "_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_suite" } } ] }, "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_suite" } } ] }, "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_suite" } } ] }, "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": "single_suite" } } }, { "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" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "case_branch": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_case_values" }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "consequence", "content": { "type": "SYMBOL", "name": "_statement_suite" } } ] }, "_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_suite" } } ] }, "try_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)try" }, "named": false, "value": "try" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "try_body", "content": { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "_statement" } } }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)except" }, "named": false, "value": "except" }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "except_body", "content": { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "_statement" } } }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)end" }, "named": false, "value": "end" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "anonymous_function_statement": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "anonymous_function_expression" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "_function_header": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)function" }, "named": false, "value": "function" }, { "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_statement": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_function_header" }, { "type": "STRING", "value": ";" } ] }, "function_definition_statement": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_function_header" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "block_suite" } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "function_definition_with_overload_statement": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_function_header" }, { "type": "STRING", "value": ";" }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)overload" }, "named": false, "value": "overload" }, { "type": "STRING", "value": ";" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "block_suite" } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "_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": "STRING", "value": ";" }, { "type": "FIELD", "name": "parameter", "content": { "type": "SYMBOL", "name": "parameter" } } ] } } ] }, "parameter": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "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": "BLANK" } ] }, { "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" } } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type_clause" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "default", "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "BLANK" } ] } ] }, "class_definition_statement": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "type" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "=" }, { "type": "SYMBOL", "name": "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" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "_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" } ] } }, { "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" } ] } } ] } } ] }, { "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": "variable_declaration" }, { "type": "SYMBOL", "name": "_method_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": "_variable_declaration" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type_clause" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "initial_value", "content": { "type": "SYMBOL", "name": "_right_hand_side" } } ] }, { "type": "BLANK" } ] } ] }, "field_member_variable": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_variable_declaration" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_type_clause" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "initial_value", "content": { "type": "SYMBOL", "name": "_right_hand_side" } } ] }, { "type": "BLANK" } ] } ] }, "_method_declaration": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "method_declaration_only" }, { "type": "SYMBOL", "name": "method_with_modifier" }, { "type": "SYMBOL", "name": "method_with_implementation" } ] }, "_method_header": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "class" }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)function" }, "named": false, "value": "function" }, { "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_only": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_method_header" }, { "type": "STRING", "value": ";" } ] }, "method_with_modifier": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_method_header" }, { "type": "STRING", "value": ";" }, { "type": "FIELD", "name": "modifier", "content": { "type": "SYMBOL", "name": "method_modifier" } }, { "type": "STRING", "value": ";" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "block_suite" } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, { "type": "BLANK" } ] } ] }, "method_with_implementation": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_method_header" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "block_suite" } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "method_name": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_identifier_like" }, { "type": "SYMBOL", "name": "operator_overload" } ] }, "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" } } ] }, "external_method_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_modifier_method" }, { "type": "SYMBOL", "name": "_operator_method" }, { "type": "SYMBOL", "name": "_normal_method" } ] }, "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_suite" } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "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": "}" } ] }, "_tslx_template_statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "tslx_open_tag" }, { "type": "SYMBOL", "name": "tslx_close_tag" }, { "type": "SYMBOL", "name": "tslx_output_tag" }, { "type": "SYMBOL", "name": "tslx_expression_tag" }, { "type": "SYMBOL", "name": "_tslx_html_tag" } ] }, "tslx_open_tag": { "type": "SEQ", "members": [ { "type": "STRING", "value": "" } ] }, "tslx_close_tag": { "type": "SEQ", "members": [ { "type": "STRING", "value": "" } ] }, "tslx_output_tag": { "type": "SEQ", "members": [ { "type": "STRING", "value": "" } ] }, "_tslx_html_tag": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "html_self_closing_tag" }, { "type": "SYMBOL", "name": "html_paired_tag" }, { "type": "SYMBOL", "name": "html_comment" } ] }, "html_self_closing_tag": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "FIELD", "name": "tag_name", "content": { "type": "SYMBOL", "name": "html_tag_name" } }, { "type": "REPEAT", "content": { "type": "FIELD", "name": "attribute", "content": { "type": "SYMBOL", "name": "html_attribute" } } }, { "type": "STRING", "value": "/>" } ] }, "html_paired_tag": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "FIELD", "name": "tag_name", "content": { "type": "SYMBOL", "name": "html_tag_name" } }, { "type": "REPEAT", "content": { "type": "FIELD", "name": "attribute", "content": { "type": "SYMBOL", "name": "html_attribute" } } }, { "type": "STRING", "value": ">" }, { "type": "FIELD", "name": "content", "content": { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "_tslx_template_statement" } } }, { "type": "STRING", "value": "" } ] }, "html_attribute": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "PATTERN", "value": "[a-zA-Z:_][a-zA-Z0-9:_.-]*" } }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "string" } } ] }, "html_tag_name": { "type": "PATTERN", "value": "[a-zA-Z][a-zA-Z0-9-]*" }, "html_comment": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "" } ] } }, "_modifier_method": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "class" }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)function" }, "named": false, "value": "function" }, { "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": "STRING", "value": ";" }, { "type": "FIELD", "name": "modifier", "content": { "type": "SYMBOL", "name": "method_modifier" } }, { "type": "STRING", "value": ";" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "block_suite" } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "_operator_method": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_operator_overload_method" }, { "type": "SYMBOL", "name": "_operator_method_with_modifier" } ] }, "_normal_method": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "class" }, { "type": "BLANK" } ] }, { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)function" }, "named": false, "value": "function" }, { "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": "STRING", "value": ";" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "block_suite" } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "_operator_overload_method": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)function" }, "named": false, "value": "function" }, { "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": "STRING", "value": ";" }, { "type": "BLANK" } ] }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "block_suite" } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "_operator_method_with_modifier": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "PATTERN", "value": "(?i)function" }, "named": false, "value": "function" }, { "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": "STRING", "value": ";" }, { "type": "FIELD", "name": "modifier", "content": { "type": "SYMBOL", "name": "method_modifier" } }, { "type": "STRING", "value": ";" }, { "type": "FIELD", "name": "body", "content": { "type": "SYMBOL", "name": "block_suite" } }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "_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" } } ] }, "unit": { "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" } } ] }, "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": ";" } ] } }, "extras": [ { "type": "PATTERN", "value": "\\s" }, { "type": "SYMBOL", "name": "line_comment" }, { "type": "SYMBOL", "name": "block_comment" }, { "type": "SYMBOL", "name": "nested_comment" }, { "type": "SYMBOL", "name": "compiler_directive_statement" } ], "conflicts": [ [ "_left_hand_side", "_primary_expression" ], [ "_tssql_select_expression", "_table_or_subquery" ], [ "tslx_close_tag", "tslx_expression_tag" ], [ "_assignable_expression", "array_element" ] ], "precedences": [], "externals": [], "inline": [ "_statement" ], "supertypes": [], "reserved": {} }