tree-sitter-abl
Version:
ABL grammar for tree-sitter
2,047 lines • 444 kB
JSON
{
"name": "abl",
"word": "identifier",
"rules": {
"source_code": {
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "SYMBOL",
"name": "class_statement"
},
{
"type": "SYMBOL",
"name": "_definition"
},
{
"type": "SYMBOL",
"name": "do_block"
},
{
"type": "SYMBOL",
"name": "interface_statement"
},
{
"type": "SYMBOL",
"name": "method_statement"
},
{
"type": "SYMBOL",
"name": "constant"
}
]
}
},
"body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "SYMBOL",
"name": "_definition"
},
{
"type": "SYMBOL",
"name": "do_block"
},
{
"type": "PREC",
"value": -1,
"content": {
"type": "SYMBOL",
"name": "annotation"
}
}
]
}
}
]
},
"_statement_body": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "do_block"
},
{
"type": "PREC",
"value": 2,
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
{
"type": "SYMBOL",
"name": "constant"
}
]
},
"dot_body": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "STRING",
"value": "."
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "SYMBOL",
"name": "_definition"
}
]
}
}
]
},
"class_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_definition"
},
{
"type": "SYMBOL",
"name": "var_statement"
},
{
"type": "SYMBOL",
"name": "include"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "method_statement"
}
]
},
{
"type": "SYMBOL",
"name": "constructor_statement"
},
{
"type": "SYMBOL",
"name": "destructor_statement"
},
{
"type": "SYMBOL",
"name": "function_statement"
}
]
}
}
]
},
"interface_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_definition"
},
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "SYMBOL",
"name": "method_statement"
}
]
}
}
]
},
"case_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "REPEAT1",
"content": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "case_when_branch"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "BLANK"
}
]
}
]
}
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "case_otherwise_branch"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"enum_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "enum_definition"
}
}
]
},
"label": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
}
]
},
"_terminator": {
"type": "PATTERN",
"value": "\\s*\\."
},
"_block_terminator": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[eE][nN][dD]"
}
}
},
"named": false,
"value": "END"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
}
}
},
"named": false,
"value": "FUNCTION"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[pP][rR][oO][cC][eE][dD][uU][rR][eE]"
}
}
},
"named": false,
"value": "PROCEDURE"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[cC][aA][sS][eE]"
}
}
},
"named": false,
"value": "CASE"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[cC][lL][aA][sS][sS]"
}
}
},
"named": false,
"value": "CLASS"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[eE][nN][uU][mM]"
}
}
},
"named": false,
"value": "ENUM"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[iI][nN][tT][eE][rR][fF][aA][cC][eE]"
}
}
},
"named": false,
"value": "INTERFACE"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[cC][oO][nN][sS][tT][rR][uU][cC][tT][oO][rR]"
}
}
},
"named": false,
"value": "CONSTRUCTOR"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[dD][eE][sS][tT][rR][uU][cC][tT][oO][rR]"
}
}
},
"named": false,
"value": "DESTRUCTOR"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[cC][aA][tT][cC][hH]"
}
}
},
"named": false,
"value": "CATCH"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[fF][iI][nN][aA][lL][lL][yY]"
}
}
},
"named": false,
"value": "FINALLY"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "."
}
]
},
"_logical_operator": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_and_operator"
},
"named": false,
"value": "AND"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_or_operator"
},
"named": false,
"value": "OR"
}
]
}
},
"assignment_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_augmented_assignment"
}
]
},
"_additive_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
"_multiplicative_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[mM][oO][dD][uU][lL][oO]"
}
}
},
"named": false,
"value": "MODULO"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[mM][oO][dD]"
}
}
},
"named": false,
"value": "MOD"
}
]
},
"_comparison_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": "<>"
},
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": ">="
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[lL][tT]"
}
}
},
"named": false,
"value": "LT"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[lL][eE]"
}
}
},
"named": false,
"value": "LE"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[nN][eE]"
}
}
},
"named": false,
"value": "NE"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[eE][qQ]"
}
}
},
"named": false,
"value": "EQ"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[gG][tT]"
}
}
},
"named": false,
"value": "GT"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[gG][eE]"
}
}
},
"named": false,
"value": "GE"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[bB][eE][gG][iI][nN][sS]"
}
}
},
"named": false,
"value": "BEGINS"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[mM][aA][tT][cC][hH][eE][sS]"
}
}
},
"named": false,
"value": "MATCHES"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[cC][oO][nN][tT][aA][iI][nN][sS]"
}
}
},
"named": false,
"value": "CONTAINS"
}
]
},
"_name": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "qualified_name"
}
]
},
"file_name": {
"type": "PATTERN",
"value": "[A-z-_|0-9|\\/]+\\.[ipwr]"
},
"comment": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": "[^\\r\\n]*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/*"
},
{
"type": "PATTERN",
"value": "[^*]*\\*+([^/*][^*]*\\*+)*"
},
{
"type": "STRING",
"value": "/"
}
]
}
]
},
"annotation": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[tT][eE][sS][tT]"
}
}
},
"named": false,
"value": "TEST"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation_argument"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[tT][eE][sS][tT][sS][uU][iI][tT][eE]"
}
}
},
"named": false,
"value": "TESTSUITE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation_argument"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[bB][eE][fF][oO][rR][eE]"
}
}
},
"named": false,
"value": "BEFORE"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[bB][eE][fF][oO][rR][eE][aA][lL][lL]"
}
}
},
"named": false,
"value": "BEFOREALL"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[bB][eE][fF][oO][rR][eE][eE][aA][cC][hH]"
}
}
},
"named": false,
"value": "BEFOREEACH"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT][uU][pP]"
}
}
},
"named": false,
"value": "SETUP"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[aA][fF][tT][eE][rR][eE][aA][cC][hH]"
}
}
},
"named": false,
"value": "AFTEREACH"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[tT][eE][aA][rR][dD][oO][wW][nN]"
}
}
},
"named": false,
"value": "TEARDOWN"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[aA][fF][tT][eE][rR][aA][lL][lL]"
}
}
},
"named": false,
"value": "AFTERALL"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[aA][fF][tT][eE][rR]"
}
}
},
"named": false,
"value": "AFTER"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[iI][gG][nN][oO][rR][eE]"
}
}
},
"named": false,
"value": "IGNORE"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[aA][bB][lL][fF][oO][rR][mM][aA][tT][tT][eE][rR][eE][xX][cC][lL][uU][dD][eE][sS][tT][aA][rR][tT]"
}
}
},
"named": false,
"value": "ABLFORMATTEREXCLUDESTART"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[aA][bB][lL][fF][oO][rR][mM][aA][tT][tT][eE][rR][eE][xX][cC][lL][uU][dD][eE][eE][nN][dD]"
}
}
},
"named": false,
"value": "ABLFORMATTEREXCLUDEEND"
}
]
},
{
"type": "SYMBOL",
"name": "_terminator"
}
]
},
"preprocessor_directive": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "&"
},
{
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^\\n~]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "~"
},
{
"type": "PATTERN",
"value": "\\s*\\n"
},
{
"type": "PATTERN",
"value": "[^\\n~]*"
}
]
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[iI][fF]"
}
}
},
"named": false,
"value": "IF"
},
{
"type": "PATTERN",
"value": "[^\\n]*"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\n"
},
{
"type": "PATTERN",
"value": "[^\\n]*"
}
]
}
},
{
"type": "PATTERN",
"value": "\\n\\s*"
},
{
"type": "STRING",
"value": "&"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[eE][nN][dD][iI][fF]"
}
}
},
"named": false,
"value": "ENDIF"
}
]
}
]
}
}
]
},
"_literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "number_literal"
},
{
"type": "SYMBOL",
"name": "string_literal"
},
{
"type": "SYMBOL",
"name": "date_literal"
}
]
},
"boolean_literal": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[tT][rR][uU][eE]"
}
}
},
"named": false,
"value": "TRUE"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[fF][aA][lL][sS][eE]"
}
}
},
"named": false,
"value": "FALSE"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[yY][eE][sS]"
}
}
},
"named": false,
"value": "YES"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[nN][oO]"
}
}
},
"named": false,
"value": "NO"
}
]
},
"_integer_literal": {
"type": "PATTERN",
"value": "[0-9]+"
},
"_decimal_literal": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_integer_literal"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_namedot"
},
"named": false,
"value": "."
},
{
"type": "SYMBOL",
"name": "_integer_literal"
}
]
},
"number_literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_integer_literal"
},
{
"type": "SYMBOL",
"name": "_decimal_literal"
}
]
},
"string_literal": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_escaped_string"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "string_literal_attribute"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"string_literal_attribute": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[rR]"
}
}
},
"named": false,
"value": "R"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[lL]"
}
}
},
"named": false,
"value": "L"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[cC]"
}
}
},
"named": false,
"value": "C"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[tT]"
}
}
},
"named": false,
"value": "T"
}
]
},
{
"type": "SYMBOL",
"name": "_integer_literal"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[uU]"
}
}
},
"named": false,
"value": "U"
}
]
},
"date_literal": {
"type": "PATTERN",
"value": "\\d{1,2}\\/\\d{1,2}\\/\\d{4}|\\d{2}"
},
"array_literal": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_array_literal_body"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"_array_literal_body": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "range_notation"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_array_literal_member"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_array_literal_member"
}
]
}
}
]
}
]
},
"_array_literal_member": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "new_expression"
},
{
"type": "SYMBOL",
"name": "number_literal"
},
{
"type": "SYMBOL",
"name": "string_literal"
},
{
"type": "SYMBOL",
"name": "boolean_literal"
},
{
"type": "SYMBOL",
"name": "null_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "array_literal"
},
{
"type": "SYMBOL",
"name": "array_access"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "constant"
},
{
"type": "SYMBOL",
"name": "_binary_expression"
}
]
},
"range_notation": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "_integer_literal"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_for_keyword"
},
"named": false,
"value": "FOR"
},
{
"type": "SYMBOL",
"name": "_integer_literal"
}
]
},
"_define": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[dD][eE][fF][iI][nN][eE]"
}
}
},
"named": false,
"value": "DEFINE"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_def_keyword"
},
"named": false,
"value": "DEF"
}
]
},
"include_argument": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "&"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "string_literal"
}
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "string_literal"
}
},
{
"type": "SYMBOL",
"name": "constant"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"include": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "file_name"
},
{
"type": "PREC",
"value": 1,
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "include_file_path"
},
"named": true,
"value": "file_name"
}
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "include_argument"
}
},
{
"type": "STRING",
"value": "}"
}
]
}
},
"include_file_path": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "constant"
},
{
"type": "PATTERN",
"value": "[A-z-_|0-9|\\/\\.]+"
}
]
}
}
},
"identifier": {
"type": "PATTERN",
"value": "[A-Z|a-z|\\-|\\\\_]{1}[#+&A-Z|a-z|\\-|\\\\_|0-9]*"
},
"constant": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "&"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_constant_value"
},
{
"type": "STRING",
"value": "}"
}
]
},
"_constant_value": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "_integer_literal"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "="
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "_integer_literal"
},
{
"type": "SYMBOL",
"name": "string_literal"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[\\s\\-()a-zA-Z0-9]+"
}
]
}
}
]
}
]
},
"qualified_name": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_namedot"
},
"named": false,
"value": "."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "*"
}
]
}
]
}
}
]
},
"_tuning": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "access_tuning"
},
{
"type": "SYMBOL",
"name": "scope_tuning"
},
{
"type": "SYMBOL",
"name": "member_modifier"
},
{
"type": "SYMBOL",
"name": "constant"
}
]
},
"access_tuning": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[pP][rR][iI][vV][aA][tT][eE]"
}
}
},
"named": false,
"value": "PRIVATE"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[pP][rR][oO][tT][eE][cC][tT][eE][dD]"
}
}
},
"named": false,
"value": "PROTECTED"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[pP][uU][bB][lL][iI][cC]"
}
}
},
"named": false,
"value": "PUBLIC"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[pP][aA][cC][kK][aA][gG][eE][--][pP][rR][iI][vV][aA][tT][eE]"
}
}
},
"named": false,
"value": "PACKAGE-PRIVATE"
},
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[pP][aA][cC][kK][aA][gG][eE][--][pP][rR][oO][tT][eE][cC][tT][eE][dD]"
}
}
},
"named": false,
"value": "PACKAGE-PROTECTED"
}
]
},
"accumulate_aggregate": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PAT