public void visit(ArithmeticNode node) { if (state == null ) return; if (node.getItems().size() > 2) { throw new IllegalArgumentException("Too many arithmetic operations"); } for (ArithmeticNode.NodeItem item : node.getItems()) { if (item.getOperator() != ArithmeticNode.SUB && item.getOperator() != ArithmeticNode.NOP) { throw new IllegalArgumentException("Arithmetic operator '" + node.operatorToString(item.getOperator()) + "' is not supported"); } } state.arithmetic = node; }
public ArithmeticNode add(String operator, ExpressionNode node) { items.add(new NodeItem(stringToOperator(operator), node)); return this; }
public NowQueryNode(ArithmeticNode node) { // Assumes that the structure is checked and verified earlier this.value = Long.parseLong(node.getItems().get(1).getNode().toString()); } @Override
final public ExpressionNode arithmetic() throws ParseException {ArithmeticNode lst = new ArithmeticNode(); String op = null; ExpressionNode node; node = attribute(); lst.add(null, node); label_2: while (true) { lst.add(op, node);
@Override public String toString() { StringBuilder ret = new StringBuilder(); for (NodeItem item : items) { if (item.operator != NOP) { ret.append(" ").append(operatorToString(item.operator)).append(" "); } ret.append(item.node); } return ret.toString(); }
if (!buf.isEmpty()) { while (buf.peek().operator > item.operator) { popOffTheTop(buf); popOffTheTop(buf);
public void visit(ArithmeticNode node) { for (ArithmeticNode.NodeItem item : node.getItems()) { item.getNode().accept(this); } }
@Override public void visit(ArithmeticNode arithmeticNode) { for (ArithmeticNode.NodeItem item : arithmeticNode.getItems()) { item.getNode().accept(this); } }