Я хочу преобразовать очень простую грамматику Antlr в Xtext, поэтому никаких синтаксических предикатов , никаких необычных функций Antlr нет предоставлено Xtext . Рассмотрим эту грамматику
grammar simple; // Antlr3
foo: number+;
number: NUMBER;
NUMBER: '0'..'9'+;
и ее аналог Xtext
grammar Simple; // Xtext
import "http://www.eclipse.org/emf/2002/Ecore" as ecore
generate Simple "http://www.example.org/Simple"
Foo: dummy=Number+;
Number: NUMBER_TOKEN;
terminal NUMBER_TOKEN: '0'..'9'+;
. Xtext использует Antlr за кулисами, но эти два формата не совсем одинаковы. Есть довольно много раздражающих (и частично понятных) вещей, которые мне нужно изменить, в том числе:
терминал
ключевое слово import "http: //www.eclipse .org / emf / 2002 / Ecore "как ecore
, чтобы терминалы работали foo: dummy = number +
Есть ли инструмент для автоматического преобразования хотя бы в простых случаях? Если нет, существует ли более полный контрольный список таких необходимых изменений?