public class IfStmt extends Statement { public Expression premise; public Statement conclusion; public Statement alternative; public IfStmt(Range r, Expression p, Statement c, Statement a) { super(r); premise = p; conclusion = c; alternative = a; } public String toString() { String as = (alternative == null ? "null" : "Else," + alternative.toString()); return "(" + tag() + " label:" + label + "," + premise + "," + conclusion + "," + as + ")"; } public void visit() throws SemanticException { label = Global.nextLabel(); premise.visit(); conclusion.visit(); if (alternative != null) alternative.visit(); } }