Search in sources :

Example 6 with GroovyRecognizer

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

the class GroovyRootDocBuilder method getGroovyParser.

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

Example 7 with GroovyRecognizer

use of org.codehaus.groovy.antlr.parser.GroovyRecognizer in project groovy by apache.

the class SourceParserTest method parse.

protected void parse(String name, Reader reader) {
    SourceBuffer sourceBuffer = new SourceBuffer();
    UnicodeEscapingReader unicodeReader = new UnicodeEscapingReader(reader, sourceBuffer);
    GroovyLexer lexer = new GroovyLexer(unicodeReader);
    unicodeReader.setLexer(lexer);
    GroovyRecognizer parser = GroovyRecognizer.make(lexer);
    parser.setSourceBuffer(sourceBuffer);
    parser.setFilename(name);
    // start parsing at the compilationUnit rule
    try {
        parser.compilationUnit();
    } catch (Exception ex) {
        StringWriter out = new StringWriter();
        out.write(ex.getMessage());
        out.write("\n");
        ex.printStackTrace(new PrintWriter(out));
        fail(out.toString());
    }
}
Also used : StringWriter(java.io.StringWriter) GroovyLexer(org.codehaus.groovy.antlr.parser.GroovyLexer) GroovyRecognizer(org.codehaus.groovy.antlr.parser.GroovyRecognizer) PrintWriter(java.io.PrintWriter)

Example 8 with GroovyRecognizer

use of org.codehaus.groovy.antlr.parser.GroovyRecognizer 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 9 with GroovyRecognizer

use of org.codehaus.groovy.antlr.parser.GroovyRecognizer in project groovy by apache.

the class ClassicGroovyTestGeneratorHelper method parse.

/** run the JSR parser implementation over the supplied source text*/
public void parse(String theSrcText, String testName) throws Exception {
    System.out.println("-------------------------------");
    System.out.println("  " + testName);
    System.out.println("-------------------------------");
    try {
        Reader reader = new BufferedReader(new StringReader(theSrcText));
        GroovyRecognizer recognizer = GroovyRecognizer.make(reader);
        recognizer.compilationUnit();
        System.out.println(decorateWithLineNumbers(theSrcText));
    } catch (RecognitionException parseException) {
        System.out.println(decorateWithLineNumbersAndErrorMessage(theSrcText, parseException));
        throw parseException;
    }
    System.out.println("-------------------------------");
}
Also used : BufferedReader(java.io.BufferedReader) StringReader(java.io.StringReader) StringReader(java.io.StringReader) Reader(java.io.Reader) BufferedReader(java.io.BufferedReader) GroovyRecognizer(org.codehaus.groovy.antlr.parser.GroovyRecognizer) RecognitionException(antlr.RecognitionException)

Example 10 with GroovyRecognizer

use of org.codehaus.groovy.antlr.parser.GroovyRecognizer in project groovy by apache.

the class AntlrParserPlugin method transformCSTIntoAST.

protected void transformCSTIntoAST(SourceUnit sourceUnit, Reader reader, SourceBuffer sourceBuffer) throws CompilationFailedException {
    ast = null;
    setController(sourceUnit);
    // TODO find a way to inject any GroovyLexer/GroovyRecognizer
    UnicodeEscapingReader unicodeReader = new UnicodeEscapingReader(reader, sourceBuffer);
    UnicodeLexerSharedInputState inputState = new UnicodeLexerSharedInputState(unicodeReader);
    GroovyLexer lexer = new GroovyLexer(inputState);
    unicodeReader.setLexer(lexer);
    GroovyRecognizer parser = GroovyRecognizer.make(lexer);
    parser.setSourceBuffer(sourceBuffer);
    tokenNames = parser.getTokenNames();
    parser.setFilename(sourceUnit.getName());
    // start parsing at the compilationUnit rule
    try {
        parser.compilationUnit();
    } catch (TokenStreamRecognitionException tsre) {
        RecognitionException e = tsre.recog;
        SyntaxException se = new SyntaxException(e.getMessage(), e, e.getLine(), e.getColumn());
        se.setFatal(true);
        sourceUnit.addError(se);
    } catch (RecognitionException e) {
        SyntaxException se = new SyntaxException(e.getMessage(), e, e.getLine(), e.getColumn());
        se.setFatal(true);
        sourceUnit.addError(se);
    } catch (TokenStreamException e) {
        sourceUnit.addException(e);
    }
    ast = parser.getAST();
}
Also used : TokenStreamException(antlr.TokenStreamException) TokenStreamRecognitionException(antlr.TokenStreamRecognitionException) GroovyLexer(org.codehaus.groovy.antlr.parser.GroovyLexer) SyntaxException(org.codehaus.groovy.syntax.SyntaxException) GroovyRecognizer(org.codehaus.groovy.antlr.parser.GroovyRecognizer) RecognitionException(antlr.RecognitionException) TokenStreamRecognitionException(antlr.TokenStreamRecognitionException)

Aggregations

GroovyRecognizer (org.codehaus.groovy.antlr.parser.GroovyRecognizer)22 GroovyLexer (org.codehaus.groovy.antlr.parser.GroovyLexer)18 StringReader (java.io.StringReader)14 SourceBuffer (org.codehaus.groovy.antlr.SourceBuffer)10 UnicodeEscapingReader (org.codehaus.groovy.antlr.UnicodeEscapingReader)10 AST (antlr.collections.AST)8 AntlrASTProcessor (org.codehaus.groovy.antlr.AntlrASTProcessor)8 RecognitionException (antlr.RecognitionException)6 TokenStreamException (antlr.TokenStreamException)4 ByteArrayOutputStream (java.io.ByteArrayOutputStream)4 PrintStream (java.io.PrintStream)4 Token (antlr.Token)2 TokenStreamRecognitionException (antlr.TokenStreamRecognitionException)2 IncorrectTypeHintException (groovy.transform.stc.IncorrectTypeHintException)2 BufferedReader (java.io.BufferedReader)2 PrintWriter (java.io.PrintWriter)2 Reader (java.io.Reader)2 StringWriter (java.io.StringWriter)2 Constructor (java.lang.reflect.Constructor)2 ArrayList (java.util.ArrayList)2