コード例 #1
0
ファイル: Resolver.cs プロジェクト: davidelettieri/Lox
        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
ファイル: Interpreter.cs プロジェクト: davidelettieri/Lox
 public object VisitAnonymousFunctionExpr(Expr.AnonymousFunction expr)
 => new LoxAnonymousFunction(expr, _environment);
コード例 #3
0
 public LoxAnonymousFunction(Expr.AnonymousFunction declaration, LoxEnvironment closure)
 {
     _declaration = declaration;
     _closure     = closure;
 }