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; }
if (hasNextChar) { hasNextChar = false; write(nextChar); return nextChar; write(c); return c; hasNextChar = true; nextChar = c; write('\\'); return '\\'; checkHexDigit(c); StringBuilder charNum = new StringBuilder(); charNum.append((char) c); checkHexDigit(c); charNum.append((char) c); write(rv);
/** * Reads characters from the underlying reader. * @see java.io.Reader#read(char[],int,int) */ public int read(char cbuf[], int off, int len) throws IOException { int c = 0; int count = 0; while (count < len && (c = read())!= -1) { cbuf[off + count] = (char) c; count++; } return (count == 0 && c == -1) ? -1 : count; }
protected Node doParse(final UnicodeEscapingReader reader) throws Exception { GroovyLexer lexer = new GroovyLexer(reader); reader.setLexer(lexer); GroovyRecognizer parser = GroovyRecognizer.make(lexer); parser.setSourceBuffer(sourceBuffer); tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); AntlrASTProcessor processor; // Decorate the AST w/line+col information processor = new AntlrASTProcessSnippets(); ast = processor.process(ast); return node(ast); } }
private SourceBuffer getSourceBuffer(String text) throws Exception { SourceBuffer buffer = new SourceBuffer(); Reader reader = new UnicodeEscapingReader(new StringReader(text), buffer); while (reader.read() != -1) { // empty loop // - read all characters till the end of the reader // UnicodeEscapingReader has side effects of // filling the buffer } return buffer; } }
@Override public int getColumn() { prevUnescape = escapingReader.getUnescapedUnicodeColumnCount(); return super.getColumn() + prevUnescape; }
protected Node doParse(final UnicodeEscapingReader reader) throws Exception { GroovyLexer lexer = new GroovyLexer(reader); reader.setLexer(lexer); GroovyRecognizer parser = GroovyRecognizer.make(lexer); parser.setSourceBuffer(sourceBuffer); tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); AntlrASTProcessor processor; // Decorate the AST w/line+col information processor = new AntlrASTProcessSnippets(); ast = processor.process(ast); return node(ast); } }
if (!text.isEmpty()) { SourceBuffer sourceBuffer = new SourceBuffer(); try (UnicodeEscapingReader reader = new UnicodeEscapingReader(new StringReader(text), sourceBuffer)) { GroovyLexer lexer = new GroovyLexer(new UnicodeLexerSharedInputState(reader)); lexer.setWhitespaceIncluded(true);
@Override public int getTokenStartColumn() { if (line == tokenStartLine) { return super.getTokenStartColumn() + escapingReader.getUnescapedUnicodeColumnCount(); } else { return super.getTokenStartColumn() + prevUnescape; } } }
private 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; }
protected Node doParse(final UnicodeEscapingReader reader) throws Exception { GroovyLexer lexer = new GroovyLexer(reader); reader.setLexer(lexer); GroovyRecognizer parser = GroovyRecognizer.make(lexer); parser.setSourceBuffer(sourceBuffer); tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); AntlrASTProcessor processor; // Decorate the AST w/line+col information processor = new AntlrASTProcessSnippets(); ast = processor.process(ast); return node(ast); } }
public Node parse(final Reader reader, final String fileName) throws ParseException { assert reader != null; assert fileName != null; sourceBuffer = new SourceBuffer(); try { return doParse(new UnicodeEscapingReader(reader, sourceBuffer)); } catch (RecognitionException e) { throw new ParseException(e.getMessage(), new ParseException.Location(e.getLine(), e.getColumn(), fileName)); } catch (Exception e) { throw new ParseException(e); } }
if (hasNextChar) { hasNextChar = false; write(nextChar); return nextChar; write(c); return c; hasNextChar = true; nextChar = c; write('\\'); return '\\'; checkHexDigit(c); StringBuffer charNum = new StringBuffer(); charNum.append((char) c); checkHexDigit(c); charNum.append((char) c); write(rv); return rv;
/** * Reads characters from the underlying reader. * @see java.io.Reader#read(char[],int,int) */ public int read(char cbuf[], int off, int len) throws IOException { int c = 0; int count = 0; while (count < len && (c = read())!= -1) { cbuf[off + count] = (char) c; count++; } return (count == 0 && c == -1) ? -1 : count; }
@Override public int getColumn() { prevUnescape = escapingReader.getUnescapedUnicodeColumnCount(); return super.getColumn() + prevUnescape; }
private static String[] getGroovyTokenNames(String input) { GroovyRecognizer groovyParser = null; SourceBuffer groovySourceBuffer = new SourceBuffer(); UnicodeEscapingReader groovyUnicodeReader = new UnicodeEscapingReader(new StringReader(input), groovySourceBuffer); GroovyLexer groovyLexer = new GroovyLexer(groovyUnicodeReader); groovyUnicodeReader.setLexer(groovyLexer); groovyParser = GroovyRecognizer.make(groovyLexer); return groovyParser.getTokenNames(); }
protected Node doParse(final UnicodeEscapingReader reader) throws Exception { JavaLexer lexer = new JavaLexer(reader); reader.setLexer(lexer); JavaRecognizer parser = JavaRecognizer.make(lexer); parser.setSourceBuffer(sourceBuffer); tokenNames = parser.getTokenNames(); parser.compilationUnit(); AST ast = parser.getAST(); AntlrASTProcessor processor; // Convert the Java AST into Groovy AST processor = new PreOrderTraversal(new Java2GroovyConverter(tokenNames)); processor.process(ast); // Decorate the AST w/line+col information processor = new AntlrASTProcessSnippets(); ast = processor.process(ast); return node(ast); } }
public Node parse(final Reader reader, final String fileName) throws ParseException { assert reader != null; assert fileName != null; sourceBuffer = new SourceBuffer(); try { return doParse(new UnicodeEscapingReader(reader, sourceBuffer)); } catch (RecognitionException e) { throw new ParseException(e.getMessage(), new ParseException.Location(e.getLine(), e.getColumn(), fileName)); } catch (Exception e) { throw new ParseException(e); } }
if (hasNextChar) { hasNextChar = false; write(nextChar); return nextChar; write(c); return c; hasNextChar = true; nextChar = c; write('\\'); return '\\'; checkHexDigit(c); StringBuffer charNum = new StringBuffer(); charNum.append((char) c); checkHexDigit(c); charNum.append((char) c); write(rv); return rv;
/** * Reads characters from the underlying reader. * @see java.io.Reader#read(char[],int,int) */ public int read(char cbuf[], int off, int len) throws IOException { int c = 0; int count = 0; while (count < len && (c = read())!= -1) { cbuf[off + count] = (char) c; count++; } return (count == 0 && c == -1) ? -1 : count; }