我正在使用Java8.g8语法和ANTLR4构建的识别器。这个语法将一些规则拆分为具有_lf_
和有时_lfno_
连接后缀的子规则 - 这是一个更简单的例子:
fieldAccess
: primary '.' Identifier
| 'super' '.' Identifier
| typeName '.' 'super' '.' Identifier
;
fieldAccess_lf_primary
: '.' Identifier
;
fieldAccess_lfno_primary
: 'super' '.' Identifier
| typeName '.' 'super' '.' Identifier
;
......这条规则最可怕:primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary
。
为了处理java文件,我在与规则匹配的侦听器函数中进行转换,并且做正确的事情,我需要理解规则,这也意味着能够发声。
有谁知道这些_lf_
和_lfno_
段代表什么,或者它们是什么的缩写以及我如何能够大声朗读它们?
任何人都可以了解他们想要做什么,以及为什么有必要这样做?
(我最好的猜测是他们在形成解析树的方式上强制转换 - fieldAccess
示例的两种方式,primary...
规则的八种方式 - 但除此之外,我很神秘。对ANTLR4参考的扫描并没有立即提出任何答案,而grep
只能在Java8.g8找到这种模式而不是任何其他{{3} }}。)
非常感谢任何帮助。欢呼声。