2013-06-14 7 views
0

J'ai défini mon DSL dans XText et il a automatiquement une version Java de l'analyseur de langage et du squelette de génération de code généré, ce qui est vraiment cool.XText: Comment créer l'analyseur pour plusieurs langues cible

Le problème est que mon DSL est destiné à être consommé par des projets qui sont implémentés avec plusieurs langues. Vous pouvez imaginer que nous pourrions avoir besoin d'analyser le DSL en C#, Java et Ruby au moins. Donc la question est: Y at-il un moyen de générer l'analyseur pour plusieurs langues avec l'aide de xtext?

Merci d'avance pour toute aide!

Répondre

2

Le composant d'analyse pur est seulement une petite partie de la suite Xtext complète. L'intégration dans l'Eclipse IDE et le générateur de Xtend sont deux gros morceaux de code. Et Xtext s'appuie sur le modèle EMF Ecore. Aucune de ces parties n'est disponible dans d'autres langues.

Donc en cours d'exécution Xtext à partir de plain C# et Ruby n'est pas possible.

Qu'est-ce que vous pouvez faire:

  • Vous pouvez emballer l'analyseur et le générateur des choses dans un bocal autonome et appeler comme un processus externe de partout (y compris de C# et Ruby). Ce serait comme javac pour votre propre DSL.

  • Vous pouvez exécuter votre code Ruby dans JRuby et appeler le contenu Xtext à partir de là. Puisque tout fonctionne dans la même JVM, vous aurez un meilleur contrôle que d'exécuter un programme externe.

  • Vous pouvez utiliser Xtext afin d'obtenir un éditeur convivial avec tout ce qu'il faut mais mettre en œuvre une grammaire indépendante pour la langue que vous voulez.

Questions connexes