2012-03-08 61 views
0

我有以下輸入:我應該如何處理Xtext中的模板字符串?

a: "a is {Foo foo}" 

foo哪裏是Foo類型;業務層最終將爲該變量提供一個值。處理輸入之後,兩個文件將生成:屬性文件和一個Java類:

a=a is {0} 

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

的想法是,我分配給每個消息的ID,給了我一個包含方法(其中名稱== Java類id)並且接受輸入參數來完成消息。

我的問題:我應該如何處理我的Xtext文法中的文本字符串?我希望代碼完成參數類型(Foo),但我不知道如何處理可以包含空格和任何有效的Unicode字符的字符串的其餘部分。

對此提出建議?

+0

MWE2做類似的事情。您可能必須爲此使用自定義詞法分析器。 – 2012-04-02 09:27:30

回答

0

我發現了一個更好的解決方案,其提供了一個非常簡單的語法和解決了一些其他問題:

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

因此,短信是一個字符串和參數列表。這樣,代碼完成非常簡單,如果要添加格式化程序,則不需要轉義序列:

a(Date d): "Date is " d("short"); 
相關問題