public static ParsingResult parseText(Grammar g,
LexerGrammar lg,
String startRuleName,
final VirtualFile grammarFile,
String inputText)
throws IOException
{
ANTLRInputStream input = new ANTLRInputStream(inputText);
LexerInterpreter lexEngine;
lexEngine = lg.createLexerInterpreter(input);
SyntaxErrorListener syntaxErrorListener = new SyntaxErrorListener();
lexEngine.removeErrorListeners();
lexEngine.addErrorListener(syntaxErrorListener);
CommonTokenStream tokens = new TokenStreamSubset(lexEngine);
return parseText(g, lg, startRuleName, grammarFile, syntaxErrorListener, tokens, 0);
}
java类org.antlr.v4.runtime.LexerInterpreter的实例源码
ParsingUtils.java 文件源码
项目:intellij-plugin-v4
阅读 27
收藏 0
点赞 0
评论 0
Grammar.java 文件源码
项目:codebuff
阅读 31
收藏 0
点赞 0
评论 0
public LexerInterpreter createLexerInterpreter(CharStream input) {
if (this.isParser()) {
throw new IllegalStateException("A lexer interpreter can only be created for a lexer or combined grammar.");
}
if (this.isCombined()) {
return implicitLexer.createLexerInterpreter(input);
}
char[] serializedAtn = ATNSerializer.getSerializedAsChars(atn);
ATN deserialized = new ATNDeserializer().deserialize(serializedAtn);
return new LexerInterpreter(fileName, getVocabulary(), Arrays.asList(getRuleNames()), ((LexerGrammar)this).modes.keySet(), deserialized, input);
}