4

我有语法规则

factoid:
Element Place
;

这取决于另一个规则:

Place:
name = ('sea' | 'air')
;

factoid 规则似乎包含与 Place 相关的识别错误:

此行有多个标记 - 不能在规则内两次更改类型 - 当“当前”已创建时,不允许未分配的规则调用。

我不知道这是什么意思。有人可以解释这是什么以及如何解决它吗?

4

1 回答 1

5

我认为Element规则会生成一个对象。由于没有分配,因此成为当前分配。对Place的第二个未分配规则调用也将返回一个对象。但是当前指针已经包含Element类型的类,也不能包含Place类。因此,您可以尝试将Place分配给factoid的成员,这里称为location

factoid:
 item=Element location=Place
;

我不确定是否需要将元素分配给项目。如果 Element 未分配给成员,那么我希望该位置将成为Element或类似的成员。

于 2013-04-12T19:19:50.623 回答