public virtual Expr Visit(BlockExpr e) { var sV = Visit(e.List); var lV = (IReadOnlyList <AccessorLetExpr>)Visit(e.Locals); return(sV == e.List && lV == e.Locals ? e : new BlockExpr(sV, lV)); }
public BlockExprFrame(EvalVisitor evaluator, BlockExpr e) : base(evaluator, e) { foreach (var local in ((BlockExpr)Expr).Locals) { Visitor.ScopeManager.Register(local); } }
public PExpr Visit(BlockExpr e) { return(Run(new BlockExprFrame(this, e))); }