我有一个语法规则
factoid:
Element Place
;
这取决于另一条规则:
Place:
name = ('sea' | 'air')
;
factoid规则似乎包含与Place相关的识别错误:
此行有多个标记 - 不能在规则内两次更改类型 - 当前'当前'时,不允许未分配的规则调用 已经创建了。
我不知道这意味着什么。有人可以解释这是什么以及如何解决它?
答案 0 :(得分:3)
我认为元素规则会生成一个对象。由于没有赋值,因此它成为当前。对 Place 的第二个未分配规则调用也将返回一个对象。但是当前指针已包含 Element 类型类,并且不能包含类 Place 。那么您可以尝试将 Place 分配给 factoid 的成员,此处称为 location :
factoid:
item=Element location=Place
;
我不确定是否需要将元素分配给项。如果Element未分配给成员,那么我希望 location 成为 Element 的成员或类似的东西。