-
- ID:var
- {:
- debugMessage(PRODSTRING);
- ParseNode expr = new ParseNode("expr", parser.curLine(1));
- expr.addChild("var").addChild(var);
- RESULT = expr;
- :}
-
- | OPENPAREN expr:expr CLOSEPAREN
- {:
- debugMessage(PRODSTRING);
- RESULT = expr;
- :}
-
- | LITERAL OPENPAREN literal:literal CLOSEPAREN
- {:
- debugMessage(PRODSTRING);
- ParseNode expr = new ParseNode("expr", parser.curLine(4));
- expr.addChild(literal);
- RESULT = expr;
- :}
-
- | ID:var DOT relations:relations
- {:
- debugMessage(PRODSTRING);
- ParseNode expr = new ParseNode("expr", parser.curLine(3));
- ParseNode relation = new ParseNode("relation");
- expr.addChild(relation);
- relation.addChild("quantifiervar", parser.curLine(3)).addChild(var);
- relation.addChild(relations);
- RESULT = expr;
- :}
-
- | ID:var DOTINV relations:relations
- {:
- debugMessage(PRODSTRING);
- ParseNode expr = new ParseNode("expr", parser.curLine(3));
- ParseNode relation = new ParseNode("relation");
- expr.addChild(relation);
- relation.addChild("quantifiervar", parser.curLine(3)).addChild(var);
- relation.addChild(relations);
- relations.getChildren().elementAt(0).addChild("inv");
- RESULT = expr;
- :}