Search in sources :

Example 1 with GStringBegin

use of org.apache.groovy.parser.antlr4.GroovyLexer.GStringBegin in project groovy by apache.

the class SmartDocumentFilter method parseDocument.

private void parseDocument() throws BadLocationException {
    GroovyLangLexer lexer;
    try {
        lexer = createLexer(styledDocument.getText(0, styledDocument.getLength()));
    } catch (IOException e) {
        e.printStackTrace();
        this.latest = false;
        return;
    }
    CommonTokenStream tokenStream = new CommonTokenStream(lexer);
    try {
        tokenStream.fill();
    } catch (LexerNoViableAltException | GroovySyntaxError e) {
        // ignore
        this.latest = false;
        return;
    } catch (Exception e) {
        e.printStackTrace();
        this.latest = false;
        return;
    }
    List<Token> tokenList = tokenStream.getTokens();
    List<Token> tokenListToRender;
    try {
        tokenListToRender = findTokensToRender(tokenList);
    } finally {
        this.setRenderRange(null);
    }
    for (Token token : tokenListToRender) {
        int tokenType = token.getType();
        if (EOF == tokenType) {
            continue;
        }
        int tokenStartIndex = token.getStartIndex();
        int tokenStopIndex = token.getStopIndex();
        int tokenLength = tokenStopIndex - tokenStartIndex + 1;
        styledDocument.setCharacterAttributes(tokenStartIndex, tokenLength, findStyleByTokenType(tokenType), true);
        if (GStringBegin == tokenType || GStringPart == tokenType) {
            styledDocument.setCharacterAttributes(tokenStartIndex + tokenLength - 1, 1, defaultStyle, true);
        }
    }
    this.latestTokenList = tokenList;
    this.latest = true;
}
Also used : CommonTokenStream(org.antlr.v4.runtime.CommonTokenStream) GroovyLangLexer(org.apache.groovy.parser.antlr4.GroovyLangLexer) LexerNoViableAltException(org.antlr.v4.runtime.LexerNoViableAltException) Token(org.antlr.v4.runtime.Token) IOException(java.io.IOException) GroovySyntaxError(org.apache.groovy.parser.antlr4.GroovySyntaxError) BadLocationException(javax.swing.text.BadLocationException) LexerNoViableAltException(org.antlr.v4.runtime.LexerNoViableAltException) IOException(java.io.IOException)

Aggregations

IOException (java.io.IOException)1 BadLocationException (javax.swing.text.BadLocationException)1 CommonTokenStream (org.antlr.v4.runtime.CommonTokenStream)1 LexerNoViableAltException (org.antlr.v4.runtime.LexerNoViableAltException)1 Token (org.antlr.v4.runtime.Token)1 GroovyLangLexer (org.apache.groovy.parser.antlr4.GroovyLangLexer)1 GroovySyntaxError (org.apache.groovy.parser.antlr4.GroovySyntaxError)1