public static String nodePrinter(String input) throws Exception { JavaRecognizer parser = getJavaParser(input); String[] tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); // modify the Java AST into a Groovy AST modifyJavaASTintoGroovyAST(tokenNames, ast); String[] groovyTokenNames = getGroovyTokenNames(input); // groovify the fat Java-Like Groovy AST groovifyFatJavaLikeGroovyAST(ast, groovyTokenNames); // now output ByteArrayOutputStream baos = new ByteArrayOutputStream(); Visitor visitor = new NodePrinter(new PrintStream(baos), groovyTokenNames); AntlrASTProcessor traverser = new SourceCodeTraversal(visitor); traverser.process(ast); return new String(baos.toByteArray()); }
push(t); switch (t.getType()) { case GroovyTokenTypes.QUESTION: // expr?foo:bar accept_FirstChild_v_SecondChild_v_ThirdChild_v(t); break; accept_FirstChild_v_SecondChildsChildren_v(t); break; accept_v_FirstChild_2ndv_SecondChild_v___LastChild_v(t); break; case GroovyTokenTypes.TYPE_PARAMETERS: // class Foo<T> case GroovyTokenTypes.TYPE_UPPER_BOUNDS: // class Foo<T extends F> accept_v_FirstChild_v_SecondChild_v___LastChild_v(t); accept_v_FirstChild_SecondChild_v_ThirdChild_v(t); break; accept_SecondChild_v_ThirdChild_v(t); break; case GroovyTokenTypes.PARAMETER_DEF: // void f(String me) {} case GroovyTokenTypes.SLIST: // list of expressions, variable defs etc accept_v_AllChildren_v(t); break; case GroovyTokenTypes.STAR_STAR_ASSIGN: // x **= 3 if (t.childAt(1) != null) {
push(t); switch (t.getType()) { case GroovyTokenTypes.QUESTION: // expr?foo:bar accept_FirstChild_v_SecondChild_v_ThirdChild_v(t); break; accept_FirstChild_v_SecondChildsChildren_v(t); break; accept_v_FirstChild_2ndv_SecondChild_v___LastChild_v(t); break; case GroovyTokenTypes.TYPE_PARAMETERS: // class Foo<T> case GroovyTokenTypes.TYPE_UPPER_BOUNDS: // class Foo<T extends F> accept_v_FirstChild_v_SecondChild_v___LastChild_v(t); accept_v_FirstChild_SecondChild_v_ThirdChild_v(t); break; accept_FirstChild_v_SecondChild_v(t); break; case GroovyTokenTypes.PARAMETER_DEF: // void f(String me) {} case GroovyTokenTypes.SLIST: // list of expressions, variable defs etc accept_v_AllChildren_v(t); break; case GroovyTokenTypes.STAR_STAR_ASSIGN: // x **= 3 if (t.childAt(1) != null) {
public static String mindmap(String input) throws Exception { JavaRecognizer parser = getJavaParser(input); String[] tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); // modify the Java AST into a Groovy AST modifyJavaASTintoGroovyAST(tokenNames, ast); String[] groovyTokenNames = getGroovyTokenNames(input); // groovify the fat Java-Like Groovy AST groovifyFatJavaLikeGroovyAST(ast, groovyTokenNames); // now output ByteArrayOutputStream baos = new ByteArrayOutputStream(); Visitor visitor = new MindMapPrinter(new PrintStream(baos), groovyTokenNames); AntlrASTProcessor traverser = new SourceCodeTraversal(visitor); traverser.process(ast); return new String(baos.toByteArray()); }
push(t); switch (t.getType()) { case GroovyTokenTypes.QUESTION: // expr?foo:bar accept_FirstChild_v_SecondChild_v_ThirdChild_v(t); break; accept_FirstChild_v_SecondChildsChildren_v(t); break; accept_v_FirstChild_2ndv_SecondChild_v___LastChild_v(t); break; case GroovyTokenTypes.TYPE_PARAMETERS: // class Foo<T> case GroovyTokenTypes.TYPE_UPPER_BOUNDS: // class Foo<T extends F> accept_v_FirstChild_v_SecondChild_v___LastChild_v(t); accept_v_FirstChild_SecondChild_v_ThirdChild_v(t); break; accept_FirstChild_v_SecondChild_v(t); break; case GroovyTokenTypes.PARAMETER_DEF: // void f(String me) {} case GroovyTokenTypes.SLIST: // list of expressions, variable defs etc accept_v_AllChildren_v(t); break; case GroovyTokenTypes.STAR_STAR_ASSIGN: // x **= 3 if (t.childAt(1) != null) {
AntlrASTProcessor traverser = new SourceCodeTraversal(visitor);
push(t); switch (t.getType()) { case GroovyTokenTypes.QUESTION: // expr?foo:bar accept_FirstChild_v_SecondChild_v_ThirdChild_v(t); break; accept_FirstChild_v_SecondChildsChildren_v(t); break; accept_v_FirstChild_2ndv_SecondChild_v___LastChild_v(t); break; case GroovyTokenTypes.TYPE_PARAMETERS: // class Foo<T> case GroovyTokenTypes.TYPE_UPPER_BOUNDS: // class Foo<T extends F> accept_v_FirstChild_v_SecondChild_v___LastChild_v(t); accept_v_FirstChild_SecondChild_v_ThirdChild_v(t); break; accept_FirstChild_v_SecondChild_v(t); break; case GroovyTokenTypes.PARAMETER_DEF: // void f(String me) {} case GroovyTokenTypes.SLIST: // list of expressions, variable defs etc accept_v_AllChildren_v(t); break; case GroovyTokenTypes.STAR_STAR_ASSIGN: // x **= 3 if (t.childAt(1) != null) {
PrintStream out = new PrintStream(new FileOutputStream(sourceUnit.getName() + ".pretty.groovy")); Visitor visitor = new SourcePrinter(out, tokenNames); AntlrASTProcessor treewalker = new SourceCodeTraversal(visitor); treewalker.process(ast); } catch (FileNotFoundException e) { v.add(new SourcePrinter(out, tokenNames)); Visitor visitors = new CompositeVisitor(v); AntlrASTProcessor treewalker = new SourceCodeTraversal(visitors); treewalker.process(ast); } catch (FileNotFoundException e) {
push(t); switch (t.getType()) { case GroovyTokenTypes.QUESTION: // expr?foo:bar accept_FirstChild_v_SecondChild_v_ThirdChild_v(t); break; accept_FirstChild_v_SecondChildsChildren_v(t); break; accept_v_FirstChild_2ndv_SecondChild_v___LastChild_v(t); break; case GroovyTokenTypes.TYPE_PARAMETERS: // class Foo<T> case GroovyTokenTypes.TYPE_UPPER_BOUNDS: // class Foo<T extends F> accept_v_FirstChild_v_SecondChild_v___LastChild_v(t); accept_v_FirstChild_SecondChild_v_ThirdChild_v(t); break; accept_SecondChild_v_ThirdChild_v(t); break; case GroovyTokenTypes.PARAMETER_DEF: // void f(String me) {} case GroovyTokenTypes.SLIST: // list of expressions, variable defs etc accept_v_AllChildren_v(t); break; case GroovyTokenTypes.STAR_STAR_ASSIGN: // x **= 3 if (t.childAt(1) != null) {
AntlrASTProcessor traverser = new SourceCodeTraversal(visitor); traverser.process(ast); return new String(baos.toByteArray());
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); }
private Map<String, GroovyClassDoc> parseGroovy(String packagePath, String file, String src) throws RecognitionException, TokenStreamException { SourceBuffer sourceBuffer = new SourceBuffer(); GroovyRecognizer parser = getGroovyParser(src, sourceBuffer); try { parser.compilationUnit(); } catch (OutOfMemoryError e) { log.error("Out of memory while processing: " + packagePath + "/" + file); throw e; } AST ast = parser.getAST(); // now do the business Visitor visitor = new SimpleGroovyClassDocAssembler(packagePath, file, sourceBuffer, links, properties, true); AntlrASTProcessor traverser = new SourceCodeTraversal(visitor); traverser.process(ast); return ((SimpleGroovyClassDocAssembler) visitor).getGroovyClassDocs(); }
public void doStuff(String input) throws Exception { 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(); AntlrASTProcessor snippets = new AntlrASTProcessSnippets(); ast = snippets.process(ast); Visitor visitor = new LineColumnChecker(sourceBuffer, tokenNames); AntlrASTProcessor traverser = new SourceCodeTraversal(visitor); traverser.process(ast); } }
private Map<String, GroovyClassDoc> parseJava(String packagePath, String file, String src) throws RecognitionException, TokenStreamException { SourceBuffer sourceBuffer = new SourceBuffer(); JavaRecognizer parser = getJavaParser(src, sourceBuffer); String[] tokenNames = parser.getTokenNames(); try { parser.compilationUnit(); } catch (OutOfMemoryError e) { log.error("Out of memory while processing: " + packagePath + "/" + file); throw e; } AST ast = parser.getAST(); // modify the Java AST into a Groovy AST (just token types) Visitor java2groovyConverter = new Java2GroovyConverter(tokenNames); AntlrASTProcessor java2groovyTraverser = new PreOrderTraversal(java2groovyConverter); java2groovyTraverser.process(ast); // now mutate (groovify) the ast into groovy Visitor groovifier = new Groovifier(tokenNames, false); AntlrASTProcessor groovifierTraverser = new PreOrderTraversal(groovifier); groovifierTraverser.process(ast); // now do the business Visitor visitor = new SimpleGroovyClassDocAssembler(packagePath, file, sourceBuffer, links, properties, false); AntlrASTProcessor traverser = new SourceCodeTraversal(visitor); traverser.process(ast); return ((SimpleGroovyClassDocAssembler) visitor).getGroovyClassDocs(); }
public static String mindmap(String input) throws Exception{ JavaRecognizer parser = getJavaParser(input); String[] tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); // modify the Java AST into a Groovy AST modifyJavaASTintoGroovyAST(tokenNames, ast); String[] groovyTokenNames = getGroovyTokenNames(input); // groovify the fat Java-Like Groovy AST groovifyFatJavaLikeGroovyAST(ast, groovyTokenNames); // now output ByteArrayOutputStream baos = new ByteArrayOutputStream(); Visitor visitor = new MindMapPrinter(new PrintStream(baos),groovyTokenNames); AntlrASTProcessor traverser = new SourceCodeTraversal(visitor); traverser.process(ast); return new String(baos.toByteArray()); }
public static String nodePrinter(String input) throws Exception{ JavaRecognizer parser = getJavaParser(input); String[] tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); // modify the Java AST into a Groovy AST modifyJavaASTintoGroovyAST(tokenNames, ast); String[] groovyTokenNames = getGroovyTokenNames(input); // groovify the fat Java-Like Groovy AST groovifyFatJavaLikeGroovyAST(ast, groovyTokenNames); // now output ByteArrayOutputStream baos = new ByteArrayOutputStream(); Visitor visitor = new NodePrinter(new PrintStream(baos),groovyTokenNames); AntlrASTProcessor traverser = new SourceCodeTraversal(visitor); traverser.process(ast); return new String(baos.toByteArray()); }
public static String mindmap(String input) throws Exception{ JavaRecognizer parser = getJavaParser(input); String[] tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); // modify the Java AST into a Groovy AST modifyJavaASTintoGroovyAST(tokenNames, ast); String[] groovyTokenNames = getGroovyTokenNames(input); // groovify the fat Java-Like Groovy AST groovifyFatJavaLikeGroovyAST(ast, groovyTokenNames); // now output ByteArrayOutputStream baos = new ByteArrayOutputStream(); Visitor visitor = new MindMapPrinter(new PrintStream(baos),groovyTokenNames); AntlrASTProcessor traverser = new SourceCodeTraversal(visitor); traverser.process(ast); return new String(baos.toByteArray()); }
public static String nodePrinter(String input) throws Exception{ JavaRecognizer parser = getJavaParser(input); String[] tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); // modify the Java AST into a Groovy AST modifyJavaASTintoGroovyAST(tokenNames, ast); String[] groovyTokenNames = getGroovyTokenNames(input); // groovify the fat Java-Like Groovy AST groovifyFatJavaLikeGroovyAST(ast, groovyTokenNames); // now output ByteArrayOutputStream baos = new ByteArrayOutputStream(); Visitor visitor = new NodePrinter(new PrintStream(baos),groovyTokenNames); AntlrASTProcessor traverser = new SourceCodeTraversal(visitor); traverser.process(ast); return new String(baos.toByteArray()); }
public static String mindmap(String input) throws Exception{ JavaRecognizer parser = getJavaParser(input); String[] tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); // modify the Java AST into a Groovy AST modifyJavaASTintoGroovyAST(tokenNames, ast); String[] groovyTokenNames = getGroovyTokenNames(input); // groovify the fat Java-Like Groovy AST groovifyFatJavaLikeGroovyAST(ast, groovyTokenNames); // now output ByteArrayOutputStream baos = new ByteArrayOutputStream(); Visitor visitor = new MindMapPrinter(new PrintStream(baos),groovyTokenNames); AntlrASTProcessor traverser = new SourceCodeTraversal(visitor); traverser.process(ast); return new String(baos.toByteArray()); }
public static String nodePrinter(String input) throws Exception{ JavaRecognizer parser = getJavaParser(input); String[] tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); // modify the Java AST into a Groovy AST modifyJavaASTintoGroovyAST(tokenNames, ast); String[] groovyTokenNames = getGroovyTokenNames(input); // groovify the fat Java-Like Groovy AST groovifyFatJavaLikeGroovyAST(ast, groovyTokenNames); // now output ByteArrayOutputStream baos = new ByteArrayOutputStream(); Visitor visitor = new NodePrinter(new PrintStream(baos),groovyTokenNames); AntlrASTProcessor traverser = new SourceCodeTraversal(visitor); traverser.process(ast); return new String(baos.toByteArray()); }