public object visitFunctionStmt(Stmt.Function stmt) { var function = new RosellaFunction(stmt, environment); environment.define(stmt.name.lexeme, function); return(null); }
public object call(Interpreter interpreter, IList <object> arguments) { var environment = new RosellaEnvironment(closure); for (var i = 0; i < [email protected]; i++) { environment.define(declaration.@params[i].lexeme, arguments[i]); } try { interpreter.executeBlock(declaration.body, environment); } catch (Return returnValue) { return(returnValue.value); } return(null); }
public Interpreter(Action <RuntimeError> errorFunc) { this.errorFunc = errorFunc; environment = globals; globals.define("clock", new Clock()); }