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