在 ANTLR v4 中,有没有办法列出给定规则的下一个可能规则?

问题描述 投票:0回答:0

我看过 ANTLR 的书,但我还没有找到一种方法来获取给定规则的下一个可能规则。

例如,使用像这样的测试语法

grammar ArrayInit;
init : '{' value (',' value)* '}' ; 
value : init 
    | INT
    ;
INT : [0-9]+ ;
WS : [ \t\r\n]+ -> skip ;

有没有办法迭代遍历规则并列出下一个可能的规则?

对于像上面的语法,我希望能够从

init
规则开始。当我给出
init
规则时,我希望得到下一个可能的选项
{
value
、(
,
value
)和
}
.

这样我就可以弄清楚下一个可能的标记是什么。我将能够从

init
规则开始,并迭代地遍历语法,看到
init
->
{ value }
可能与逗号变体。

我浏览了 ANTLR 课程。我能够使用解析器的

getRuleNames
函数来获取所有规则。但是,我不能用它来确定哪些规则遵循给定规则。

java parsing antlr grammar
© www.soinside.com 2019 - 2024. All rights reserved.