ANTLR语法分析器
我正在尝试创建一个ParserInterpreter。从该页面的第三个示例(标记为加载单独的lexer/parser语法)中,我看到了以下代码:ANTLR语法分析器,antlr,antlr4,Antlr,Antlr4,我正在尝试创建一个ParserInterpreter。从该页面的第三个示例(标记为加载单独的lexer/parser语法)中,我看到了以下代码: public static ParseTree parse(String fileNameToParse, String lexerGrammarFileName, String parserGrammarFileName,
public static ParseTree parse(String fileNameToParse,
String lexerGrammarFileName,
String parserGrammarFileName,
String startRule)
throws IOException{
final LexerGrammar lg = (LexerGrammar) Grammar.load(lexerGrammarFileName);
final Grammar pg = Grammar.load(parserGrammarFileName, lg);
CharStream input = CharStreams.fromPath(Paths.get(fileNameToParse));
LexerInterpreter lexEngine = lg.createLexerInterpreter(input);
CommonTokenStream tokens = new CommonTokenStream(lexEngine);
ParserInterpreter parser = pg.createParserInterpreter(tokens);
ParseTree t = parser.parse(pg.getRule(startRule).index);
System.out.println("parse tree: " + t.toStringTree(parser));
return t;
}
在第5行Grammar.load
上传递了两个参数,一个String
和一个lexergramar
。但是,JavaDoc for显示了只使用一个参数的方法
我是不是遗漏了什么?如果没有,在给定lexer语法和解析器语法文件的情况下,是否存在创建ParserInterpreter的变通方法