public IfStmt(Expr cond, Stmt stmt) { this.Cond = cond; this.Stmt = stmt; }
public CaseStmt(Int32 value, Stmt stmt) { this.Value = value; this.Stmt = stmt; }
public DefaultStmt(Stmt stmt) { this.Stmt = stmt; }
public override void Visit(Stmt stmt) { throw new InvalidOperationException("Cannot visit abstract Stmt"); }
public SwitchStmt(Expr expr, Stmt stmt) { this.Expr = expr; this.Stmt = stmt; }
public FuncDef(String name, StorageClass scs, FunctionType type, Stmt stmt) { this.name = name; this.scs = scs; this.type = type; this.stmt = stmt; }
public static IReadOnlyList<String> GrabLabels(Stmt stmt) { GotoLabelsGrabber grabber = new GotoLabelsGrabber(); stmt.Accept(grabber); return grabber.Labels; }
public IfElseStmt(Expr cond, Stmt trueStmt, Stmt falseStmt) { this.Cond = cond; this.TrueStmt = trueStmt; this.FalseStmt = falseStmt; }
public LabeledStmt(String label, Stmt stmt) { this.Label = label; this.Stmt = stmt; }
public DoWhileStmt(Stmt body, Expr cond) { this.Body = body; this.Cond = cond; }
public WhileStmt(Expr cond, Stmt body) { if (!cond.Type.IsScalar) { throw new InvalidProgramException(); } this.Cond = cond; this.Body = body; }
public virtual void Visit(Stmt stmt) {}
public ForStmt(Option<Expr> init, Option<Expr> cond, Option<Expr> loop, Stmt body) { this.Init = init; this.Cond = cond; this.Loop = loop; this.Body = body; }
public virtual void Visit(Stmt stmt) { }