{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "pascal",
"word": "identifier",
"rules": {
"root": {
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "program"
},
{
"type": "SYMBOL",
"name": "library"
},
{
"type": "SYMBOL",
"name": "unit"
},
{
"type": "SYMBOL",
"name": "_definitions"
}
]
},
{
"type": "BLANK"
}
]
},
"program": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kProgram"
},
{
"type": "SYMBOL",
"name": "moduleName"
},
{
"type": "STRING",
"value": ";"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_definitions"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "blockTr"
},
"named": true,
"value": "block"
},
{
"type": "SYMBOL",
"name": "kEndDot"
}
]
},
"library": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kLibrary"
},
{
"type": "SYMBOL",
"name": "moduleName"
},
{
"type": "STRING",
"value": ";"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_definitions"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "blockTr"
},
"named": true,
"value": "block"
},
{
"type": "SYMBOL",
"name": "kEnd"
}
]
},
{
"type": "SYMBOL",
"name": "kEndDot"
}
]
},
"unit": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kUnit"
},
{
"type": "SYMBOL",
"name": "moduleName"
},
{
"type": "STRING",
"value": ";"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "interface"
},
{
"type": "SYMBOL",
"name": "implementation"
},
{
"type": "SYMBOL",
"name": "initialization"
},
{
"type": "SYMBOL",
"name": "finalization"
}
]
}
},
{
"type": "SYMBOL",
"name": "kEnd"
},
{
"type": "SYMBOL",
"name": "kEndDot"
}
]
},
"interface": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kInterface"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declarations"
},
{
"type": "BLANK"
}
]
}
]
},
"implementation": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kImplementation"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_definitions"
},
{
"type": "BLANK"
}
]
}
]
},
"initialization": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kInitialization"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementsTr"
},
{
"type": "BLANK"
}
]
}
]
},
"finalization": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kFinalization"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementsTr"
},
{
"type": "BLANK"
}
]
}
]
},
"moduleName": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "kDot"
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"if": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kIf"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "SYMBOL",
"name": "kThen"
},
{
"type": "FIELD",
"name": "then",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"nestedIf": {
"type": "PREC",
"value": 1,
"content": {
"type": "SYMBOL",
"name": "if"
}
},
"ifElse": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kIf"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "SYMBOL",
"name": "kThen"
},
{
"type": "FIELD",
"name": "then",
"content": {
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementTr"
},
{
"type": "SYMBOL",
"name": "if"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "SYMBOL",
"name": "kElse"
},
{
"type": "FIELD",
"name": "else",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
}
},
"while": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kWhile"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "SYMBOL",
"name": "kDo"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"repeat": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kRepeat"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "statementsTr"
},
"named": true,
"value": "statements"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "SYMBOL",
"name": "kUntil"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": ";"
}
]
}
},
"for": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kFor"
},
{
"type": "FIELD",
"name": "start",
"content": {
"type": "SYMBOL",
"name": "assignment"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kTo"
},
{
"type": "SYMBOL",
"name": "kDownto"
}
]
},
{
"type": "FIELD",
"name": "end",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "SYMBOL",
"name": "kDo"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"foreach": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kFor"
},
{
"type": "FIELD",
"name": "iterator",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "SYMBOL",
"name": "kIn"
},
{
"type": "FIELD",
"name": "iterable",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "SYMBOL",
"name": "kDo"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"exceptionHandler": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kOn"
},
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "exception",
"content": {
"type": "SYMBOL",
"name": "typeref"
}
},
{
"type": "SYMBOL",
"name": "kDo"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"exceptionElse": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kElse"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
{
"type": "SYMBOL",
"name": "_statement"
}
]
},
"_exceptionHandlers": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "exceptionHandler"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "exceptionHandler"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "exceptionHandlerTr"
},
"named": true,
"value": "exceptionHandler"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "exceptionElse"
},
{
"type": "BLANK"
}
]
}
]
},
"try": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kTry"
},
{
"type": "FIELD",
"name": "try",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "statementsTr"
},
"named": true,
"value": "statements"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "except",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kExcept"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "statementsTr"
},
"named": true,
"value": "statements"
},
{
"type": "SYMBOL",
"name": "_exceptionHandlersTr"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "FIELD",
"name": "finally",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kFinally"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "statementsTr"
},
"named": true,
"value": "statements"
},
{
"type": "BLANK"
}
]
}
]
}
}
]
},
{
"type": "SYMBOL",
"name": "kEnd"
},
{
"type": "STRING",
"value": ";"
}
]
}
},
"caseCase": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "label",
"content": {
"type": "SYMBOL",
"name": "caseLabel"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"case": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kCase"
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "kOf"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "caseCase"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "caseCaseTr"
},
"named": true,
"value": "caseCase"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kElse"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementsTr"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "kEnd"
},
{
"type": "STRING",
"value": ";"
}
]
}
},
"block": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kBegin"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementsTr"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "kEnd"
},
{
"type": "STRING",
"value": ";"
}
]
},
"asm": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kAsm"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "asmBody"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "kEnd"
},
{
"type": "STRING",
"value": ";"
}
]
},
"with": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kWith"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "entity",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "entity",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
{
"type": "SYMBOL",
"name": "kDo"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
}
]
},
"raise": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kRaise"
},
{
"type": "FIELD",
"name": "exception",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"statement": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
},
"goto": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kGoto"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ";"
}
]
},
"_statement": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "assignment"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "varDef"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "statement"
},
"named": true,
"value": "statement"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "if"
},
"named": true,
"value": "if"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "ifElse"
},
"named": true,
"value": "ifElse"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "while"
},
"named": true,
"value": "while"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "repeat"
},
"named": true,
"value": "repeat"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "for"
},
"named": true,
"value": "for"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "foreach"
},
"named": true,
"value": "foreach"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "try"
},
"named": true,
"value": "try"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "case"
},
"named": true,
"value": "case"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "block"
},
"named": true,
"value": "block"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "with"
},
"named": true,
"value": "with"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "raise"
},
"named": true,
"value": "raise"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "goto"
},
"named": true,
"value": "goto"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "asm"
},
"named": true,
"value": "asm"
}
]
},
"ifTr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kIf"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "SYMBOL",
"name": "kThen"
},
{
"type": "FIELD",
"name": "then",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementTr"
},
{
"type": "BLANK"
}
]
}
}
]
},
"nestedIfTr": {
"type": "PREC",
"value": 1,
"content": {
"type": "SYMBOL",
"name": "if"
}
},
"ifElseTr": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kIf"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "SYMBOL",
"name": "kThen"
},
{
"type": "FIELD",
"name": "then",
"content": {
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementTr"
},
{
"type": "SYMBOL",
"name": "if"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "SYMBOL",
"name": "kElse"
},
{
"type": "FIELD",
"name": "else",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementTr"
},
{
"type": "BLANK"
}
]
}
}
]
}
},
"whileTr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kWhile"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "SYMBOL",
"name": "kDo"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementTr"
},
{
"type": "BLANK"
}
]
}
}
]
},
"repeatTr": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kRepeat"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "statementsTr"
},
"named": true,
"value": "statements"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "SYMBOL",
"name": "kUntil"
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
"forTr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kFor"
},
{
"type": "FIELD",
"name": "start",
"content": {
"type": "SYMBOL",
"name": "assignment"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kTo"
},
{
"type": "SYMBOL",
"name": "kDownto"
}
]
},
{
"type": "FIELD",
"name": "end",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "SYMBOL",
"name": "kDo"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementTr"
},
{
"type": "BLANK"
}
]
}
}
]
},
"foreachTr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kFor"
},
{
"type": "FIELD",
"name": "iterator",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "SYMBOL",
"name": "kIn"
},
{
"type": "FIELD",
"name": "iterable",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "SYMBOL",
"name": "kDo"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementTr"
},
{
"type": "BLANK"
}
]
}
}
]
},
"exceptionHandlerTr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kOn"
},
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "exception",
"content": {
"type": "SYMBOL",
"name": "typeref"
}
},
{
"type": "SYMBOL",
"name": "kDo"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementTr"
},
{
"type": "BLANK"
}
]
}
}
]
},
"exceptionElseTr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kElse"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementTr"
},
{
"type": "BLANK"
}
]
}
]
},
"_exceptionHandlersTr": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "exceptionHandler"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "exceptionHandler"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "exceptionHandlerTr"
},
"named": true,
"value": "exceptionHandler"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "exceptionElse"
},
{
"type": "BLANK"
}
]
}
]
},
"tryTr": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kTry"
},
{
"type": "FIELD",
"name": "try",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "statementsTr"
},
"named": true,
"value": "statements"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "except",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kExcept"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "statementsTr"
},
"named": true,
"value": "statements"
},
{
"type": "SYMBOL",
"name": "_exceptionHandlersTr"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "FIELD",
"name": "finally",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kFinally"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "statementsTr"
},
"named": true,
"value": "statements"
},
{
"type": "BLANK"
}
]
}
]
}
}
]
},
{
"type": "SYMBOL",
"name": "kEnd"
}
]
}
},
"caseCaseTr": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "label",
"content": {
"type": "SYMBOL",
"name": "caseLabel"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementTr"
},
{
"type": "BLANK"
}
]
}
}
]
},
"caseTr": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kCase"
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "kOf"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "caseCase"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "caseCaseTr"
},
"named": true,
"value": "caseCase"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kElse"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementsTr"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "kEnd"
}
]
}
},
"blockTr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kBegin"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementsTr"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "kEnd"
}
]
},
"asmTr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kAsm"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "asmBody"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "kEnd"
}
]
},
"withTr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kWith"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "entity",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "entity",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
{
"type": "SYMBOL",
"name": "kDo"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementTr"
},
{
"type": "BLANK"
}
]
}
}
]
},
"raiseTr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kRaise"
},
{
"type": "FIELD",
"name": "exception",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
"statementTr": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
]
},
"gotoTr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kGoto"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"_statementTr": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "assignment"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "varDef"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "statementTr"
},
"named": true,
"value": "statement"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "ifTr"
},
"named": true,
"value": "if"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "ifElseTr"
},
"named": true,
"value": "ifElse"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "whileTr"
},
"named": true,
"value": "while"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "repeatTr"
},
"named": true,
"value": "repeat"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "forTr"
},
"named": true,
"value": "for"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "foreachTr"
},
"named": true,
"value": "foreach"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "tryTr"
},
"named": true,
"value": "try"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "caseTr"
},
"named": true,
"value": "case"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "blockTr"
},
"named": true,
"value": "block"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "withTr"
},
"named": true,
"value": "with"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "raiseTr"
},
"named": true,
"value": "raise"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "gotoTr"
},
"named": true,
"value": "goto"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "asmTr"
},
"named": true,
"value": "asm"
}
]
},
"assignment": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "varAssignDef"
}
]
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kAssign"
},
{
"type": "SYMBOL",
"name": "kAssignAdd"
},
{
"type": "SYMBOL",
"name": "kAssignSub"
},
{
"type": "SYMBOL",
"name": "kAssignMul"
},
{
"type": "SYMBOL",
"name": "kAssignDiv"
}
]
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
"varAssignDef": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kVar"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "typeref"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"varDef": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kVar"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "typeref"
}
}
]
},
"label": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
}
]
},
"caseLabel": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "range"
}
]
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "range"
}
]
}
]
},
{
"type": "STRING",
"value": ":"
}
]
},
"_statements": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "varDef"
},
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "SYMBOL",
"name": "label"
}
]
}
},
"_statementsTr": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement"
},
{
"type": "SYMBOL",
"name": "label"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statementTr"
},
{
"type": "SYMBOL",
"name": "_statement"
}
]
}
]
},
"statements": {
"type": "SYMBOL",
"name": "_statements"
},
"statementsTr": {
"type": "SYMBOL",
"name": "_statementsTr"
},
"asmBody": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "PATTERN",
"value": "[0-9a-fA-F]"
},
{
"type": "PATTERN",
"value": "[.,:;+\\-*\\[\\]<>&%$]"
},
{
"type": "PATTERN",
"value": "\\([^*]|\\)"
}
]
}
},
"_expr": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_ref"
},
{
"type": "SYMBOL",
"name": "exprBinary"
},
{
"type": "SYMBOL",
"name": "exprUnary"
}
]
},
"_ref": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kSpecialize"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "kSpecialize"
},
"named": true,
"value": "identifier"
}
]
}
]
}
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "_literal"
},
{
"type": "SYMBOL",
"name": "inherited"
},
{
"type": "SYMBOL",
"name": "exprDot"
},
{
"type": "SYMBOL",
"name": "exprBrackets"
},
{
"type": "SYMBOL",
"name": "exprParens"
},
{
"type": "SYMBOL",
"name": "exprSubscript"
},
{
"type": "SYMBOL",
"name": "exprCall"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "exprDeref"
},
"named": true,
"value": "exprUnary"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "exprAs"
},
"named": true,
"value": "exprBinary"
},
{
"type": "SYMBOL",
"name": "exprTpl"
},
{
"type": "SYMBOL",
"name": "lambda"
}
]
},
"lambda": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kProcedure"
},
{
"type": "SYMBOL",
"name": "kFunction"
}
]
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "declArgs"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "typeref"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "local",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_definitions"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "blockTr"
},
"named": true,
"value": "block"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "asmTr"
},
"named": true,
"value": "asm"
}
]
}
}
]
},
"inherited": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kInherited"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "BLANK"
}
]
}
]
}
},
"exprDot": {
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_ref"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kDot"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_ref"
}
}
]
}
},
"exprDeref": {
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kHat"
}
}
]
}
},
"exprAs": {
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kAs"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
"exprTpl": {
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "entity",
"content": {
"type": "SYMBOL",
"name": "_ref"
}
},
{
"type": "SYMBOL",
"name": "kLt"
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
},
{
"type": "SYMBOL",
"name": "kGt"
}
]
}
},
"exprSubscript": {
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "entity",
"content": {
"type": "SYMBOL",
"name": "_ref"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "exprArgs"
}
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"exprCall": {
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "entity",
"content": {
"type": "SYMBOL",
"name": "_ref"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "exprArgs"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"legacyFormat": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
},
"exprArgs": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "legacyFormat"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "legacyFormat"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"exprBinary": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kLt"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_ref"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kLt"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kEq"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kNeq"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kGt"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kLte"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kGte"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kIn"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kIs"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kAdd"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kSub"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kOr"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kXor"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kMul"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kFdiv"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kDiv"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kMod"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kAnd"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kShl"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kShr"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
}
]
},
"exprUnary": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kNot"
}
},
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kAdd"
}
},
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kSub"
}
},
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kAt"
}
},
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
}
]
},
"exprParens": {
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"exprBrackets": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "range"
}
]
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "range"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"type": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "typeref"
},
{
"type": "SYMBOL",
"name": "declMetaClass"
},
{
"type": "SYMBOL",
"name": "declEnum"
},
{
"type": "SYMBOL",
"name": "declSet"
},
{
"type": "SYMBOL",
"name": "declArray"
},
{
"type": "SYMBOL",
"name": "declFile"
},
{
"type": "SYMBOL",
"name": "declString"
},
{
"type": "SYMBOL",
"name": "declProcRef"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\{\\$if[^}]*\\}",
"flags": "i"
},
"named": true,
"value": "pp"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "typeref"
},
{
"type": "SYMBOL",
"name": "declMetaClass"
},
{
"type": "SYMBOL",
"name": "declEnum"
},
{
"type": "SYMBOL",
"name": "declSet"
},
{
"type": "SYMBOL",
"name": "declArray"
},
{
"type": "SYMBOL",
"name": "declFile"
},
{
"type": "SYMBOL",
"name": "declString"
},
{
"type": "SYMBOL",
"name": "declProcRef"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\{\\$else[^}]*\\}",
"flags": "i"
},
"named": true,
"value": "pp"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "typeref"
},
{
"type": "SYMBOL",
"name": "declMetaClass"
},
{
"type": "SYMBOL",
"name": "declEnum"
},
{
"type": "SYMBOL",
"name": "declSet"
},
{
"type": "SYMBOL",
"name": "declArray"
},
{
"type": "SYMBOL",
"name": "declFile"
},
{
"type": "SYMBOL",
"name": "declString"
},
{
"type": "SYMBOL",
"name": "declProcRef"
}
]
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\{\\$end[^}]*\\}",
"flags": "i"
},
"named": true,
"value": "pp"
}
]
}
]
},
"typeref": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "_dummy",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kSpecialize"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "SYMBOL",
"name": "_typeref"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kDeprecated"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_typeref": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "typerefDot"
},
{
"type": "SYMBOL",
"name": "typerefTpl"
},
{
"type": "SYMBOL",
"name": "typerefPtr"
}
]
},
"typerefDot": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_typeref"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kDot"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_typeref"
}
}
]
}
},
"typerefTpl": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "entity",
"content": {
"type": "SYMBOL",
"name": "_typeref"
}
},
{
"type": "SYMBOL",
"name": "kLt"
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "typerefArgs"
}
},
{
"type": "SYMBOL",
"name": "kGt"
}
]
}
},
"typerefPtr": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kHat"
}
},
{
"type": "FIELD",
"name": "operand",
"content": {
"type": "SYMBOL",
"name": "_typeref"
}
}
]
}
},
"typerefArgs": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_typeref"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_typeref"
}
]
},
"genericDot": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_genericName"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kDot"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "_genericName"
}
}
]
}
},
"genericTpl": {
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "entity",
"content": {
"type": "SYMBOL",
"name": "_genericName"
}
},
{
"type": "SYMBOL",
"name": "kLt"
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SYMBOL",
"name": "genericArgs"
}
},
{
"type": "SYMBOL",
"name": "kGt"
}
]
}
},
"_genericName": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "genericDot"
},
{
"type": "SYMBOL",
"name": "genericTpl"
}
]
},
"genericArgs": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "genericArg"
},
{
"type": "STRING",
"value": ";"
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "genericArg"
}
]
},
"genericArg": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "typeref"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "defaultValue",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "defaultValue"
},
{
"type": "BLANK"
}
]
}
}
]
},
"_literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "literalString"
},
{
"type": "SYMBOL",
"name": "literalNumber"
},
{
"type": "SYMBOL",
"name": "kNil"
},
{
"type": "SYMBOL",
"name": "kTrue"
},
{
"type": "SYMBOL",
"name": "kFalse"
}
]
},
"literalString": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_literalString"
}
},
"_literalString": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "'[^']*'"
},
{
"type": "SYMBOL",
"name": "literalChar"
}
]
},
"literalChar": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "SYMBOL",
"name": "_literalInt"
}
]
},
"literalNumber": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_literalInt"
},
{
"type": "SYMBOL",
"name": "_literalFloat"
}
]
},
"_literalInt": {
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[-+]?[0-9]+"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "\\$[a-fA-F0-9]+"
}
}
]
},
"_literalFloat": {
"type": "PREC",
"value": 10,
"content": {
"type": "PATTERN",
"value": "[-+]?[0-9]*\\.?[0-9]+(e[+-]?[0-9]+)?"
}
},
"range": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": ".."
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
"_definitions": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_definition"
}
},
"_definition": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "declTypes"
},
{
"type": "SYMBOL",
"name": "declVars"
},
{
"type": "SYMBOL",
"name": "declConsts"
},
{
"type": "SYMBOL",
"name": "defProc"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "declProcFwd"
},
"named": true,
"value": "declProc"
},
{
"type": "SYMBOL",
"name": "declLabels"
},
{
"type": "SYMBOL",
"name": "declUses"
},
{
"type": "SYMBOL",
"name": "declExports"
},
{
"type": "PREC",
"value": -1,
"content": {
"type": "SYMBOL",
"name": "blockTr"
}
}
]
},
"defProc": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "header",
"content": {
"type": "SYMBOL",
"name": "declProc"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "local",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_definitions"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "blockTr"
},
"named": true,
"value": "block"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "asmTr"
},
"named": true,
"value": "asm"
}
]
}
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\{\\$if[^}]*\\}",
"flags": "i"
},
"named": true,
"value": "pp"
},
{
"type": "FIELD",
"name": "local",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_definitions"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "blockTr"
},
"named": true,
"value": "block"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "asmTr"
},
"named": true,
"value": "asm"
}
]
}
},
{
"type": "STRING",
"value": ";"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\{\\$else[^}]*\\}",
"flags": "i"
},
"named": true,
"value": "pp"
},
{
"type": "FIELD",
"name": "local",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_definitions"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "blockTr"
},
"named": true,
"value": "block"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "asmTr"
},
"named": true,
"value": "asm"
}
]
}
},
{
"type": "STRING",
"value": ";"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\{\\$end[^}]*\\}",
"flags": "i"
},
"named": true,
"value": "pp"
}
]
}
]
}
]
},
"declProcFwd": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_declProc"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kForward"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SYMBOL",
"name": "procExternal"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_procAttribute"
}
}
]
},
"_visibility": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kPublished"
},
{
"type": "SYMBOL",
"name": "kPublic"
},
{
"type": "SYMBOL",
"name": "kProtected"
},
{
"type": "SYMBOL",
"name": "kPrivate"
}
]
},
"_declarations": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "declTypes"
},
{
"type": "SYMBOL",
"name": "declVars"
},
{
"type": "SYMBOL",
"name": "declConsts"
},
{
"type": "SYMBOL",
"name": "declProc"
},
{
"type": "SYMBOL",
"name": "declProp"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "declProcFwd"
},
"named": true,
"value": "declProc"
},
{
"type": "SYMBOL",
"name": "declUses"
},
{
"type": "SYMBOL",
"name": "declLabels"
},
{
"type": "SYMBOL",
"name": "declExports"
}
]
}
},
"_classDeclarations": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "declTypes"
},
{
"type": "SYMBOL",
"name": "declVars"
},
{
"type": "SYMBOL",
"name": "declConsts"
},
{
"type": "SYMBOL",
"name": "declProc"
},
{
"type": "SYMBOL",
"name": "declProp"
}
]
}
},
"defaultValue": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kEq"
},
{
"type": "SYMBOL",
"name": "_initializer"
}
]
},
"declUses": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kUses"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "moduleName"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "moduleName"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"declExports": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kExports"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "declExport"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "declExport"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"declTypes": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kType"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "declType"
}
}
]
},
"declVars": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kClass"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kVar"
},
{
"type": "SYMBOL",
"name": "kThreadvar"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "declVar"
}
}
]
},
"declConsts": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kClass"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kConst"
},
{
"type": "SYMBOL",
"name": "kResourcestring"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "declConst"
}
}
]
},
"declType": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "rttiAttributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kGeneric"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "_genericName"
}
},
{
"type": "SYMBOL",
"name": "kEq"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kType"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "type"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
}
]
},
{
"type": "SYMBOL",
"name": "declClass"
},
{
"type": "SYMBOL",
"name": "declIntf"
},
{
"type": "SYMBOL",
"name": "declHelper"
}
]
}
},
{
"type": "STRING",
"value": ";"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_procAttribute"
}
}
]
},
"declProc": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "rttiAttributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declProc"
},
{
"type": "SYMBOL",
"name": "_declOperator"
}
]
}
]
},
"declVar": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "rttiAttributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kAbsolute"
},
{
"type": "SYMBOL",
"name": "_ref"
}
]
},
{
"type": "FIELD",
"name": "defaultValue",
"content": {
"type": "SYMBOL",
"name": "defaultValue"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_procAttribute"
},
{
"type": "SYMBOL",
"name": "procExternal"
}
]
}
}
]
},
"declConst": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "rttiAttributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "defaultValue",
"content": {
"type": "SYMBOL",
"name": "defaultValue"
}
},
{
"type": "STRING",
"value": ";"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_procAttribute"
}
}
]
},
"declLabels": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kLabel"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "declLabel"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "declLabel"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"declLabel": {
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
"declExport": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_genericName"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kName"
},
{
"type": "SYMBOL",
"name": "kIndex"
}
]
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
}
]
},
"declEnum": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "declEnumValue"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "declEnumValue"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"declEnumValue": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "defaultValue"
},
{
"type": "BLANK"
}
]
}
}
]
},
"declSet": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kSet"
},
{
"type": "SYMBOL",
"name": "kOf"
},
{
"type": "SYMBOL",
"name": "type"
}
]
},
"declArray": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kPacked"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "kArray"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "range"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "range"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "kOf"
},
{
"type": "SYMBOL",
"name": "type"
}
]
},
"declFile": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kFile"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kOf"
},
{
"type": "SYMBOL",
"name": "type"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"declString": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kString"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"declProcRef": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kReference"
},
{
"type": "SYMBOL",
"name": "kTo"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kProcedure"
},
{
"type": "SYMBOL",
"name": "kFunction"
}
]
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "declArgs"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "typeref"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kOf"
},
{
"type": "SYMBOL",
"name": "kObject"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"declMetaClass": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kClass"
},
{
"type": "SYMBOL",
"name": "kOf"
},
{
"type": "SYMBOL",
"name": "typeref"
}
]
},
"declClass": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kPacked"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kClass"
},
{
"type": "SYMBOL",
"name": "kRecord"
},
{
"type": "SYMBOL",
"name": "kObject"
},
{
"type": "SYMBOL",
"name": "kObjcclass"
},
{
"type": "SYMBOL",
"name": "kObjccategory"
},
{
"type": "SYMBOL",
"name": "kObjcprotocol"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kAbstract"
},
{
"type": "SYMBOL",
"name": "kSealed"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kExternal"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kName"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "parent",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "typeref"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "typeref"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declClass"
},
{
"type": "BLANK"
}
]
}
]
},
"declIntf": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kPacked"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kInterface"
},
{
"type": "SYMBOL",
"name": "kDispInterface"
}
]
},
{
"type": "FIELD",
"name": "parent",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "typeref"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "typeref"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "guid",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "guid"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declClass"
},
{
"type": "BLANK"
}
]
}
]
},
"declHelper": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kClass"
},
{
"type": "SYMBOL",
"name": "kRecord"
},
{
"type": "SYMBOL",
"name": "kType"
}
]
},
{
"type": "SYMBOL",
"name": "kHelper"
},
{
"type": "FIELD",
"name": "parent",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "typeref"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "typeref"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "SYMBOL",
"name": "kFor"
},
{
"type": "SYMBOL",
"name": "typeref"
},
{
"type": "SYMBOL",
"name": "_declClass"
}
]
},
"guid": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_ref"
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"_declClass": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declFields"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_classDeclarations"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "declSection"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "declVariant"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "kEnd"
}
]
},
"declSection": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kStrict"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_visibility"
},
{
"type": "SYMBOL",
"name": "kRequired"
},
{
"type": "SYMBOL",
"name": "kOptional"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declFields"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_classDeclarations"
},
{
"type": "BLANK"
}
]
}
]
},
"_declFields": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "declField"
}
},
"declField": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "rttiAttributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "FIELD",
"name": "defaultValue",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "defaultValue"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ";"
}
]
},
"declProp": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "rttiAttributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kClass"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "kProperty"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "declPropArgs"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kIndex"
},
{
"type": "FIELD",
"name": "index",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kDispId"
},
{
"type": "FIELD",
"name": "dispid",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kRead"
},
{
"type": "FIELD",
"name": "getter",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kWrite"
},
{
"type": "FIELD",
"name": "setter",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kImplements"
},
{
"type": "FIELD",
"name": "implements",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "BLANK"
}
]
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kDefault"
},
{
"type": "FIELD",
"name": "defaultValue",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kStored"
},
{
"type": "FIELD",
"name": "stored",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
{
"type": "SYMBOL",
"name": "kNodefault"
}
]
}
},
{
"type": "STRING",
"value": ";"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_procAttribute"
}
}
]
},
"declPropArgs": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "declArg"
},
{
"type": "STRING",
"value": ";"
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "declArg"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"declVariant": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kCase"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "typeref"
}
},
{
"type": "SYMBOL",
"name": "kOf"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "declVariantClause"
},
{
"type": "STRING",
"value": ";"
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "declVariantClause"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
}
},
"declVariantClause": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "caseLabel"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "declVariantField"
},
"named": true,
"value": "declField"
},
{
"type": "STRING",
"value": ";"
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "declVariantField"
},
"named": true,
"value": "declField"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "declVariant"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "declVariant"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"declVariantField": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "FIELD",
"name": "defaultValue",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "defaultValue"
},
{
"type": "BLANK"
}
]
}
}
]
},
"_declProc": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kGeneric"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kClass"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kProcedure"
},
{
"type": "SYMBOL",
"name": "kFunction"
},
{
"type": "SYMBOL",
"name": "kConstructor"
},
{
"type": "SYMBOL",
"name": "kDestructor"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "_genericName"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "declArgs"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "typeref"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "assign",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "defaultValue"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ";"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_procAttributeNoExt"
}
}
]
},
"_declOperator": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kClass"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "kOperator"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "_operatorName"
}
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "declArgs"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "resultName",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "FIELD",
"name": "assign",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "defaultValue"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ";"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_procAttributeNoExt"
}
}
]
},
"operatorDot": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "lhs",
"content": {
"type": "SYMBOL",
"name": "_genericName"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "kDot"
}
},
{
"type": "FIELD",
"name": "rhs",
"content": {
"type": "SYMBOL",
"name": "operatorName"
}
}
]
}
},
"_operatorName": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_genericName"
},
{
"type": "SYMBOL",
"name": "operatorName"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "operatorDot"
},
"named": true,
"value": "genericDot"
}
]
}
]
},
"operatorName": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kDot"
},
{
"type": "SYMBOL",
"name": "kLt"
},
{
"type": "SYMBOL",
"name": "kEq"
},
{
"type": "SYMBOL",
"name": "kNeq"
},
{
"type": "SYMBOL",
"name": "kGt"
},
{
"type": "SYMBOL",
"name": "kLte"
},
{
"type": "SYMBOL",
"name": "kGte"
},
{
"type": "SYMBOL",
"name": "kAdd"
},
{
"type": "SYMBOL",
"name": "kSub"
},
{
"type": "SYMBOL",
"name": "kMul"
},
{
"type": "SYMBOL",
"name": "kFdiv"
},
{
"type": "SYMBOL",
"name": "kDiv"
},
{
"type": "SYMBOL",
"name": "kMod"
},
{
"type": "SYMBOL",
"name": "kAssign"
},
{
"type": "SYMBOL",
"name": "kOr"
},
{
"type": "SYMBOL",
"name": "kXor"
},
{
"type": "SYMBOL",
"name": "kAnd"
},
{
"type": "SYMBOL",
"name": "kShl"
},
{
"type": "SYMBOL",
"name": "kShr"
},
{
"type": "SYMBOL",
"name": "kNot"
},
{
"type": "SYMBOL",
"name": "kIn"
}
]
},
"declArgs": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "declArg"
},
{
"type": "STRING",
"value": ";"
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "declArg"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"declArg": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kVar"
},
{
"type": "SYMBOL",
"name": "kConst"
},
{
"type": "SYMBOL",
"name": "kOut"
},
{
"type": "SYMBOL",
"name": "kConstref"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "FIELD",
"name": "defaultValue",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "defaultValue"
},
{
"type": "BLANK"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "type"
}
},
{
"type": "FIELD",
"name": "defaultValue",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "defaultValue"
},
{
"type": "BLANK"
}
]
}
}
]
}
]
},
"_procAttribute": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attribute",
"content": {
"type": "SYMBOL",
"name": "procAttribute"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attribute",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "procAttribute"
},
{
"type": "SYMBOL",
"name": "procExternal"
}
]
}
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "attribute",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "procAttribute"
},
{
"type": "SYMBOL",
"name": "procExternal"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
},
"_procAttributeNoExt": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attribute",
"content": {
"type": "SYMBOL",
"name": "procAttribute"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "attribute",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "procAttribute"
}
]
}
},
{
"type": "STRING",
"value": ";"
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "attribute",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "procAttribute"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
},
{
"type": "STRING",
"value": ";"
}
]
}
]
},
"procAttribute": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kStatic"
},
{
"type": "SYMBOL",
"name": "kVirtual"
},
{
"type": "SYMBOL",
"name": "kDynamic"
},
{
"type": "SYMBOL",
"name": "kAbstract"
},
{
"type": "SYMBOL",
"name": "kOverride"
},
{
"type": "SYMBOL",
"name": "kOverload"
},
{
"type": "SYMBOL",
"name": "kReintroduce"
},
{
"type": "SYMBOL",
"name": "kInline"
},
{
"type": "SYMBOL",
"name": "kStdcall"
},
{
"type": "SYMBOL",
"name": "kCdecl"
},
{
"type": "SYMBOL",
"name": "kPascal"
},
{
"type": "SYMBOL",
"name": "kRegister"
},
{
"type": "SYMBOL",
"name": "kSafecall"
},
{
"type": "SYMBOL",
"name": "kAssembler"
},
{
"type": "SYMBOL",
"name": "kNoreturn"
},
{
"type": "SYMBOL",
"name": "kLocal"
},
{
"type": "SYMBOL",
"name": "kFar"
},
{
"type": "SYMBOL",
"name": "kNear"
},
{
"type": "SYMBOL",
"name": "kDefault"
},
{
"type": "SYMBOL",
"name": "kNodefault"
},
{
"type": "SYMBOL",
"name": "kDeprecated"
},
{
"type": "SYMBOL",
"name": "kExperimental"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kMessage"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kName"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "kDeprecated"
}
]
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "SYMBOL",
"name": "kPlatform"
},
{
"type": "SYMBOL",
"name": "kUnimplemented"
},
{
"type": "SYMBOL",
"name": "kCppdecl"
},
{
"type": "SYMBOL",
"name": "kCvar"
},
{
"type": "SYMBOL",
"name": "kMwpascal"
},
{
"type": "SYMBOL",
"name": "kNostackframe"
},
{
"type": "SYMBOL",
"name": "kInterrupt"
},
{
"type": "SYMBOL",
"name": "kIocheck"
},
{
"type": "SYMBOL",
"name": "kHardfloat"
},
{
"type": "SYMBOL",
"name": "kSoftfloat"
},
{
"type": "SYMBOL",
"name": "kMs_abi_default"
},
{
"type": "SYMBOL",
"name": "kMs_abi_cdecl"
},
{
"type": "SYMBOL",
"name": "kSaveregisters"
},
{
"type": "SYMBOL",
"name": "kSysv_abi_default"
},
{
"type": "SYMBOL",
"name": "kSysv_abi_cdecl"
},
{
"type": "SYMBOL",
"name": "kVectorcall"
},
{
"type": "SYMBOL",
"name": "kVarargs"
},
{
"type": "SYMBOL",
"name": "kWinapi"
},
{
"type": "SYMBOL",
"name": "kPublic"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kExport"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kAlias"
},
{
"type": "STRING",
"value": ":"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kPublic"
},
{
"type": "SYMBOL",
"name": "kName"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "FIELD",
"name": "dispid",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kDispId"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
}
}
]
},
"rttiAttributes": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_ref"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_ref"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
}
},
"procExternal": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "kExternal"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kName"
},
{
"type": "SYMBOL",
"name": "kIndex"
}
]
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "kDelayed"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"_initializer": {
"type": "PREC",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr"
},
{
"type": "SYMBOL",
"name": "recInitializer"
},
{
"type": "SYMBOL",
"name": "arrInitializer"
}
]
}
]
}
},
"recInitializer": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "recInitializerField"
},
{
"type": "STRING",
"value": ";"
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "recInitializerField"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"recInitializerField": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_initializer"
}
}
]
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_initializer"
}
}
]
},
"arrInitializer": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "PREC",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_initializer"
},
{
"type": "STRING",
"value": ","
}
]
}
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_initializer"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"kProgram": {
"type": "PATTERN",
"value": "program",
"flags": "i"
},
"kLibrary": {
"type": "PATTERN",
"value": "library",
"flags": "i"
},
"kUnit": {
"type": "PATTERN",
"value": "unit",
"flags": "i"
},
"kUses": {
"type": "PATTERN",
"value": "uses",
"flags": "i"
},
"kInterface": {
"type": "PATTERN",
"value": "interface",
"flags": "i"
},
"kDispInterface": {
"type": "PATTERN",
"value": "dispinterface",
"flags": "i"
},
"kImplementation": {
"type": "PATTERN",
"value": "implementation",
"flags": "i"
},
"kInitialization": {
"type": "PATTERN",
"value": "initialization",
"flags": "i"
},
"kFinalization": {
"type": "PATTERN",
"value": "finalization",
"flags": "i"
},
"kEndDot": {
"type": "STRING",
"value": "."
},
"kBegin": {
"type": "PATTERN",
"value": "begin",
"flags": "i"
},
"kEnd": {
"type": "PATTERN",
"value": "end",
"flags": "i"
},
"kAsm": {
"type": "PATTERN",
"value": "asm",
"flags": "i"
},
"kVar": {
"type": "PATTERN",
"value": "var",
"flags": "i"
},
"kThreadvar": {
"type": "PATTERN",
"value": "threadvar",
"flags": "i"
},
"kConst": {
"type": "PATTERN",
"value": "const",
"flags": "i"
},
"kConstref": {
"type": "PATTERN",
"value": "constref",
"flags": "i"
},
"kResourcestring": {
"type": "PATTERN",
"value": "resourcestring",
"flags": "i"
},
"kOut": {
"type": "PATTERN",
"value": "out",
"flags": "i"
},
"kType": {
"type": "PATTERN",
"value": "type",
"flags": "i"
},
"kLabel": {
"type": "PATTERN",
"value": "label",
"flags": "i"
},
"kExports": {
"type": "PATTERN",
"value": "exports",
"flags": "i"
},
"kAbsolute": {
"type": "PATTERN",
"value": "absolute",
"flags": "i"
},
"kProperty": {
"type": "PATTERN",
"value": "property",
"flags": "i"
},
"kRead": {
"type": "PATTERN",
"value": "read",
"flags": "i"
},
"kWrite": {
"type": "PATTERN",
"value": "write",
"flags": "i"
},
"kImplements": {
"type": "PATTERN",
"value": "implements",
"flags": "i"
},
"kDefault": {
"type": "PATTERN",
"value": "default",
"flags": "i"
},
"kNodefault": {
"type": "PATTERN",
"value": "nodefault",
"flags": "i"
},
"kStored": {
"type": "PATTERN",
"value": "stored",
"flags": "i"
},
"kIndex": {
"type": "PATTERN",
"value": "index",
"flags": "i"
},
"kDispId": {
"type": "PATTERN",
"value": "dispid",
"flags": "i"
},
"kClass": {
"type": "PATTERN",
"value": "class",
"flags": "i"
},
"kObject": {
"type": "PATTERN",
"value": "object",
"flags": "i"
},
"kRecord": {
"type": "PATTERN",
"value": "record",
"flags": "i"
},
"kObjcclass": {
"type": "PATTERN",
"value": "objcclass",
"flags": "i"
},
"kObjccategory": {
"type": "PATTERN",
"value": "objccategory",
"flags": "i"
},
"kObjcprotocol": {
"type": "PATTERN",
"value": "objcprotocol",
"flags": "i"
},
"kArray": {
"type": "PATTERN",
"value": "array",
"flags": "i"
},
"kFile": {
"type": "PATTERN",
"value": "file",
"flags": "i"
},
"kString": {
"type": "PATTERN",
"value": "string",
"flags": "i"
},
"kSet": {
"type": "PATTERN",
"value": "set",
"flags": "i"
},
"kOf": {
"type": "PATTERN",
"value": "of",
"flags": "i"
},
"kHelper": {
"type": "PATTERN",
"value": "helper",
"flags": "i"
},
"kPacked": {
"type": "PATTERN",
"value": "packed",
"flags": "i"
},
"kGeneric": {
"type": "PATTERN",
"value": "generic",
"flags": "i"
},
"kSpecialize": {
"type": "PATTERN",
"value": "specialize",
"flags": "i"
},
"kDot": {
"type": "STRING",
"value": "."
},
"kLt": {
"type": "STRING",
"value": "<"
},
"kEq": {
"type": "STRING",
"value": "="
},
"kNeq": {
"type": "STRING",
"value": "<>"
},
"kGt": {
"type": "STRING",
"value": ">"
},
"kLte": {
"type": "STRING",
"value": "<="
},
"kGte": {
"type": "STRING",
"value": ">="
},
"kAdd": {
"type": "STRING",
"value": "+"
},
"kSub": {
"type": "STRING",
"value": "-"
},
"kMul": {
"type": "STRING",
"value": "*"
},
"kFdiv": {
"type": "STRING",
"value": "/"
},
"kAt": {
"type": "STRING",
"value": "@"
},
"kHat": {
"type": "STRING",
"value": "^"
},
"kAssign": {
"type": "STRING",
"value": ":="
},
"kAssignAdd": {
"type": "STRING",
"value": "+="
},
"kAssignSub": {
"type": "STRING",
"value": "-="
},
"kAssignMul": {
"type": "STRING",
"value": "*="
},
"kAssignDiv": {
"type": "STRING",
"value": "/="
},
"kOr": {
"type": "PATTERN",
"value": "or",
"flags": "i"
},
"kXor": {
"type": "PATTERN",
"value": "xor",
"flags": "i"
},
"kDiv": {
"type": "PATTERN",
"value": "div",
"flags": "i"
},
"kMod": {
"type": "PATTERN",
"value": "mod",
"flags": "i"
},
"kAnd": {
"type": "PATTERN",
"value": "and",
"flags": "i"
},
"kShl": {
"type": "PATTERN",
"value": "shl",
"flags": "i"
},
"kShr": {
"type": "PATTERN",
"value": "shr",
"flags": "i"
},
"kNot": {
"type": "PATTERN",
"value": "not",
"flags": "i"
},
"kIs": {
"type": "PATTERN",
"value": "is",
"flags": "i"
},
"kAs": {
"type": "PATTERN",
"value": "as",
"flags": "i"
},
"kIn": {
"type": "PATTERN",
"value": "in",
"flags": "i"
},
"kFor": {
"type": "PATTERN",
"value": "for",
"flags": "i"
},
"kTo": {
"type": "PATTERN",
"value": "to",
"flags": "i"
},
"kDownto": {
"type": "PATTERN",
"value": "downto",
"flags": "i"
},
"kIf": {
"type": "PATTERN",
"value": "if",
"flags": "i"
},
"kThen": {
"type": "PATTERN",
"value": "then",
"flags": "i"
},
"kElse": {
"type": "PATTERN",
"value": "else",
"flags": "i"
},
"kDo": {
"type": "PATTERN",
"value": "do",
"flags": "i"
},
"kWhile": {
"type": "PATTERN",
"value": "while",
"flags": "i"
},
"kRepeat": {
"type": "PATTERN",
"value": "repeat",
"flags": "i"
},
"kUntil": {
"type": "PATTERN",
"value": "until",
"flags": "i"
},
"kTry": {
"type": "PATTERN",
"value": "try",
"flags": "i"
},
"kExcept": {
"type": "PATTERN",
"value": "except",
"flags": "i"
},
"kFinally": {
"type": "PATTERN",
"value": "finally",
"flags": "i"
},
"kRaise": {
"type": "PATTERN",
"value": "raise",
"flags": "i"
},
"kOn": {
"type": "PATTERN",
"value": "on",
"flags": "i"
},
"kCase": {
"type": "PATTERN",
"value": "case",
"flags": "i"
},
"kWith": {
"type": "PATTERN",
"value": "with",
"flags": "i"
},
"kGoto": {
"type": "PATTERN",
"value": "goto",
"flags": "i"
},
"kFunction": {
"type": "PATTERN",
"value": "function",
"flags": "i"
},
"kProcedure": {
"type": "PATTERN",
"value": "procedure",
"flags": "i"
},
"kConstructor": {
"type": "PATTERN",
"value": "constructor",
"flags": "i"
},
"kDestructor": {
"type": "PATTERN",
"value": "destructor",
"flags": "i"
},
"kOperator": {
"type": "PATTERN",
"value": "operator",
"flags": "i"
},
"kReference": {
"type": "PATTERN",
"value": "reference",
"flags": "i"
},
"kPublished": {
"type": "PATTERN",
"value": "published",
"flags": "i"
},
"kPublic": {
"type": "PATTERN",
"value": "public",
"flags": "i"
},
"kProtected": {
"type": "PATTERN",
"value": "protected",
"flags": "i"
},
"kPrivate": {
"type": "PATTERN",
"value": "private",
"flags": "i"
},
"kStrict": {
"type": "PATTERN",
"value": "strict",
"flags": "i"
},
"kRequired": {
"type": "PATTERN",
"value": "required",
"flags": "i"
},
"kOptional": {
"type": "PATTERN",
"value": "optional",
"flags": "i"
},
"kForward": {
"type": "PATTERN",
"value": "forward",
"flags": "i"
},
"kStatic": {
"type": "PATTERN",
"value": "static",
"flags": "i"
},
"kVirtual": {
"type": "PATTERN",
"value": "virtual",
"flags": "i"
},
"kAbstract": {
"type": "PATTERN",
"value": "abstract",
"flags": "i"
},
"kSealed": {
"type": "PATTERN",
"value": "seled",
"flags": "i"
},
"kDynamic": {
"type": "PATTERN",
"value": "dynamic",
"flags": "i"
},
"kOverride": {
"type": "PATTERN",
"value": "override",
"flags": "i"
},
"kOverload": {
"type": "PATTERN",
"value": "overload",
"flags": "i"
},
"kReintroduce": {
"type": "PATTERN",
"value": "reintroduce",
"flags": "i"
},
"kInherited": {
"type": "PATTERN",
"value": "inherited",
"flags": "i"
},
"kInline": {
"type": "PATTERN",
"value": "inline",
"flags": "i"
},
"kStdcall": {
"type": "PATTERN",
"value": "stdcall",
"flags": "i"
},
"kCdecl": {
"type": "PATTERN",
"value": "cdecl",
"flags": "i"
},
"kCppdecl": {
"type": "PATTERN",
"value": "cppdecl",
"flags": "i"
},
"kPascal": {
"type": "PATTERN",
"value": "pascal",
"flags": "i"
},
"kRegister": {
"type": "PATTERN",
"value": "register",
"flags": "i"
},
"kMwpascal": {
"type": "PATTERN",
"value": "mwpascal",
"flags": "i"
},
"kExternal": {
"type": "PATTERN",
"value": "external",
"flags": "i"
},
"kName": {
"type": "PATTERN",
"value": "name",
"flags": "i"
},
"kMessage": {
"type": "PATTERN",
"value": "message",
"flags": "i"
},
"kDeprecated": {
"type": "PATTERN",
"value": "deprecated",
"flags": "i"
},
"kExperimental": {
"type": "PATTERN",
"value": "experimental",
"flags": "i"
},
"kPlatform": {
"type": "PATTERN",
"value": "platform",
"flags": "i"
},
"kUnimplemented": {
"type": "PATTERN",
"value": "unimplemented",
"flags": "i"
},
"kCvar": {
"type": "PATTERN",
"value": "cvar",
"flags": "i"
},
"kExport": {
"type": "PATTERN",
"value": "export",
"flags": "i"
},
"kFar": {
"type": "PATTERN",
"value": "far",
"flags": "i"
},
"kNear": {
"type": "PATTERN",
"value": "near",
"flags": "i"
},
"kSafecall": {
"type": "PATTERN",
"value": "safecal",
"flags": "i"
},
"kAssembler": {
"type": "PATTERN",
"value": "assembler",
"flags": "i"
},
"kNostackframe": {
"type": "PATTERN",
"value": "nostackframe",
"flags": "i"
},
"kInterrupt": {
"type": "PATTERN",
"value": "interrupt",
"flags": "i"
},
"kNoreturn": {
"type": "PATTERN",
"value": "noreturn",
"flags": "i"
},
"kIocheck": {
"type": "PATTERN",
"value": "iocheck",
"flags": "i"
},
"kLocal": {
"type": "PATTERN",
"value": "local",
"flags": "i"
},
"kHardfloat": {
"type": "PATTERN",
"value": "hardfloat",
"flags": "i"
},
"kSoftfloat": {
"type": "PATTERN",
"value": "softfloat",
"flags": "i"
},
"kMs_abi_default": {
"type": "PATTERN",
"value": "ms_abi_default",
"flags": "i"
},
"kMs_abi_cdecl": {
"type": "PATTERN",
"value": "ms_abi_cdecl",
"flags": "i"
},
"kSaveregisters": {
"type": "PATTERN",
"value": "saveregisters",
"flags": "i"
},
"kSysv_abi_default": {
"type": "PATTERN",
"value": "sysv_abi_default",
"flags": "i"
},
"kSysv_abi_cdecl": {
"type": "PATTERN",
"value": "sysv_abi_cdecl",
"flags": "i"
},
"kVectorcall": {
"type": "PATTERN",
"value": "vectorcall",
"flags": "i"
},
"kVarargs": {
"type": "PATTERN",
"value": "varargs",
"flags": "i"
},
"kWinapi": {
"type": "PATTERN",
"value": "winapi",
"flags": "i"
},
"kAlias": {
"type": "PATTERN",
"value": "alias",
"flags": "i"
},
"kDelayed": {
"type": "PATTERN",
"value": "delayed",
"flags": "i"
},
"kNil": {
"type": "PATTERN",
"value": "nil",
"flags": "i"
},
"kTrue": {
"type": "PATTERN",
"value": "true",
"flags": "i"
},
"kFalse": {
"type": "PATTERN",
"value": "false",
"flags": "i"
},
"kIfdef": {
"type": "PATTERN",
"value": "ifdef",
"flags": "i"
},
"kIfndef": {
"type": "PATTERN",
"value": "ifndef",
"flags": "i"
},
"kEndif": {
"type": "PATTERN",
"value": "endif",
"flags": "i"
},
"identifier": {
"type": "PATTERN",
"value": "[&]?[a-zA-Z_]+[0-9_a-zA-Z]*"
},
"_space": {
"type": "PATTERN",
"value": "[\\s\\r\\n\\t]+"
},
"pp": {
"type": "PATTERN",
"value": "\\{\\$[^}]*\\}"
},
"comment": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": ".*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "PATTERN",
"value": "([^$}][^}]*)?"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "PATTERN",
"value": "[(][*]([^*]*[*]+[^)*])*[^*]*[*]+[)]"
}
]
}
}
},
"extras": [
{
"type": "SYMBOL",
"name": "_space"
},
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "pp"
}
],
"conflicts": [
[
"_declProc"
],
[
"_declOperator"
],
[
"declConst"
],
[
"declVar"
],
[
"declType"
],
[
"declProp"
],
[
"declProcFwd"
],
[
"declVars"
],
[
"declConsts"
],
[
"declTypes"
]
],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}