tree-sitter-abl
Version:
ABL grammar for tree-sitter
2,750 lines • 93 kB
JSON
[
{
"type": "_expression",
"named": true,
"subtypes": [
{
"type": "accumulate_expression",
"named": true
},
{
"type": "additive_expression",
"named": true
},
{
"type": "ambiguous_expression",
"named": true
},
{
"type": "array_access",
"named": true
},
{
"type": "array_literal",
"named": true
},
{
"type": "available_expression",
"named": true
},
{
"type": "boolean_literal",
"named": true
},
{
"type": "can_find_expression",
"named": true
},
{
"type": "comparison_expression",
"named": true
},
{
"type": "constant",
"named": true
},
{
"type": "current_changed_expression",
"named": true
},
{
"type": "date_literal",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "input_expression",
"named": true
},
{
"type": "locked_expression",
"named": true
},
{
"type": "logical_expression",
"named": true
},
{
"type": "member_access",
"named": true
},
{
"type": "multiplicative_expression",
"named": true
},
{
"type": "new_expression",
"named": true
},
{
"type": "null_expression",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "object_access",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "temp_table_expression",
"named": true
},
{
"type": "ternary_expression",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
{
"type": "_statement",
"named": true,
"subtypes": [
{
"type": "abl_statement",
"named": true
},
{
"type": "accumulate_statement",
"named": true
},
{
"type": "annotation",
"named": true
},
{
"type": "assign_statement",
"named": true
},
{
"type": "case_statement",
"named": true
},
{
"type": "catch_statement",
"named": true
},
{
"type": "enum_statement",
"named": true
},
{
"type": "error_scope_statement",
"named": true
},
{
"type": "finally_statement",
"named": true
},
{
"type": "find_statement",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "function_call_statement",
"named": true
},
{
"type": "function_statement",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "include",
"named": true
},
{
"type": "input_output_statement",
"named": true
},
{
"type": "null_statement",
"named": true
},
{
"type": "on_statement",
"named": true
},
{
"type": "preprocessor_directive",
"named": true
},
{
"type": "procedure_statement",
"named": true
},
{
"type": "prompt_for_statement",
"named": true
},
{
"type": "repeat_statement",
"named": true
},
{
"type": "return_statement",
"named": true
},
{
"type": "run_statement",
"named": true
},
{
"type": "undo_statement",
"named": true
},
{
"type": "using_statement",
"named": true
},
{
"type": "var_statement",
"named": true
},
{
"type": "variable_assignment",
"named": true
}
]
},
{
"type": "abl_statement",
"named": true,
"fields": {
"statement": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expression",
"named": true
}
]
}
},
{
"type": "access_tuning",
"named": true,
"fields": {}
},
{
"type": "accumulate_aggregate",
"named": true,
"fields": {}
},
{
"type": "accumulate_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_expression",
"named": true
},
{
"type": "accumulate_aggregate",
"named": true
}
]
}
},
{
"type": "accumulate_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "accumulate_aggregate",
"named": true
},
{
"type": "additive_expression",
"named": true
},
{
"type": "comparison_expression",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "logical_expression",
"named": true
},
{
"type": "multiplicative_expression",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
{
"type": "action_phrase",
"named": true,
"fields": {
"label": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "_expression",
"named": true
}
]
}
},
{
"type": "additive_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_expression",
"named": true
}
]
}
},
{
"type": "ambiguous_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
{
"type": "annotation",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "annotation_argument",
"named": true
}
]
}
},
{
"type": "annotation_argument",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "string_literal",
"named": true
}
]
}
},
{
"type": "argument",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "additive_expression",
"named": true
},
{
"type": "argument_mode",
"named": true
},
{
"type": "array_access",
"named": true
},
{
"type": "comparison_expression",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "input_expression",
"named": true
},
{
"type": "logical_expression",
"named": true
},
{
"type": "multiplicative_expression",
"named": true
},
{
"type": "null_expression",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "object_access",
"named": true
},
{
"type": "parameter_tuning",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "ternary_expression",
"named": true
},
{
"type": "type_tuning",
"named": true
}
]
}
},
{
"type": "argument_mode",
"named": true,
"fields": {}
},
{
"type": "arguments",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "argument",
"named": true
}
]
}
},
{
"type": "array_access",
"named": true,
"fields": {
"array": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "object_access",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_literal",
"named": true
}
]
}
},
{
"type": "array_literal",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "additive_expression",
"named": true
},
{
"type": "array_access",
"named": true
},
{
"type": "array_literal",
"named": true
},
{
"type": "boolean_literal",
"named": true
},
{
"type": "comparison_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "logical_expression",
"named": true
},
{
"type": "multiplicative_expression",
"named": true
},
{
"type": "new_expression",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "range_notation",
"named": true
},
{
"type": "string_literal",
"named": true
}
]
}
},
{
"type": "assign_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "assignment",
"named": true
}
]
}
},
{
"type": "assignment",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "array_access",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "member_access",
"named": true
},
{
"type": "object_access",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_expression",
"named": true
},
{
"type": "assignment_operator",
"named": true
},
{
"type": "include",
"named": true
},
{
"type": "when_expression",
"named": true
}
]
}
},
{
"type": "assignment_operator",
"named": true,
"fields": {}
},
{
"type": "available_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "body",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "_statement",
"named": true
},
{
"type": "buffer_definition",
"named": true
},
{
"type": "case_otherwise_branch",
"named": true
},
{
"type": "case_when_branch",
"named": true
},
{
"type": "constructor_statement",
"named": true
},
{
"type": "data_source_definition",
"named": true
},
{
"type": "dataset_definition",
"named": true
},
{
"type": "destructor_statement",
"named": true
},
{
"type": "enum_definition",
"named": true
},
{
"type": "event_definition",
"named": true
},
{
"type": "method_statement",
"named": true
},
{
"type": "parameter_definition",
"named": true
},
{
"type": "property_definition",
"named": true
},
{
"type": "query_definition",
"named": true
},
{
"type": "stream_definition",
"named": true
},
{
"type": "temp_table_definition",
"named": true
},
{
"type": "variable_definition",
"named": true
},
{
"type": "workfile_definition",
"named": true
}
]
}
},
{
"type": "boolean_literal",
"named": true,
"fields": {}
},
{
"type": "buffer_definition",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"table": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "access_tuning",
"named": true
},
{
"type": "member_modifier",
"named": true
},
{
"type": "scope_tuning",
"named": true
}
]
}
},
{
"type": "can_find_expression",
"named": true,
"fields": {
"constant": {
"multiple": false,
"required": false,
"types": [
{
"type": "number_literal",
"named": true
},
{
"type": "string_literal",
"named": true
}
]
},
"table": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "of",
"named": true
},
{
"type": "query_tuning",
"named": true
},
{
"type": "where_clause",
"named": true
}
]
}
},
{
"type": "case_condition",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "boolean_literal",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "string_literal",
"named": true
}
]
}
},
{
"type": "case_otherwise_branch",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "_statement",
"named": true
},
{
"type": "do_block",
"named": true
}
]
}
},
{
"type": "case_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_expression",
"named": true
},
{
"type": "body",
"named": true
}
]
}
},
{
"type": "case_when_branch",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_statement",
"named": true
},
{
"type": "case_condition",
"named": true
},
{
"type": "do_block",
"named": true
}
]
}
},
{
"type": "catch_statement",
"named": true,
"fields": {
"type": {
"multiple": true,
"required": true,
"types": [
{
"type": "CLASS",
"named": false
},
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
},
"variable": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
}
},
{
"type": "class_statement",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "string_literal",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "class_tuning",
"named": true
}
]
}
},
{
"type": "class_tuning",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "implements",
"named": true
},
{
"type": "inherits",
"named": true
}
]
}
},
{
"type": "class_type",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
{
"type": "comment",
"named": true,
"fields": {}
},
{
"type": "comparison_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_expression",
"named": true
}
]
}
},
{
"type": "constant",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "constructor_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "access_tuning",
"named": true
},
{
"type": "body",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "parameters",
"named": true
},
{
"type": "scope_tuning",
"named": true
}
]
}
},
{
"type": "current_changed_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
{
"type": "data_relation",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
{
"type": "data_source_definition",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "access_tuning",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "member_modifier",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "scope_tuning",
"named": true
}
]
}
},
{
"type": "dataset_definition",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "access_tuning",
"named": true
},
{
"type": "data_relation",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "member_modifier",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "scope_tuning",
"named": true
}
]
}
},
{
"type": "destructor_statement",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "do_block",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "do_for_phrase",
"named": true
},
{
"type": "frame_phrase",
"named": true
},
{
"type": "label",
"named": true
},
{
"type": "on_endkey_phrase",
"named": true
},
{
"type": "on_error_phrase",
"named": true
},
{
"type": "on_quit_phrase",
"named": true
},
{
"type": "on_stop_phrase",
"named": true
},
{
"type": "preselect_phrase",
"named": true
},
{
"type": "stop_after_phrase",
"named": true
},
{
"type": "to_phrase",
"named": true
},
{
"type": "while_phrase",
"named": true
}
]
}
},
{
"type": "do_for_phrase",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
{
"type": "else_statement",
"named": true,
"fields": {
"condition": {
"multiple": false,
"required": false,
"types": [
{
"type": "_expression",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "_statement",
"named": true
},
{
"type": "do_block",
"named": true
}
]
}
},
{
"type": "enum_definition",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "enum_member",
"named": true
}
]
}
},
{
"type": "enum_member",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"value": {
"multiple": true,
"required": false,
"types": [
{
"type": ",",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": "identifier",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "string_literal",
"named": true
}
]
}
}
},
{
"type": "enum_statement",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
}
},
{
"type": "error_scope_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "on_error_phrase",
"named": true
}
]
}
},
{
"type": "event_definition",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "access_tuning",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "member_modifier",
"named": true
},
{
"type": "parameters",
"named": true
},
{
"type": "scope_tuning",
"named": true
}
]
}
},
{
"type": "field_clause",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "field_option",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "type_tuning",
"named": true
}
]
}
},
{
"type": "field_option",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "array_literal",
"named": true
},
{
"type": "boolean_literal",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "null_expression",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "object_access",
"named": true
},
{
"type": "string_literal",
"named": true
}
]
}
},
{
"type": "finally_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "body",
"named": true
}
]
}
},
{
"type": "find_statement",
"named": true,
"fields": {
"table": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
},
"type": {
"multiple": false,
"required": false,
"types": [
{
"type": "CURRENT",
"named": false
},
{
"type": "FIRST",
"named": false
},
{
"type": "LAST",
"named": false
},
{
"type": "NEXT",
"named": false
},
{
"type": "PREV",
"named": false
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "of",
"named": true
},
{
"type": "query_tuning",
"named": true
},
{
"type": "where_clause",
"named": true
}
]
}
},
{
"type": "for_statement",
"named": true,
"fields": {
"table": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
},
"type": {
"multiple": true,
"required": false,
"types": [
{
"type": "EACH",
"named": false
},
{
"type": "FIRST",
"named": false
},
{
"type": "LAST",
"named": false
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "frame_phrase",
"named": true
},
{
"type": "label",
"named": true
},
{
"type": "of",
"named": true
},
{
"type": "on_endkey_phrase",
"named": true
},
{
"type": "on_error_phrase",
"named": true
},
{
"type": "on_quit_phrase",
"named": true
},
{
"type": "on_stop_phrase",
"named": true
},
{
"type": "query_tuning",
"named": true
},
{
"type": "sort_clause",
"named": true
},
{
"type": "where_clause",
"named": true
}
]
}
},
{
"type": "frame_phrase",
"named": true,
"fields": {
"frame": {
"multiple": true,
"required": false,
"types": [
{
"type": "constant",
"named": true
},
{
"type": "identifier",
"named": true
}
]
},
"stream": {
"multiple": true,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"stream_handle": {
"multiple": true,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "_expression",
"named": true
},
{
"type": "size_phrase",
"named": true
}
]
}
},
{
"type": "function_call",
"named": true,
"fields": {
"function": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "object_access",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "arguments",
"named": true
}
]
}
},
{
"type": "function_call_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "function_call",
"named": true
}
]
}
},
{
"type": "function_parameter",
"named": true,
"fields": {
"buffer": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"table": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "argument_mode",
"named": true
},
{
"type": "parameter_tuning",
"named": true
},
{
"type": "type_tuning",
"named": true
}
]
}
},
{
"type": "function_statement",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parameters",
"named": true
},
{
"type": "return_type",
"named": true
}
]
}
},
{
"type": "generic_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "generic_parameter",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
{
"type": "generic_parameter",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "type_tuning",
"named": true
}
]
}
},
{
"type": "generic_type",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "generic_expression",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
{
"type": "getter",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "access_tuning",
"named": true
},
{
"type": "body",
"named": true
},
{
"type": "parameters",
"named": true
}
]
}
},
{
"type": "if_statement",
"named": true,
"fields": {
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "_expression",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_statement",
"named": true
},
{
"type": "do_block",
"named": true
},
{
"type": "else_statement",
"named": true
}
]
}
},
{
"type": "implements",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "string_literal",
"named": true
}
]
}
},
{
"type": "include",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "file_name",
"named": true
},
{
"type": "include_argument",
"named": true
}
]
}
},
{
"type": "include_argument",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"value": {
"multiple": false,
"required": false,
"types": [
{
"type": "string_literal",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "constant",
"named": true
}
]
}
},
{
"type": "index_clause",
"named": true,
"fields": {
"field": {
"multiple": true,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "index_tuning",
"named": true
},
{
"type": "sort_order",
"named": true
}
]
}
},
{
"type": "index_tuning",
"named": true,
"fields": {}
},
{
"type": "inherits",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "string_literal",
"named": true
}
]
}
},
{
"type": "input_expression",
"named": true,
"fields": {
"field": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
},
"frame": {
"multiple": false,
"required": false,
"types": [
{
"type": "constant",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "input_output_statement",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "function_call",
"named": true
},
{
"type": "stream_flag",
"named": true
},
{
"type": "stream_tuning",
"named": true
},
{
"type": "string_literal",
"named": true
}
]
}
},
{
"type": "interface_statement",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "string_literal",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "body",
"named": true
},
{
"type": "inherits",
"named": true
}
]
}
},
{
"type": "label",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "like_phrase",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "locked_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
{
"type": "logical_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_expression",
"named": true
}
]
}
},
{
"type": "member_access",
"named": true,
"fields": {
"object": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"property": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "member_modifier",
"named": true,
"fields": {}
},
{
"type": "method_statement",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "access_tuning",
"named": true
},
{
"type": "body",
"named": true
},
{
"type": "member_modifier",
"named": true
},
{
"type": "number_literal",
"named": true
},
{
"type": "parameters",
"named": true
},
{
"type": "return_type",
"named": true
},
{
"type": "scope_tuning",
"named": true
}
]
}
},
{
"type": "multiplicative_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "_expression",
"named": true
}
]
}
},
{
"type": "new_expression",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "arguments",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
{
"type": "null_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "object_access",
"named": true
}
]
}
},
{
"type": "number_literal",
"named": true,
"fields": {}
},
{
"type": "object_access",
"named": true,
"fields": {
"object": {
"multiple": false,
"required": true,
"types": [
{
"type": "function_call",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "new_expression",
"named": true
}
]
},
"property": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
}
},
{
"type": "of",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
}
]
}
},
{
"type": "on_endkey_phrase",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "action_phrase",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "on_error_phrase",
"named": true,
"fields": {
"label": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "action_phrase",
"named": true
}
]
}
},
{
"type": "on_quit_phrase",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "action_phrase",
"named": true
},
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "on_statement",
"named": true,
"fields": {
"function": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"label": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "do_block",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "qualified_name",
"named": true
},
{
"type": "referencing_phrase",
"named": true
}
]
}
},
{
"type": "on_stop_phrase",
"named": true,
"fields": {
"label": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "action_phrase",
"named": true
}
]
}
},
{
"type": "parameter_definition",
"named": true,
"fields": {
"buffer": {
"multiple": false,
"required": false,
"types": [
{
"type": "identifier",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named