use of org.codehaus.groovy.antlr.SourceBuffer in project groovy-core by groovy.
the class Java2GroovyProcessor method getGroovyTokenNames.
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();
}
use of org.codehaus.groovy.antlr.SourceBuffer in project groovy-core by groovy.
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;
}
use of org.codehaus.groovy.antlr.SourceBuffer in project groovy-core by groovy.
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);
}
use of org.codehaus.groovy.antlr.SourceBuffer in project groovy-core by groovy.
the class GroovyRootDocBuilder method parseJava.
private Map<String, GroovyClassDoc> parseJava(String packagePath, String file, String src) throws RecognitionException, TokenStreamException {
SourceBuffer sourceBuffer = new SourceBuffer();
JavaRecognizer parser = getJavaParser(src, sourceBuffer);
String[] tokenNames = parser.getTokenNames();
try {
parser.compilationUnit();
} catch (OutOfMemoryError e) {
log.error("Out of memory while processing: " + packagePath + "/" + file);
throw e;
}
AST ast = parser.getAST();
// modify the Java AST into a Groovy AST (just token types)
Visitor java2groovyConverter = new Java2GroovyConverter(tokenNames);
AntlrASTProcessor java2groovyTraverser = new PreOrderTraversal(java2groovyConverter);
java2groovyTraverser.process(ast);
// now mutate (groovify) the ast into groovy
Visitor groovifier = new Groovifier(tokenNames, false);
AntlrASTProcessor groovifierTraverser = new PreOrderTraversal(groovifier);
groovifierTraverser.process(ast);
// now do the business
Visitor visitor = new SimpleGroovyClassDocAssembler(packagePath, file, sourceBuffer, links, properties, false);
AntlrASTProcessor traverser = new SourceCodeTraversal(visitor);
traverser.process(ast);
return ((SimpleGroovyClassDocAssembler) visitor).getGroovyClassDocs();
}
use of org.codehaus.groovy.antlr.SourceBuffer in project groovy-core by groovy.
the class GroovyRootDocBuilder method parseGroovy.
private Map<String, GroovyClassDoc> parseGroovy(String packagePath, String file, String src) throws RecognitionException, TokenStreamException {
SourceBuffer sourceBuffer = new SourceBuffer();
GroovyRecognizer parser = getGroovyParser(src, sourceBuffer);
try {
parser.compilationUnit();
} catch (OutOfMemoryError e) {
log.error("Out of memory while processing: " + packagePath + "/" + file);
throw e;
}
AST ast = parser.getAST();
// now do the business
Visitor visitor = new SimpleGroovyClassDocAssembler(packagePath, file, sourceBuffer, links, properties, true);
AntlrASTProcessor traverser = new SourceCodeTraversal(visitor);
traverser.process(ast);
return ((SimpleGroovyClassDocAssembler) visitor).getGroovyClassDocs();
}
Aggregations