gpt4 book ai didi

parsing - Antlr语法,解析器规则中的隐式标记定义

转载 作者:行者123 更新时间:2023-12-02 06:16:51 24 4
gpt4 key购买 nike

发生了一件奇怪的事情。我定义了语法,这是摘录。

name  
: Letter
| Digit name
| Letter name
;

numeral
: Digit
| Digit numeral
;

fragment
Digit
: [0-9]
;

fragment
Letter
: [a-zA-Z]
;

那么为什么它只显示两行警告(字母和数字名称),其中我引用了一个片段,而下面的其他行完全没问题......

最佳答案

标记为片段的词法分析器规则只能由其他词法分析器规则使用,而不能由解析器规则使用。片段规则永远不会成为自己的 token 。

请确保您了解差异:What does "fragment" mean in ANTLR?

编辑

此外,我现在发现您在解析器中做了太多事情。规则 namenumeral 实际上应该是一个词法分析器规则:

Name
: ( Digit | Letter)* Letter
;

Numeral
: Digit+
;

在这种情况下,您不需要在任何解析器规则中考虑 Space 规则(这是关于刚刚删除的最后一个问题)。

关于parsing - Antlr语法,解析器规则中的隐式标记定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24862533/

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