我試圖創建一個語法,將解析如下:的Xtext列表或只有一個項目
reference: java.util.String
但也
reference: {java.util.String, java.lang.Integer}
換句話說,我希望它解析合格名稱的列表,但也只能解析一個項目(在本例中未用'{'標記)。
我想這是什麼:
Reference:
'reference' ':' ('{' values+=QualifiedName (',' values+=QualifiedName)* '}') | (values+=QualifiedName);
不過,我得到一個錯誤:,缺少「{」在'Java的使用參考的第一種形式的時候(不{)。任何建議,我應該嘗試?
編輯:還試圖
Reference:
'reference' ':' ('{' values+=QualifiedName (',' values+=QualifiedName)* '}') | ((!'{')values+=QualifiedName);
,但在輸入得到一個沒有可行的替代 '!'語法定義中的錯誤。編輯2:我沒有與「逗號分隔列表」的問題,我試了這個分離,它運作良好。我唯一的問題是基於'{'字符來區分規則的兩部分。
太棒了,我現在明白了我錯了的地方:) – Deelazee 2012-02-16 12:07:59