private SourceEval createWalker(string file) { ANTLRFileStream stream = new ANTLRFileStream(file); SourceExprLexer lex = new SourceExprLexer(stream); CommonTokenStream tokens = new CommonTokenStream(lex); SourceExprParser parser = new SourceExprParser(tokens); SourceExprParser.prog_return r = parser.prog(_script); // WALK RESULTING TREE CommonTree t = (CommonTree)r.Tree; // get tree from parser // Create a tree node stream from resulting tree CommonTreeNodeStream nodes = new CommonTreeNodeStream(t); SourceEval walker = new SourceEval(nodes); // create a tree parser return walker; }
static string createRewriter(string file, Script script) { ANTLRFileStream stream = new ANTLRFileStream(file); SourceExprLexer lex = new SourceExprLexer(stream); // create a buffer of tokens pulled from the lexer // Must use TokenRewriteStream not CommonTokenStream! TokenRewriteStream tokens = new TokenRewriteStream(lex); SourceExprParser parser = new SourceExprParser(tokens); SourceExprParser.prog_return r = parser.prog(script); // WALK TREE AND REWRITE TOKEN BUFFER CommonTree t = (CommonTree)r.Tree; // get tree from parser // create a stream of tree nodes from AST built by parser CommonTreeNodeStream nodes = new CommonTreeNodeStream(t); // tell it where it can find the token objects nodes.TokenStream = tokens; //SourceRewrite rewriter = new SourceRewrite(nodes); //rewriter.prog(script); return tokens.ToString(); // return tweaked token buffer }