示例#1
0
        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));
        }
示例#2
0
 public BlockExprFrame(EvalVisitor evaluator, BlockExpr e)
     : base(evaluator, e)
 {
     foreach (var local in ((BlockExpr)Expr).Locals)
     {
         Visitor.ScopeManager.Register(local);
     }
 }
示例#3
0
 public PExpr Visit(BlockExpr e)
 {
     return(Run(new BlockExprFrame(this, e)));
 }