2012-03-08 12 views
0

Iは、以下の入力を有する:Xtextでテンプレート文字列をどのように扱うべきですか?

a: "a is {Foo foo}" 
fooタイプ Fooである

。ビジネス層は最終的に変数の値を提供します。入力を処理した後、2つのファイルが生成されます:プロパティファイルとJavaクラス:

a=a is {0} 

public static I18nMessage a(Foo foo) { 
    return new I18nMessageBuilder().id("a").args(foo).build(); 
} 

アイデアがある私は私の方法(名前==を含むJavaクラスを与えるID各メッセージを割り当てることid)であり、型付きパラメータを受け入れてメッセージを完成させます。

私の質問:Xtext文法のテキスト文字列をどうすればよいですか?私は、パラメータの種類(Foo)のコード補完をしたいと思いますが、スペースと有効なUnicode文字を含むことができる文字列の残りの部分をどのように扱うかはわかりません。

提案?

+0

MWE2は同様の処理を行います。おそらくカスタムレクサーを使用する必要があります。 –

答えて

0

私はかなり簡単な文法を与え、他のいくつかの問題が解決し、よりよい解決策が見つかりました:

a(Foo foo): "a is " foo; 

だから、テキストメッセージが文字列やパラメータのリストです。このようにすれば、コード補完は非常に簡単で、フォーマッタを追加したい場合はエスケープシーケンスが不要です。

a(Date d): "Date is " d("short"); 
関連する問題