Пример #1
0
        public Void VisitAnonymousFunctionExpr(Expr.AnonymousFunction expr)
        {
            var enclosingFunction = _currentFunction;

            _currentFunction = FunctionType.FUNCTION;
            BeginScope();
            foreach (var param in expr.Parameters)
            {
                Declare(param);
                Define(param);
            }

            Resolve(expr.Body);
            EndScope();
            _currentFunction = enclosingFunction;
            return(null);
        }
Пример #2
0
 public object VisitAnonymousFunctionExpr(Expr.AnonymousFunction expr)
 => new LoxAnonymousFunction(expr, _environment);
Пример #3
0
 public LoxAnonymousFunction(Expr.AnonymousFunction declaration, LoxEnvironment closure)
 {
     _declaration = declaration;
     _closure     = closure;
 }