public void Run() { ASTVisualizer visualizer = SheInfo.Visualize ? new ASTVisualizer() : null; using (var reader = new StreamReader(filePath)) { Lexer l = new Lexer(reader); SheParser sp = new SheParser(); NestedEnvironment env = new NestedEnvironment(); Natives.AppendNatives(env); while (l.Peek(0) != Token.EOF) { ASTree ast = sp.Parse(l); // Console.WriteLine(ast); Console.WriteLine(ast.Eval(env)); if (SheInfo.Visualize) { visualizer.Push(ast); } } } if (SheInfo.Visualize) { visualizer.Visualize($"INTPRT_{SheInfo.StartTime:yyyy-MM-dd-HH-mm-ss}"); } }
public Repl() { this.replEnvironment = new NestedEnvironment(); Natives.AppendNatives(this.replEnvironment); }