每次重复长度增加的数字块序列的语法规则

  • 本文关键字:数字 规则 语法 增加 antlr antlr4
  • 更新时间 :
  • 英文 :


我想生成一个解析规则(使用ANTLR 4),该规则定义由":"分隔的二进制块的重复链。

每个区块比前一个区块多出一位数字,从两位数字开始。例如:

01:010:0001:01010 ...

链可以具有任意数量的这些块。

现在我已经将规则定义为:

BIN : [0-1]+ ;
connections : BIN (':' BIN)* ;

我知道如何检查每个块是否至少有两个二进制数字,但不是正确的数字。有没有什么方法可以让它更具体,使用ANTLR?

如果有语义谓词,它看起来类似于以下内容:

connections locals[int i] :
   {$i = 2;} BIN {check}? ({$i++;} ':' BIN {$check}?)* ;
BIN :
   [0-1]+ ;

其中CCD_ 1是CCD_。

另一种选择是生成解析树访问者,并在遍历解析树时验证BIN节点。

相关内容

  • 没有找到相关文章

最新更新