0

我有以下输入:

 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 类,其中包含方法(其中 name == id)并接受类型化参数来完成消息。

我的问题:我应该如何处理我的 Xtext 语法中的文本字符串?我想对参数类型(Foo)进行代码完成,但我不知道如何处理字符串的其余部分,它可以包含空格和任何有效的 Unicode 字符。

建议?

4

1 回答 1

0

我找到了一个更好的解决方案,它提供了一个非常简单的语法并解决了其他一些问题:

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

所以文本消息是字符串和参数的列表。这样,代码完成非常简单,如果要添加格式化程序,则不需要转义序列:

a(Date d): "Date is " d( "short" );
于 2012-04-13T16:06:19.633 回答