Konvertiere einfache Antlr-Grammatik in Xtext

9

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:

  • Präfix-Terminals mit dem Schlüsselwort terminal
  • Fügen Sie import "http://www.eclipse.org/emf/2002/Ecore" as ecore hinzu, damit Terminals funktionieren
  • Fügen Sie der Regel auf oberster Ebene ein Feature hinzu, z. %Code%
  • Denken Sie daran, dass die Namen von Regeln und Terminals eindeutig sein müssen, auch wenn die Groß- und Kleinschreibung nicht beachtet wird.
  • Optional können Sie den ersten Buchstaben der Regelnamen nach Java-Konvention in Großbuchstaben schreiben.

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?

    
Adam Schmideg 26.11.2011, 16:22
quelle

1 Antwort

3

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.

    
Sebastian Zarnekow 28.11.2011, 06:22
quelle

Tags und Links