1
9
“缺少属性访问”意味着您引用了一个作用域(
一般来说,解决属性问题的一个好方法是查看为相关规则生成的解析器方法。 例如,当我有点生疏时,我最初尝试创建一个新规则:
导致“ 规则全名的未知属性 “。所以我尝试
结果是” 缺少属性访问 “。查看生成的解析器方法可以清楚地了解我需要做什么。虽然有一些神秘的部分,但与范围(变量)相关的部分很容易理解:
在查看生成的代码之后,很容易看到
在您的情况下,您需要的版本可能是不同的,但是您通常可以通过查看生成的代码很容易地找到它。 |
2
3
在最初的语法中,为什么不包括它要求的属性,最有可能是:
你的每一条规则(
我觉得你的春格规则应该稍微改一下,而不是
您可能还需要进行一些其他格式化,通常解析器规则(以小写字母开始)出现在lexer规则之前(以大写字母开始)。 另外,当我在框中键入时,chunker规则是从新行开始的,但在我原来的答案中,它不是从新行开始的。 |
3
1
如果你不小心做了傻事
|
4
0
找到更好的方法后回答问题…
问题是我在lexer和解析器之间变得混乱(这显然很常见)。大写的项目是词汇的,在解析器中是小写的。现在看来这是可行的。(注意,我把np改为nn)。 |
paranoider · /ANTLR解析器规则中的s/s 6 年前 |
tuk · Antlr分析规则,用于分析具有匹配大括号的字符串 6 年前 |
Ritwik Bhar · Antlr-解析多行#为C.g4定义 6 年前 |
Nebulosar · Antlr语法错误:不匹配的输入“p”应为WS 7 年前 |