public static void Run() { var env = new ScriptyEnvironment(); while (true) { Console.Write(Prompt); var input = Console.ReadLine(); if (input is null) { return; } var lexer = new Lexer(input); var parser = new Parser(lexer); var program = parser.ParseCode(); if (parser.Errors.Count != 0) { PrintParserErrors(parser.Errors); continue; } var evaluated = Evaluator.Eval(program, env); if (!(evaluated is null)) { Console.WriteLine(evaluated.Inspect()); } } }
public static IObject TestEval(string input) { var lexer = new Lexer(input); var parser = new Parser(lexer); var program = parser.ParseCode(); var env = new ScriptyEnvironment(); return(Evaluator.Eval(program, env)); }