1

Xtext で作成したデータ型に問題があります。問題はこの関数にあります。

    «FOR e: bla.EAllAttributes»
      «e.EType.name» «e.name»;
    «ENDFOR»

この for ループは、e.EType.name の EInt または EString を返すだけです。しかし、DSL で作成された double、boolean などの最終規則/データ型が必要です。文字列式を含むすべての最終規則は EString として返され、数字のみを含む規則は EInt として返されるようです。ただし、列挙は正しく返されます...

よろしくお願いいたします。

4

1 に答える 1

2

マニュアルには、問題を説明するセクションがあります。「リファレンス ドキュメント」、「文法言語」、「構文」、「ルール」、「ターミナル ルール」、「戻り値の型」を参照してください。

各最終規則は原子値 (Ecore EDataType) を返します。デフォルトでは、ecore::EString のインスタンスが返されると想定されています。ただし、別のタイプを提供したい場合は、それを指定できます。

このセクションでは、文法の変更と、提供する必要がある値コンバーターの登録についても概説します。

別のセクション「データ型ルール」もあります。基本的には「ターミナル ルール」の場合と同じであり、「値コンバーター」セクションに転送されます。

于 2012-12-23T18:30:18.237 に答える