Search in sources :

Example 26 with StringReader

use of java.io.StringReader in project groovy by apache.

the class GenericsUtils method parseClassNodesFromString.

public static ClassNode[] parseClassNodesFromString(final String option, final SourceUnit sourceUnit, final CompilationUnit compilationUnit, final MethodNode mn, final ASTNode usage) {
    GroovyLexer lexer = new GroovyLexer(new StringReader("DummyNode<" + option + ">"));
    final GroovyRecognizer rn = GroovyRecognizer.make(lexer);
    try {
        rn.classOrInterfaceType(true);
        final AtomicReference<ClassNode> ref = new AtomicReference<ClassNode>();
        AntlrParserPlugin plugin = new AntlrParserPlugin() {

            @Override
            public ModuleNode buildAST(final SourceUnit sourceUnit, final ClassLoader classLoader, final Reduction cst) throws ParserException {
                ref.set(makeTypeWithArguments(rn.getAST()));
                return null;
            }
        };
        plugin.buildAST(null, null, null);
        ClassNode parsedNode = ref.get();
        // the returned node is DummyNode<Param1, Param2, Param3, ...)
        GenericsType[] parsedNodeGenericsTypes = parsedNode.getGenericsTypes();
        if (parsedNodeGenericsTypes == null) {
            return null;
        }
        ClassNode[] signature = new ClassNode[parsedNodeGenericsTypes.length];
        for (int i = 0; i < parsedNodeGenericsTypes.length; i++) {
            final GenericsType genericsType = parsedNodeGenericsTypes[i];
            signature[i] = resolveClassNode(sourceUnit, compilationUnit, mn, usage, genericsType.getType());
        }
        return signature;
    } catch (RecognitionException e) {
        sourceUnit.addError(new IncorrectTypeHintException(mn, e, usage.getLineNumber(), usage.getColumnNumber()));
    } catch (TokenStreamException e) {
        sourceUnit.addError(new IncorrectTypeHintException(mn, e, usage.getLineNumber(), usage.getColumnNumber()));
    } catch (ParserException e) {
        sourceUnit.addError(new IncorrectTypeHintException(mn, e, usage.getLineNumber(), usage.getColumnNumber()));
    }
    return null;
}
Also used : ClassNode(org.codehaus.groovy.ast.ClassNode) ParserException(org.codehaus.groovy.syntax.ParserException) IncorrectTypeHintException(groovy.transform.stc.IncorrectTypeHintException) AtomicReference(java.util.concurrent.atomic.AtomicReference) SourceUnit(org.codehaus.groovy.control.SourceUnit) TokenStreamException(antlr.TokenStreamException) Reduction(org.codehaus.groovy.syntax.Reduction) AntlrParserPlugin(org.codehaus.groovy.antlr.AntlrParserPlugin) GroovyLexer(org.codehaus.groovy.antlr.parser.GroovyLexer) StringReader(java.io.StringReader) GenericsType(org.codehaus.groovy.ast.GenericsType) GroovyRecognizer(org.codehaus.groovy.antlr.parser.GroovyRecognizer) RecognitionException(antlr.RecognitionException)

Example 27 with StringReader

use of java.io.StringReader 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 28 with StringReader

use of java.io.StringReader 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 29 with StringReader

use of java.io.StringReader in project groovy by apache.

the class EnumSourceParsingTest method testParseEnumConstants.

public void testParseEnumConstants() {
    StringReader reader = new StringReader("enum One {\n" + "  ONE, TWO, THREE\n" + "}");
    parse("testParseEnumConstants", reader);
}
Also used : StringReader(java.io.StringReader)

Example 30 with StringReader

use of java.io.StringReader in project groovy by apache.

the class EnumSourceParsingTest method testParseEnumConstantsOneLiner.

public void testParseEnumConstantsOneLiner() {
    StringReader reader = new StringReader("enum One { ONE, TWO, THREE }");
    parse("testParseEnumConstantsOneLiner", reader);
}
Also used : StringReader(java.io.StringReader)

Aggregations

StringReader (java.io.StringReader)3695 Test (org.junit.Test)837 IOException (java.io.IOException)488 Reader (java.io.Reader)402 InputSource (org.xml.sax.InputSource)369 TokenStream (org.apache.lucene.analysis.TokenStream)298 BufferedReader (java.io.BufferedReader)277 Tokenizer (org.apache.lucene.analysis.Tokenizer)238 StringWriter (java.io.StringWriter)226 ArrayList (java.util.ArrayList)225 JSONReader (com.alibaba.fastjson.JSONReader)195 Document (org.w3c.dom.Document)181 DocumentBuilder (javax.xml.parsers.DocumentBuilder)165 DocumentBuilderFactory (javax.xml.parsers.DocumentBuilderFactory)141 Map (java.util.Map)139 ParserResult (org.jabref.logic.importer.ParserResult)130 MockTokenizer (org.apache.lucene.analysis.MockTokenizer)120 HashMap (java.util.HashMap)117 Element (org.w3c.dom.Element)108 StreamSource (javax.xml.transform.stream.StreamSource)106