Как мне обработать шаблон строки в Xtext? - PullRequest
0 голосов
/ 08 марта 2012

У меня есть следующий ввод:

 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();
 }

Идея состоит в том, что я назначаю каждому сообщению идентификатор, который дает мне класс Java, который содержит методы (где name == id) и который принимает типизированные параметры для завершения сообщений.

Мой вопрос: как мне обрабатывать текстовые строки в моей грамматике Xtext? Я хотел бы иметь завершение кода для типов параметров (Foo), но я не знаю, как обрабатывать остальную часть строки, которая может содержать пробелы и любой допустимый символ Unicode.

Предложения

1 Ответ

0 голосов
/ 13 апреля 2012

Я нашел лучшее решение, которое дает довольно простую грамматику и решает некоторые другие проблемы:

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

Итак, текстовое сообщение представляет собой список строк и параметров.Таким образом, завершение кода очень простое и нет необходимости в escape-последовательностях, если вы хотите добавить форматеры:

a(Date d): "Date is " d( "short" );
...