私は最初の Xtext プロジェクトを開始しましたが、相互参照で問題が発生しました (これがおそらく問題だと思います)。DatType、InterfaceDescription ルール、および Enumeration があります。私がやりたいことは、ユーザーが列挙型からデータ型を選択するか、新しいデータ型を定義できるようにすることで、インターフェイスを記述することです。
Enum は問題なく動作しますが、「datatype test1」で新しいデータ型を定義し、それを InterfaceDescription 内で使用すると、次のエラーが発生します: 'XtextReconcilerJob' で問題が発生しました。「XtextReconcileJon」中に内部エラーが発生しました。そして、それがエラー スタックです: http://pastebin.com/evFki2mB
DataType:
'datatype' name=ID ('mapto' mappedType = JAVAID)?
;
Interface:
interfaceType=InterfaceType name=ID datatype=([DataType]| DataTypeEnum)
;
enum InterfaceType:
INLET = 'inlet' |
OUTLET = 'outlet'
;
DataTypeEnum:
INT8 = 'int8' | INT16 = 'int16' | INT32 = 'int32' |
DOUBLE = 'double' | SINGLE = 'single' | REAL = 'real' |
BOOLEAN = 'boolean' | CHAR = 'char'
;
別のルールで DataType Cross-Reference を使用すると、次のように機能します。
ParamList:
'param:' datatype=[DataType] name=ID
;
誰が問題を知っていますか?