protected SpecificationContext parse(Lexer lexer, Parser parser, InputStream is, Reader r) throws IOException, IllegalAccessException, PrintException {
ANTLRInputStream input = new ANTLRInputStream(r);
lexer.setInputStream(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
tokens.fill();
if (options.showTokens) {
for (Object tok : tokens.getTokens()) {
System.out.println(tok);
}
}
if (options.diagnostics) {
parser.addErrorListener(new DiagnosticErrorListener());
parser.getInterpreter().setPredictionMode(PredictionMode.LL_EXACT_AMBIG_DETECTION);
}
parser.setBuildParseTree(true);
// SLL overrides diagnostics
// %%% Not sure what it really is though.
if (options.sll) {
parser.getInterpreter().setPredictionMode(PredictionMode.SLL);
}
parser.setTokenStream(tokens);
parser.setTrace(options.trace);
SpecificationContext tree = ((GeckoIDLParser)parser).specification();
if (options.printTree) {
System.out.println(tree.toStringTree(parser));
}
if (options.gui) {
tree.inspect(parser);
}
if (options.psFile != null) {
tree.save(parser, options.psFile); // Generate postscript
}
return tree;
}
GeckoGenerator.java 文件源码
java
阅读 17
收藏 0
点赞 0
评论 0
项目:jamweaver
作者:
评论列表
文章目录