Search in sources :

Example 1 with UnicodeEscapingReader

use of org.codehaus.groovy.antlr.UnicodeEscapingReader in project groovy by apache.

the class Java2GroovyProcessor method getJavaParser.

private static JavaRecognizer getJavaParser(String input) {
    JavaRecognizer parser = null;
    SourceBuffer sourceBuffer = new SourceBuffer();
    UnicodeEscapingReader unicodeReader = new UnicodeEscapingReader(new StringReader(input), sourceBuffer);
    JavaLexer lexer = new JavaLexer(unicodeReader);
    unicodeReader.setLexer(lexer);
    parser = JavaRecognizer.make(lexer);
    parser.setSourceBuffer(sourceBuffer);
    return parser;
}
Also used : StringReader(java.io.StringReader) SourceBuffer(org.codehaus.groovy.antlr.SourceBuffer) UnicodeEscapingReader(org.codehaus.groovy.antlr.UnicodeEscapingReader)

Example 2 with UnicodeEscapingReader

use of org.codehaus.groovy.antlr.UnicodeEscapingReader in project groovy by apache.

the class GroovyRootDocBuilder method getJavaParser.

private static JavaRecognizer getJavaParser(String input, SourceBuffer sourceBuffer) {
    UnicodeEscapingReader unicodeReader = new UnicodeEscapingReader(new StringReader(input), sourceBuffer);
    JavaLexer lexer = new JavaLexer(unicodeReader);
    unicodeReader.setLexer(lexer);
    JavaRecognizer parser = JavaRecognizer.make(lexer);
    parser.setSourceBuffer(sourceBuffer);
    return parser;
}
Also used : JavaLexer(org.codehaus.groovy.antlr.java.JavaLexer) StringReader(java.io.StringReader) JavaRecognizer(org.codehaus.groovy.antlr.java.JavaRecognizer) UnicodeEscapingReader(org.codehaus.groovy.antlr.UnicodeEscapingReader)

Example 3 with UnicodeEscapingReader

use of org.codehaus.groovy.antlr.UnicodeEscapingReader in project groovy by apache.

the class LineColumnTest method doStuff.

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);
}
Also used : AST(antlr.collections.AST) SourceBuffer(org.codehaus.groovy.antlr.SourceBuffer) AntlrASTProcessor(org.codehaus.groovy.antlr.AntlrASTProcessor) UnicodeEscapingReader(org.codehaus.groovy.antlr.UnicodeEscapingReader) GroovyLexer(org.codehaus.groovy.antlr.parser.GroovyLexer) AntlrASTProcessSnippets(org.codehaus.groovy.antlr.AntlrASTProcessSnippets) StringReader(java.io.StringReader) GroovyRecognizer(org.codehaus.groovy.antlr.parser.GroovyRecognizer)

Example 4 with UnicodeEscapingReader

use of org.codehaus.groovy.antlr.UnicodeEscapingReader in project groovy-core by groovy.

the class CompositeVisitorTest method assertCompositeTransparency.

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);
}
Also used : PrintStream(java.io.PrintStream) AST(antlr.collections.AST) ArrayList(java.util.ArrayList) ByteArrayOutputStream(java.io.ByteArrayOutputStream) SourceBuffer(org.codehaus.groovy.antlr.SourceBuffer) AntlrASTProcessor(org.codehaus.groovy.antlr.AntlrASTProcessor) UnicodeEscapingReader(org.codehaus.groovy.antlr.UnicodeEscapingReader) GroovyLexer(org.codehaus.groovy.antlr.parser.GroovyLexer) StringReader(java.io.StringReader) ArrayList(java.util.ArrayList) List(java.util.List) GroovyRecognizer(org.codehaus.groovy.antlr.parser.GroovyRecognizer)

Example 5 with UnicodeEscapingReader

use of org.codehaus.groovy.antlr.UnicodeEscapingReader in project groovy-core by groovy.

the class TraversalTestHelper method traverse.

// todo - the visitor doesn't always take PrintStreams as constructor params!  Could be a more reusable implementation than this...
public String traverse(String input, Class visitorClass, Boolean extraParam) throws Exception {
    if (!Visitor.class.isAssignableFrom(visitorClass)) {
        throw new RuntimeException("Invalid class for traversal: " + visitorClass.getName());
    }
    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();
    Class[] paramTypes;
    Object[] params;
    if (extraParam == null) {
        paramTypes = new Class[] { PrintStream.class, String[].class };
        params = new Object[] { new PrintStream(baos), tokenNames };
    } else {
        paramTypes = new Class[] { PrintStream.class, String[].class, Boolean.TYPE };
        params = new Object[] { new PrintStream(baos), tokenNames, extraParam };
    }
    Constructor constructor = visitorClass.getConstructor(paramTypes);
    Visitor visitor = (Visitor) constructor.newInstance(params);
    AntlrASTProcessor traverser = new SourceCodeTraversal(visitor);
    traverser.process(ast);
    return new String(baos.toByteArray());
}
Also used : PrintStream(java.io.PrintStream) AST(antlr.collections.AST) Constructor(java.lang.reflect.Constructor) ByteArrayOutputStream(java.io.ByteArrayOutputStream) SourceBuffer(org.codehaus.groovy.antlr.SourceBuffer) AntlrASTProcessor(org.codehaus.groovy.antlr.AntlrASTProcessor) UnicodeEscapingReader(org.codehaus.groovy.antlr.UnicodeEscapingReader) GroovyLexer(org.codehaus.groovy.antlr.parser.GroovyLexer) StringReader(java.io.StringReader) GroovyRecognizer(org.codehaus.groovy.antlr.parser.GroovyRecognizer)

Aggregations

StringReader (java.io.StringReader)14 UnicodeEscapingReader (org.codehaus.groovy.antlr.UnicodeEscapingReader)14 SourceBuffer (org.codehaus.groovy.antlr.SourceBuffer)10 GroovyLexer (org.codehaus.groovy.antlr.parser.GroovyLexer)10 GroovyRecognizer (org.codehaus.groovy.antlr.parser.GroovyRecognizer)10 AST (antlr.collections.AST)6 AntlrASTProcessor (org.codehaus.groovy.antlr.AntlrASTProcessor)6 ByteArrayOutputStream (java.io.ByteArrayOutputStream)4 PrintStream (java.io.PrintStream)4 Constructor (java.lang.reflect.Constructor)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 AntlrASTProcessSnippets (org.codehaus.groovy.antlr.AntlrASTProcessSnippets)2 JavaLexer (org.codehaus.groovy.antlr.java.JavaLexer)2 JavaRecognizer (org.codehaus.groovy.antlr.java.JavaRecognizer)2