public If(Expr cond, Stmt thenBranch, Stmt elseBranch) { Cond = cond; ThenBranch = thenBranch; ElseBranch = elseBranch; }
private void Execute(Stmt <Void> stmt) { stmt.Accept(this); }
public While(Expr cond, Stmt body) { Cond = cond; Body = body; }
public Void VisitExpressionStmt(Stmt <Void> .Expression stmt) { Evaluate(stmt.expression); return(null); }
public Void VisitBlockStmt(Stmt <Void> .Block stmt) { ExecuteBlock(stmt.statements, new Env(env)); return(null); }
public LoxFunction(Stmt <Void> .Function declaration, Env closure, bool isInitializer) { this.closure = closure; this.declaration = declaration; this.isInitializer = isInitializer; }
private void execute(Stmt statement) { statement.accept(this); }
public While(Expr <object> condition, Stmt <R> body) { this.condition = condition; this.body = body; }
private void resolve(Stmt stmt) { stmt.accept(this); }
public If(Expr <object> condition, Stmt <R> thenBranch, Stmt <R> elseBranch) { this.condition = condition; this.thenBranch = thenBranch; this.elseBranch = elseBranch; }
public void Resolve(Stmt <Void> stmt) { stmt.Accept(this); }
public Void VisitWhileStmt(Stmt <Void> .While stmt) { Resolve(stmt.condition); Resolve(stmt.body); return(null); }
public Void VisitPrintStmt(Stmt <Void> .Print stmt) { Resolve(stmt.expression); return(null); }
public Void VisitExpressionStmt(Stmt <Void> .Expression stmt) { Resolve(stmt.expression); return(null); }