public Interpreter(string code, Builtins builtins) { errorBag = new CodeErrorBag(); var inputStream = new AntlrInputStream(code); var lexer = new PigeonLexer(inputStream); var tokenStream = new CommonTokenStream(lexer); parser = new PigeonParser(tokenStream); var errorListener = new CodeErrorListener(errorBag); parser.AddErrorListener(errorListener); tree = parser.program(); var walker = new ParseTreeWalker(); var globalScope = new GlobalScope(); builtins.Register(globalScope); var functionDeclarator = new FunctionDeclarator(errorBag, globalScope); walker.Walk(functionDeclarator, tree); analyser = new SemanticAnalyser(errorBag, globalScope); walker.Walk(analyser, tree); }
internal SemanticAnalyser(CodeErrorBag errorBag, GlobalScope globalScope) { this.errorBag = errorBag; GlobalScope = globalScope; }
internal FunctionDeclarator(CodeErrorBag errorBag, GlobalScope globalScope) { this.errorBag = errorBag; this.globalScope = globalScope; }
public CodeErrorListener(CodeErrorBag errorBag) { this.errorBag = errorBag; }