public object VisitFunctionStmt(Stmt.Function stmt) { LoxFunction function = new LoxFunction(stmt, environment, false); environment.Define(stmt.Name.Lexeme, function); return(null); }
public Void VisitFunctionStmt(Stmt.Function stmt) { var function = new LoxFunction(stmt, _environment, false); _environment.Define(stmt.Name.Lexeme, function); return(null); }
public Void VisitFunctionStmt(Stmt.Function stmt) { Declare(stmt.Name); Define(stmt.Name); ResolveFunction(stmt, FunctionType.FUNCTION); return(null); }
public object Visit(Stmt.Function _function) { Declare(_function.name); Define(_function.name); ResolveFunction(_function, FunctionType.FUNCTION); return(null); }
private void ResolveFunction(Stmt.Function function, FunctionType type) { var enclosingFunction = _currentFunction; _currentFunction = type; BeginScope(); foreach (var param in function.Parameters) { Declare(param); Define(param); } Resolve(function.Body); EndScope(); _currentFunction = enclosingFunction; }
private void ResolveFunction(Stmt.Function function, FunctionType type) { FunctionType enclusingFunction = currentFunction; currentFunction = type; BeginScope(); foreach (var param in function.Params) { Declare(param); Define(param); } Resolve(function.body); EndScope(); currentFunction = enclusingFunction; }
private void ResolveFunction(Stmt.Function function, FunctionType type) { FunctionType enclosingFunction = currentFunction; currentFunction = type; BeginScope(); if (function.isStatic && type == FunctionType.INITIALIZER && function.parameters.Any()) { Lox.Error(function.name, $"Static initializer should not take any parameters."); } foreach (var param in function.parameters) { Declare(param); Define(param); } Resolve(function.body); EndScope(); currentFunction = enclosingFunction; }
public LoxFunction(Stmt.Function declaration, Environment closure, bool isInitializer) { this.closure = closure; this.isInitializer = isInitializer; this.declaration = declaration; }
public LoxFunction(Stmt.Function declaration, Environment closure, bool isInitializer) { _closure = closure; _declaration = declaration; _isInitializer = isInitializer; }
public string VisitFunctionStmt(Stmt.Function stmt) { throw new NotImplementedException(); }
public string VisitFunctionStmt(Stmt.Function stmt) => throw new System.NotImplementedException();