1
我已經寫了下面的語法XTEXT交叉引用
Model:
package = PackageDec?
greetings+=Greeting*
usage+=Usage* ;
PackageDec:
'package' name=QualifiedName ;
Greeting:
'greet' name=ID '{' ops += Operation* '}' ;
Operation:
'op' name=ID ('(' ')' '{' '}')? ;
QualifiedName:
ID ('.' ID)*;
Usage:
'use';
通過以上我可以下面的腳本編寫。
package p1.p2
greet G1 {op f1 op f2 }
現在我需要寫的東西是這樣的:
package p1.p2
greet G1 {op f1 op f2 op f3}
use p1.p2.G1.f1
use p1.p2.G1
use p1.p2.G1.f3
爲了支持我改變了使用規則是這樣
Usage:
'use' head=[Greet|QualifiedName] =>('.' tail=[Operation])?
然而,當我產生XTEXT文物是抱怨多備擇方案。
請讓我知道如何爲此寫出正確的語法規則。