public object VisitFunction(Expr.Function expr) { // Capture the environment at declaration time. string name = string.Format("<fun @{0}>", expr.Fun.Line); var function = new LoxFunction(name, _environment, expr.Parameters, expr.Body); return(function); }
public string VisitFunction(Expr.Function expr) { var builder = new StringBuilder(); builder.Append("(fun ("); builder.AppendJoin(' ', expr.Parameters.Select(param => param.Lexeme)); builder.Append(")"); foreach (var s in expr.Body) { builder.Append(s.Accept(this)); } return(builder.ToString()); }
private void ResolveFunction(Expr.Function expr) { ResolveFunction(FunctionType.Function, expr.Parameters, expr.Body); }
public Unit VisitFunction(Expr.Function function) { ResolveFunction(function); return(Unit.Default); }