Spaces:
Runtime error
Runtime error
{ | |
"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": [] | |
} | |