我有以下输入:
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,它给我一个包含方法(其中name == id)的Java类,并接受类型参数来完成消息。
我的问题:我应该如何处理Xtext语法中的文本字符串?我想为参数类型(Foo
)完成代码,但我不知道如何处理可以包含空格和任何有效Unicode字符的字符串的其余部分。
建议?
答案 0 :(得分:0)
我找到了一个更好的解决方案,它提供了一个非常简单的语法并解决了其他一些问题:
a(Foo foo): "a is " foo;
因此,文本消息是字符串和参数的列表。这样,代码完成非常简单,如果要添加格式化程序,则不需要转义序列:
a(Date d): "Date is " d( "short" );