khulnasoft's picture
Upload 26 files
0c77d6e verified
raw
history blame
74.3 kB
{
"name": "ql",
"word": "_lower_id",
"rules": {
"ql": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "moduleMember"
}
},
"module": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "module"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "moduleName"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "parameter",
"content": {
"type": "SYMBOL",
"name": "moduleParam"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "parameter",
"content": {
"type": "SYMBOL",
"name": "moduleParam"
}
}
]
}
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "implements"
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "implements",
"content": {
"type": "SYMBOL",
"name": "signatureExpr"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "implements",
"content": {
"type": "SYMBOL",
"name": "signatureExpr"
}
}
]
}
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "moduleMember"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SYMBOL",
"name": "moduleAliasBody"
}
]
}
]
},
"moduleMember": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "annotation"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "importDirective"
},
{
"type": "SYMBOL",
"name": "classlessPredicate"
},
{
"type": "SYMBOL",
"name": "dataclass"
},
{
"type": "SYMBOL",
"name": "datatype"
},
{
"type": "SYMBOL",
"name": "select"
},
{
"type": "SYMBOL",
"name": "module"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "qldoc"
}
]
},
"importDirective": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "SYMBOL",
"name": "importModuleExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "as"
},
{
"type": "SYMBOL",
"name": "moduleName"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"moduleAliasBody": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "moduleExpr"
},
{
"type": "STRING",
"value": ";"
}
]
},
"predicateAliasBody": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "predicateExpr"
},
{
"type": "STRING",
"value": ";"
}
]
},
"typeAliasBody": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "typeExpr"
},
{
"type": "STRING",
"value": ";"
}
]
},
"typeUnionBody": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "typeExpr"
},
{
"type": "STRING",
"value": "or"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "typeExpr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "or"
},
{
"type": "SYMBOL",
"name": "typeExpr"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"classlessPredicate": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "returnType",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "predicate"
},
{
"type": "SYMBOL",
"name": "typeExpr"
}
]
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "predicateName"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "varDecl"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "varDecl"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "_optbody"
}
]
},
{
"type": "SYMBOL",
"name": "predicateAliasBody"
}
]
}
]
},
"datatype": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "newtype"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "className"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "datatypeBranches"
}
]
},
"datatypeBranches": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "datatypeBranch"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "or"
},
{
"type": "SYMBOL",
"name": "datatypeBranch"
}
]
}
}
]
},
"datatypeBranch": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "qldoc"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "annotation"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "className"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "varDecl"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "varDecl"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "body"
},
{
"type": "BLANK"
}
]
}
]
},
"select": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "from"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "varDecl"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "varDecl"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "where"
},
{
"type": "SYMBOL",
"name": "_exprOrTerm"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "select"
},
{
"type": "SYMBOL",
"name": "asExprs"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "orderBys"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"dataclass": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "class"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "className"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "extends",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "extends"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "typeExpr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "typeExpr"
}
]
}
}
]
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "instanceof",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "instanceof"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "typeExpr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "typeExpr"
}
]
}
}
]
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "classMember"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "typeAliasBody"
},
{
"type": "SYMBOL",
"name": "typeUnionBody"
}
]
}
]
},
"classMember": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "annotation"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "charpred"
},
{
"type": "SYMBOL",
"name": "memberPredicate"
},
{
"type": "SYMBOL",
"name": "field"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "qldoc"
}
]
},
"charpred": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "className"
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"memberPredicate": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "returnType",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "predicate"
},
{
"type": "SYMBOL",
"name": "typeExpr"
}
]
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "predicateName"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "varDecl"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "varDecl"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "_optbody"
}
]
},
"field": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "varDecl"
},
{
"type": "STRING",
"value": ";"
}
]
},
"_optbody": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "empty"
},
{
"type": "SYMBOL",
"name": "body"
},
{
"type": "SYMBOL",
"name": "higherOrderTerm"
}
]
},
"empty": {
"type": "STRING",
"value": ";"
},
"body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "_exprOrTerm"
},
{
"type": "STRING",
"value": "}"
}
]
},
"higherOrderTerm": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "literalId"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "predicateExpr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "predicateExpr"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_call_arg"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_call_arg"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"special_call": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "specialId"
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
},
"prefix_cast": {
"type": "PREC_DYNAMIC",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "typeExpr"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "SYMBOL",
"name": "_exprOrTerm"
}
]
}
},
"unary_expr": {
"type": "PREC_LEFT",
"value": 9,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "unop"
},
{
"type": "SYMBOL",
"name": "_exprOrTerm"
}
]
}
},
"mul_expr": {
"type": "PREC_LEFT",
"value": 9,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "SYMBOL",
"name": "mulop"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
}
]
}
},
"add_expr": {
"type": "PREC_LEFT",
"value": 8,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "SYMBOL",
"name": "addop"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
}
]
}
},
"in_expr": {
"type": "PREC_LEFT",
"value": 7,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "STRING",
"value": "in"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_primary"
}
}
]
}
},
"comp_term": {
"type": "PREC_LEFT",
"value": 6,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "SYMBOL",
"name": "compop"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
}
]
}
},
"instance_of": {
"type": "PREC_LEFT",
"value": 5,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_exprOrTerm"
},
{
"type": "STRING",
"value": "instanceof"
},
{
"type": "SYMBOL",
"name": "typeExpr"
}
]
}
},
"negation": {
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "not"
},
{
"type": "SYMBOL",
"name": "_exprOrTerm"
}
]
}
},
"if_term": {
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "FIELD",
"name": "cond",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "STRING",
"value": "then"
},
{
"type": "FIELD",
"name": "first",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "STRING",
"value": "else"
},
{
"type": "FIELD",
"name": "second",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
}
]
}
},
"conjunction": {
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "STRING",
"value": "and"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
}
]
}
},
"disjunction": {
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "STRING",
"value": "or"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
}
]
}
},
"implication": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "STRING",
"value": "implies"
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
}
]
}
},
"quantified": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "quantifier"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "varDecl"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "varDecl"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "FIELD",
"name": "range",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "FIELD",
"name": "formula",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "FIELD",
"name": "expr",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"specialId": {
"type": "STRING",
"value": "none"
},
"quantifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "exists"
},
{
"type": "STRING",
"value": "forall"
},
{
"type": "STRING",
"value": "forex"
}
]
},
"_call_arg": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_exprOrTerm"
},
{
"type": "SYMBOL",
"name": "underscore"
}
]
},
"underscore": {
"type": "STRING",
"value": "_"
},
"qualifiedRhs": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "predicateName"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "closure"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_call_arg"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_call_arg"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "typeExpr"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"call_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_call_arg"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_call_arg"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"unqual_agg_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "varDecl"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "varDecl"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "|"
},
{
"type": "FIELD",
"name": "guard",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_exprOrTerm"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "FIELD",
"name": "asExprs",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "SYMBOL",
"name": "asExprs"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"_call_or_unqual_agg_body": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "call_body"
},
{
"type": "SYMBOL",
"name": "unqual_agg_body"
}
]
},
"call_or_unqual_agg_expr": {
"type": "PREC_DYNAMIC",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "aritylessPredicateExpr"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "closure"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_call_or_unqual_agg_body"
}
]
}
},
"qualified_expr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_primary"
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "qualifiedRhs"
}
]
},
"super_ref": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "typeExpr"
},
{
"type": "STRING",
"value": "."
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "super"
}
]
},
"full_aggregate_body": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "varDecl"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "varDecl"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "FIELD",
"name": "guard",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_exprOrTerm"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "|"
},
{
"type": "FIELD",
"name": "asExprs",
"content": {
"type": "SYMBOL",
"name": "asExprs"
}
},
{
"type": "FIELD",
"name": "orderBys",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "orderBys"
},
{
"type": "BLANK"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "varDecl"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "varDecl"
}
]
}
}
]
}
]
},
"expr_aggregate_body": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "asExprs",
"content": {
"type": "SYMBOL",
"name": "asExprs"
}
},
{
"type": "FIELD",
"name": "orderBys",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "orderBys"
},
{
"type": "BLANK"
}
]
}
}
]
},
"aggregate": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "aggId"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_exprOrTerm"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_exprOrTerm"
}
]
}
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "full_aggregate_body"
},
{
"type": "SYMBOL",
"name": "expr_aggregate_body"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"range": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "lower",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "STRING",
"value": ".."
},
{
"type": "FIELD",
"name": "upper",
"content": {
"type": "SYMBOL",
"name": "_exprOrTerm"
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"set_literal": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_exprOrTerm"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_exprOrTerm"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"par_expr": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_exprOrTerm"
},
{
"type": "STRING",
"value": ")"
}
]
},
"expr_annotation": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "annotName"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "annot_arg",
"content": {
"type": "SYMBOL",
"name": "annotName"
}
},
{
"type": "STRING",
"value": "]"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_exprOrTerm"
},
{
"type": "STRING",
"value": ")"
}
]
},
"_exprOrTerm": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "special_call"
},
{
"type": "SYMBOL",
"name": "prefix_cast"
},
{
"type": "SYMBOL",
"name": "_primary"
},
{
"type": "SYMBOL",
"name": "unary_expr"
},
{
"type": "SYMBOL",
"name": "mul_expr"
},
{
"type": "SYMBOL",
"name": "add_expr"
},
{
"type": "SYMBOL",
"name": "in_expr"
},
{
"type": "SYMBOL",
"name": "comp_term"
},
{
"type": "SYMBOL",
"name": "instance_of"
},
{
"type": "SYMBOL",
"name": "negation"
},
{
"type": "SYMBOL",
"name": "if_term"
},
{
"type": "SYMBOL",
"name": "conjunction"
},
{
"type": "SYMBOL",
"name": "disjunction"
},
{
"type": "SYMBOL",
"name": "implication"
},
{
"type": "SYMBOL",
"name": "quantified"
}
]
},
"_primary": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "call_or_unqual_agg_expr"
},
{
"type": "SYMBOL",
"name": "qualified_expr"
},
{
"type": "SYMBOL",
"name": "literal"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "SYMBOL",
"name": "super_ref"
},
{
"type": "SYMBOL",
"name": "aggregate"
},
{
"type": "SYMBOL",
"name": "range"
},
{
"type": "SYMBOL",
"name": "set_literal"
},
{
"type": "SYMBOL",
"name": "par_expr"
},
{
"type": "SYMBOL",
"name": "expr_annotation"
}
]
},
"literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "integer"
},
{
"type": "SYMBOL",
"name": "float"
},
{
"type": "SYMBOL",
"name": "bool"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
"bool": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "true"
},
{
"type": "SYMBOL",
"name": "false"
}
]
},
"variable": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "this"
},
{
"type": "SYMBOL",
"name": "result"
},
{
"type": "SYMBOL",
"name": "varName"
}
]
},
"compop": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "!="
},
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": ">="
}
]
},
"unop": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
"mulop": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "%"
}
]
},
"addop": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
},
"closure": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "+"
}
]
},
"direction": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "asc"
},
{
"type": "STRING",
"value": "desc"
}
]
},
"varDecl": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "typeExpr"
},
{
"type": "SYMBOL",
"name": "varName"
}
]
},
"moduleParam": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "signature",
"content": {
"type": "SYMBOL",
"name": "signatureExpr"
}
},
{
"type": "FIELD",
"name": "parameter",
"content": {
"type": "SYMBOL",
"name": "simpleId"
}
}
]
},
"asExprs": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "asExpr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "asExpr"
}
]
}
}
]
},
"asExpr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_exprOrTerm"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "as"
},
{
"type": "SYMBOL",
"name": "varName"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"orderBys": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "order"
},
{
"type": "STRING",
"value": "by"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "orderBy"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "orderBy"
}
]
}
}
]
}
]
},
"orderBy": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_exprOrTerm"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "direction"
},
{
"type": "BLANK"
}
]
}
]
},
"qldoc": {
"type": "PATTERN",
"value": "\\/\\*\\*[^*]*\\*+([^/*][^*]*\\*+)*\\/"
},
"literalId": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_lower_id"
},
{
"type": "SYMBOL",
"name": "_upper_id"
}
]
},
"annotation": {
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "annotName"
}
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "annotName"
}
},
{
"type": "STRING",
"value": "["
},
{
"type": "FIELD",
"name": "args",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "annotArg"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "annotArg"
}
]
}
}
]
}
},
{
"type": "STRING",
"value": "]"
}
]
}
]
},
"annotName": {
"type": "SYMBOL",
"name": "_lower_id"
},
"annotArg": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "simpleId"
},
{
"type": "SYMBOL",
"name": "this"
},
{
"type": "SYMBOL",
"name": "result"
}
]
},
"moduleName": {
"type": "SYMBOL",
"name": "simpleId"
},
"importModuleExpr": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "qualName",
"content": {
"type": "SYMBOL",
"name": "simpleId"
}
},
{
"type": "STRING",
"value": "."
}
]
}
},
{
"type": "SYMBOL",
"name": "moduleExpr"
}
]
},
"moduleExpr": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "simpleId"
},
{
"type": "SYMBOL",
"name": "moduleInstantiation"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "moduleExpr"
},
{
"type": "STRING",
"value": "::"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "simpleId"
},
{
"type": "SYMBOL",
"name": "moduleInstantiation"
}
]
}
}
]
}
]
},
"moduleInstantiation": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "moduleName"
}
},
{
"type": "STRING",
"value": "<"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "signatureExpr"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "signatureExpr"
}
]
}
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
"primitiveType": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "boolean"
},
{
"type": "STRING",
"value": "date"
},
{
"type": "STRING",
"value": "float"
},
{
"type": "STRING",
"value": "int"
},
{
"type": "STRING",
"value": "string"
}
]
},
"simpleId": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_lower_id"
},
{
"type": "SYMBOL",
"name": "_upper_id"
}
]
},
"className": {
"type": "SYMBOL",
"name": "_upper_id"
},
"dbtype": {
"type": "PATTERN",
"value": "@[a-z][A-Za-z0-9_]*"
},
"typeExpr": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "qualifier",
"content": {
"type": "SYMBOL",
"name": "moduleExpr"
}
},
{
"type": "STRING",
"value": "::"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "className"
}
}
]
},
{
"type": "SYMBOL",
"name": "dbtype"
},
{
"type": "SYMBOL",
"name": "primitiveType"
}
]
},
"signatureExpr": {
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type_expr",
"content": {
"type": "SYMBOL",
"name": "typeExpr"
}
},
{
"type": "FIELD",
"name": "mod_expr",
"content": {
"type": "SYMBOL",
"name": "moduleExpr"
}
},
{
"type": "FIELD",
"name": "predicate",
"content": {
"type": "SYMBOL",
"name": "predicateExpr"
}
}
]
},
"predicateName": {
"type": "SYMBOL",
"name": "_lower_id"
},
"aritylessPredicateExpr": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "qualifier",
"content": {
"type": "SYMBOL",
"name": "moduleExpr"
}
},
{
"type": "STRING",
"value": "::"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "literalId"
}
}
]
},
"predicateExpr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "aritylessPredicateExpr"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "SYMBOL",
"name": "integer"
}
]
},
"varName": {
"type": "SYMBOL",
"name": "simpleId"
},
"aggId": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "avg"
},
{
"type": "STRING",
"value": "concat"
},
{
"type": "STRING",
"value": "strictconcat"
},
{
"type": "STRING",
"value": "count"
},
{
"type": "STRING",
"value": "max"
},
{
"type": "STRING",
"value": "min"
},
{
"type": "STRING",
"value": "rank"
},
{
"type": "STRING",
"value": "strictcount"
},
{
"type": "STRING",
"value": "strictsum"
},
{
"type": "STRING",
"value": "sum"
},
{
"type": "STRING",
"value": "any"
},
{
"type": "STRING",
"value": "unique"
}
]
},
"_upper_id": {
"type": "PATTERN",
"value": "[A-Z][A-Za-z0-9_]*"
},
"_lower_id": {
"type": "PATTERN",
"value": "[a-z][A-Za-z0-9_]*"
},
"integer": {
"type": "PATTERN",
"value": "[0-9]+"
},
"float": {
"type": "PATTERN",
"value": "[0-9]+\\.[0-9]+"
},
"string": {
"type": "PATTERN",
"value": "\"([^\"\\\\\\r\\n\\t]|\\\\[\"\\\\nrt])*\""
},
"line_comment": {
"type": "PATTERN",
"value": "\\/\\/[^\\r\\n]*"
},
"block_comment": {
"type": "PATTERN",
"value": "\\/\\*([^*]+\\*+([^/*][^*]*\\*+)*|\\*)\\/"
},
"false": {
"type": "STRING",
"value": "false"
},
"predicate": {
"type": "STRING",
"value": "predicate"
},
"result": {
"type": "STRING",
"value": "result"
},
"super": {
"type": "STRING",
"value": "super"
},
"this": {
"type": "STRING",
"value": "this"
},
"true": {
"type": "STRING",
"value": "true"
}
},
"extras": [
{
"type": "PATTERN",
"value": "[ \\t\\r\\n]"
},
{
"type": "SYMBOL",
"name": "line_comment"
},
{
"type": "SYMBOL",
"name": "block_comment"
}
],
"conflicts": [
[
"simpleId",
"className"
],
[
"simpleId",
"literalId"
],
[
"moduleName",
"varName"
],
[
"simpleId",
"moduleInstantiation"
],
[
"className",
"moduleInstantiation"
]
],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}