<EOF> ANTLR 4中的位置有点奇怪?



我正在尝试ANTLR 4,它为《最终的ANTLR 4参考>》一书中的简单Hello语法提供了以下输出<:

[@2,12:11='<EOF>',<-1>,2:0]

根据该书的解释,12:11符号意味着<EOF>令牌从位置12开始,到11结束。这怎么可能?

附言。我正在研究Windows。

在 ANTLR 4 中,两个端点都是包含的。具有非独占终结点的跨度长度如下:

长度 = 结束 - 开始 + 1

EOF符号的长度为0(它出现在已知位置,但不包含输入符号)。如果输入长度为 12 个字符,则得到以下结束位置公式:

0 = 结束 - 12 + 1

因此:

结束 = 0 + 12 - 1 = 11

相关内容

  • 没有找到相关文章

最新更新