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