@Override public If visit(ASTIf node, Object data) throws VisitorException { If result = null; if (node.jjtGetNumChildren() < 3) { throw new VisitorException("IF construction missing required number of arguments"); } ValueExpr condition = (ValueExpr)node.jjtGetChild(0).jjtAccept(this, null); ValueExpr resultExpr = (ValueExpr)node.jjtGetChild(1).jjtAccept(this, null); ValueExpr alternative = (ValueExpr)node.jjtGetChild(2).jjtAccept(this, null); result = new If(condition, resultExpr, alternative); return result; }
@Override public If visit(ASTIf node, Object data) throws VisitorException { If result = null; if (node.jjtGetNumChildren() < 3) { throw new VisitorException("IF construction missing required number of arguments"); } ValueExpr condition = (ValueExpr)node.jjtGetChild(0).jjtAccept(this, null); ValueExpr resultExpr = (ValueExpr)node.jjtGetChild(1).jjtAccept(this, null); ValueExpr alternative = (ValueExpr)node.jjtGetChild(2).jjtAccept(this, null); result = new If(condition, resultExpr, alternative); return result; }
@Override public If visit(ASTIf node, Object data) throws VisitorException { If result = null; if (node.jjtGetNumChildren() < 3) { throw new VisitorException("IF construction missing required number of arguments"); } ValueExpr condition = (ValueExpr)node.jjtGetChild(0).jjtAccept(this, null); ValueExpr resultExpr = (ValueExpr)node.jjtGetChild(1).jjtAccept(this, null); ValueExpr alternative = (ValueExpr)node.jjtGetChild(2).jjtAccept(this, null); result = new If(condition, resultExpr, alternative); return result; }
String.format("Invalid number of arguments for function: %s", func)); expr = new If(args.get(0), args.get(1), args.get(2));