gpt4 book ai didi

java - 阅读 ANTLR 语法

转载 作者:行者123 更新时间:2023-12-01 10:44:06 25 4
gpt4 key购买 nike

由于语法,Antlr 生成一个解析器。

但是,我需要发布语法本身。

例如,我需要知道有多少条规则,有多少个可选子规则,等等。

例如,

Grammar grammar = read_stream ('grammar_file.g4).
for (Rule rule : grammar.getRules())
{
//....
}

ANTLR4 是否存在这样的开箱即用的东西?

最佳答案

当然。请参阅 interpreted grammars 上的文档。从语法文件或字符串,您可以创建 Grammar object ,其中有很多您可能感兴趣的方法,例如 getRule

这是一个基于该页面上的文档的快速示例(我尚未实际测试过!):

LexerGrammar lg = new LexerGrammar(
"lexer grammar L;\n" +
"A : 'a' ;\n" +
"B : 'b' ;\n" +
"C : 'c' ;\n");
Grammar g = new Grammar(
"parser grammar T;\n" +
"s : (A|B)* C ;\n",
lg);

for (String ruleName : g.getRuleNames()) {
Rule rule = g.getRule(null, ruleName);
// ...
}

请注意,上述内容不包括导入语法的规则。您还可以通过 getImportedGrammars 获取这些内容。

关于java - 阅读 ANTLR 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34291509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com