@Override public Node Build(Tree parseTree, ASTBuilder buildHelper) throws SyntaxException { if (parseTree.subtrees.size() == 1) { return buildHelper.build(parseTree.subtrees.get(0), Expression.class); } else { Expression operand1 = buildHelper.build(parseTree.subtrees.get(0), Expression.class); Token operatorToken = (Token) parseTree.subtrees.get(1).root; BinaryOp.BinaryOps operator = BinaryOp.BinaryOps.find(operatorToken.text); Expression operand2 = buildHelper.build(parseTree.subtrees.get(2), Expression.class); return (new BinaryOp(operatorToken.line, operand1, operator, operand2)); } }
@Override public Node Build(Tree parseTree, ASTBuilder buildHelper) throws SyntaxException { return (new Program( buildHelper.depthBuild( parseTree, new String[] {"Program"}, new String[] {"CLASS", "CLASSEXT"}, DeclClass.class))); }
@Override public Node Build(Tree parseTree, ASTBuilder buildHelper) throws SyntaxException { return (buildHelper.build(parseTree.subtrees.get(0))); }