v.add(new NodeAsHTMLPrinter(out, tokenNames)); v.add(new SourcePrinter(out, tokenNames)); Visitor visitors = new CompositeVisitor(v); AntlrASTProcessor treewalker = new SourceCodeTraversal(visitors); treewalker.process(ast);
private void assertCompositeTransparency(String input) throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); GroovyRecognizer parser; SourceBuffer sourceBuffer = new SourceBuffer(); UnicodeEscapingReader unicodeReader = new UnicodeEscapingReader(new StringReader(input), sourceBuffer); GroovyLexer lexer = new GroovyLexer(unicodeReader); unicodeReader.setLexer(lexer); parser = GroovyRecognizer.make(lexer); parser.setSourceBuffer(sourceBuffer); String[] tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); // determine direct result Visitor directVisitor = new SourcePrinter(new PrintStream(baos), tokenNames, false); AntlrASTProcessor traverser = new SourceCodeTraversal(directVisitor); traverser.process(ast); String directResult = new String(baos.toByteArray()); // determine composite result baos.reset(); List wrappedVisitors = new ArrayList(); wrappedVisitors.add(directVisitor); Visitor compositeVisitor = new CompositeVisitor(wrappedVisitors); traverser = new SourceCodeTraversal(compositeVisitor); traverser.process(ast); String compositeResult = new String(baos.toByteArray()); assertEquals(directResult, compositeResult); }
v.add(new NodeAsHTMLPrinter(out,tokenNames)); v.add(new SourcePrinter(out,tokenNames)); Visitor visitors = new CompositeVisitor(v); AntlrASTProcessor treewalker = new SourceCodeTraversal(visitors); treewalker.process(ast);
v.add(new NodeAsHTMLPrinter(out,tokenNames)); v.add(new SourcePrinter(out,tokenNames)); Visitor visitors = new CompositeVisitor(v); AntlrASTProcessor treewalker = new SourceCodeTraversal(visitors); treewalker.process(ast);
v.add(new NodeAsHTMLPrinter(out,tokenNames)); v.add(new SourcePrinter(out,tokenNames)); Visitor visitors = new CompositeVisitor(v); AntlrASTProcessor treewalker = new SourceCodeTraversal(visitors); treewalker.process(ast);
v.add(new NodeAsHTMLPrinter(out, tokenNames)); v.add(new SourcePrinter(out, tokenNames)); Visitor visitors = new CompositeVisitor(v); AntlrASTProcessor treewalker = new SourceCodeTraversal(visitors); treewalker.process(ast);