本文整理汇总了Java中org.antlr.v4.Tool.parseGrammarFromString方法的典型用法代码示例。如果您正苦于以下问题:Java Tool.parseGrammarFromString方法的具体用法?Java Tool.parseGrammarFromString怎么用?Java Tool.parseGrammarFromString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.antlr.v4.Tool
的用法示例。
在下文中一共展示了Tool.parseGrammarFromString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: parseImpl
import org.antlr.v4.Tool; //导入方法依赖的package包/类
@Override
protected CompiledModelV4 parseImpl(ParserTaskManager taskManager, ParseContext context, final DocumentSnapshot snapshot)
throws InterruptedException, ExecutionException {
Parameters.notNull("snapshot", snapshot);
synchronized (lock) {
if (snapshot.equals(lastSnapshot)) {
if (lastException != null) {
throw new ExecutionException("An unexpected error occurred.", lastException);
}
return new CompiledModelV4(snapshot, lastResult);
}
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.log(Level.FINE, "Reparsing snapshot {0}", new Object[] { snapshot });
}
try {
final List<SyntaxError> syntaxErrors = new ArrayList<>();
final Tool tool = new CustomTool(snapshot);
tool.errMgr = new CustomErrorManager(tool);
tool.addListener(new ErrorListener(snapshot, tool, syntaxErrors));
tool.libDirectory = new File(snapshot.getVersionedDocument().getFileObject().getPath()).getParent();
GrammarRootAST root = tool.parseGrammarFromString(snapshot.getText().toString());
Grammar grammar = null;
CommonToken[] tokens = null;
if (root != null) {
ANTLRStringStream inputStream = (ANTLRStringStream)root.token.getInputStream();
inputStream.name = snapshot.getVersionedDocument().getFileObject().getPath();
grammar = tool.createGrammar(root);
grammar.fileName = snapshot.getVersionedDocument().getFileObject().getNameExt();
tool.process(grammar, false);
CommonTokenStream tokenStream = (CommonTokenStream)root.tokenStream;
List<? extends Token> tokenList = tokenStream.getTokens();
tokens = tokenList.toArray(new CommonToken[0]);
}
CompiledFileModelV4 currentResult = new CompiledFileModelV4(grammar, root, syntaxErrors, snapshot.getVersionedDocument().getFileObject(), tokens);
lastSnapshot = snapshot;
lastResult = currentResult;
lastException = null;
return new CompiledModelV4(snapshot, currentResult);
} catch (Exception ex) {
lastSnapshot = snapshot;
lastResult = null;
lastException = ex;
throw new ExecutionException("An unexpected error occurred.", ex);
}
}
}