Ich möchte eine sehr einfache Antlr-Grammatik in Xtext konvertieren, also kein syntaktische Prädikate , nein ausgefallene Funktionen von Antlr, die nicht von Xtext bereitgestellt werden . Überlege dir diese Grammatik
%Vor%und sein Xtext-Gegenstück
%Vor%Xtext verwendet Antlr hinter den Kulissen, aber die beiden Formate sind nicht genau gleich. Es gibt einige lästige (und teilweise verständliche) Dinge, die ich ändern muss, einschließlich:
terminal
import "http://www.eclipse.org/emf/2002/Ecore" as ecore
hinzu, damit Terminals funktionieren Gibt es ein Tool, um diese Konvertierung zumindest für einfache Fälle automatisch durchzuführen? Wenn nicht, gibt es eine vollständigere Checkliste für solche erforderlichen Änderungen?
Es ist im Grunde nicht möglich, diese Konvertierung automatisch durchzuführen, da die Antlr-Grammatik keine Informationen enthält, die in der Xtext-Grammatik benötigt werden. Die Regelnamen in Xtext werden verwendet, um Klassen von ihnen zu erstellen. Es gibt Zuordnungen in Xtext, die zu Getter und Setter in diesen Klassen werden. Diese Zuordnungen sollten jedoch nicht für jeden Regelaufruf verwendet werden, da es in Xtext spezielle Muster gibt, die es ermöglichen, das Rauschen in dem resultierenden AST zu reduzieren. So etwas macht es kaum möglich, diese Transformation automatisch durchzuführen. Es ist jedoch normalerweise einfach, die Antlr-Grammatik in den Xtext-Editor zu kopieren und die Probleme manuell zu beheben.