Exemple #1
0
        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);
        }
Exemple #2
0
        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());
        }
Exemple #3
0
 private void ResolveFunction(Expr.Function expr)
 {
     ResolveFunction(FunctionType.Function, expr.Parameters, expr.Body);
 }
Exemple #4
0
 public Unit VisitFunction(Expr.Function function)
 {
     ResolveFunction(function);
     return(Unit.Default);
 }