====== eparen ====== select (f).getAThing() --- (ql (moduleMember (select (asExprs (asExpr (qualified_expr (par_expr (variable (varName (simpleId)))) (qualifiedRhs (predicateName)))))))) ===== super ===== select super.foo(), module::Foo.super.foo() --- (ql (moduleMember (select (asExprs (asExpr (qualified_expr (super_ref (super)) (qualifiedRhs (predicateName)))) (asExpr (qualified_expr (super_ref (typeExpr (moduleExpr (simpleId)) (className)) (super)) (qualifiedRhs (predicateName)))))))) ============ postfix cast ============ select f.(Foo).thing() --- (ql (moduleMember (select (asExprs (asExpr (qualified_expr (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (typeExpr (className)))) (qualifiedRhs (predicateName)))))))) === any === select any(Foo f), any(Foo f | f = f), any(Foo f | | f.thing()), any(Foo f | f = f | f.thing()) --- (ql (moduleMember (select (asExprs (asExpr (aggregate (aggId (any)) (full_aggregate_body (varDecl (typeExpr (className)) (varName (simpleId)))))) (asExpr (aggregate (aggId (any)) (full_aggregate_body (varDecl (typeExpr (className)) (varName (simpleId))) (comp_term (variable (varName (simpleId))) (compop (eq)) (variable (varName (simpleId))))))) (asExpr (aggregate (aggId (any)) (full_aggregate_body (varDecl (typeExpr (className)) (varName (simpleId))) (asExprs (asExpr (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (predicateName)))))))) (asExpr (aggregate (aggId (any)) (full_aggregate_body (varDecl (typeExpr (className)) (varName (simpleId))) (comp_term (variable (varName (simpleId))) (compop (eq)) (variable (varName (simpleId)))) (asExprs (asExpr (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (predicateName)))))))))))) ===== range ===== select [0..10] --- (ql (moduleMember (select (asExprs (asExpr (range (literal (integer)) (literal (integer)))))))) ========== aggregates ========== select rank[123](Foo f), count(f.thing()), count(f.thing() as thing order by thing asc, thing desc), count(Foo f), count(f), count (| | f), count(), count(Foo f | f.thing() ), sum(Foo f | | f.x() ), sum(Foo f | | f.x() as x), sum(Foo f | | f.x() as x order by x), sum(Foo f | | f.x() as x order by x asc, f.y()), sum(Foo f | f.thing() | f.x() ) --- (ql (moduleMember (select (asExprs (asExpr (aggregate (aggId (rank)) (literal (integer)) (full_aggregate_body (varDecl (typeExpr (className)) (varName (simpleId)))))) (asExpr (aggregate (aggId (count)) (expr_aggregate_body (asExprs (asExpr (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (predicateName)))))))) (asExpr (aggregate (aggId (count)) (expr_aggregate_body (asExprs (asExpr (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (predicateName))) (as) (varName (simpleId)))) (orderBys (orderBy (variable (varName (simpleId))) (direction (asc))) (orderBy (variable (varName (simpleId))) (direction (desc))))))) (asExpr (aggregate (aggId (count)) (full_aggregate_body (varDecl (typeExpr (className)) (varName (simpleId)))))) (asExpr (aggregate (aggId (count)) (expr_aggregate_body (asExprs (asExpr (variable (varName (simpleId)))))))) (asExpr (aggregate (aggId (count)) (full_aggregate_body (asExprs (asExpr (variable (varName (simpleId)))))))) (asExpr (aggregate (aggId (count)))) (asExpr (aggregate (aggId (count)) (full_aggregate_body (varDecl (typeExpr (className)) (varName (simpleId))) (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (predicateName)))))) (asExpr (aggregate (aggId (sum)) (full_aggregate_body (varDecl (typeExpr (className)) (varName (simpleId))) (asExprs (asExpr (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (predicateName)))))))) (asExpr (aggregate (aggId (sum)) (full_aggregate_body (varDecl (typeExpr (className)) (varName (simpleId))) (asExprs (asExpr (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (predicateName))) (as) (varName (simpleId))))))) (asExpr (aggregate (aggId (sum)) (full_aggregate_body (varDecl (typeExpr (className)) (varName (simpleId))) (asExprs (asExpr (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (predicateName))) (as) (varName (simpleId)))) (orderBys (orderBy (variable (varName (simpleId)))))))) (asExpr (aggregate (aggId (sum)) (full_aggregate_body (varDecl (typeExpr (className)) (varName (simpleId))) (asExprs (asExpr (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (predicateName))) (as) (varName (simpleId)))) (orderBys (orderBy (variable (varName (simpleId))) (direction (asc))) (orderBy (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (predicateName)))))))) (asExpr (aggregate (aggId (sum)) (full_aggregate_body (varDecl (typeExpr (className)) (varName (simpleId))) (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (predicateName))) (asExprs (asExpr (qualified_expr (variable (varName (simpleId))) (qualifiedRhs (predicateName))))))))))))