Une semaine de XText

Outline_eclipse

Cette semaine (et la semaine dernière) je n'ai pas passé mon temps avec mes enfants. Non, comme tout jeune embauché, j'ai passé mon temps au bureau à bosser sur un domaine que je connaissais jusqu'é présent assez mal : l'écriture de grammaire. En fait, à l'origine, je devais juste écrire un éditeur avec coloration syntaxique pour un langage propriétaire utilisé par le logiciel de mon entreprise. Seulement, je me suis dit qu'il ne serait pas beaucoup plus compliqué, mais en revanche vraiment plus intéressant, d'extraire la grammaire du langage et de laisser Eclipse se débrouiller avec pour faire la coloration syntaxique, l'outline et peut-être même un peu de complétion. Dit comme ça, ça a l'air fou. Mais grâce à Xtext, c'est possible. Et aujourd'hui, après moins de dix jours de boulot (ce qui pour un débutant dans le domaine est vraiment très court), j'ai une grammaire à peu prés complète du langage (regardez l'image jointe pour vous en convaincre).
je dois dire que Xtext est particulièrement bien fichu. on dispose d'un éditeur avec coloration syntaxique pour les fichiers antlr et, une fois ces fichiers compilés, on peut lancer un eclipse configuré pour reconnaître le langage sur lequel on travaille, ce qui permet de tester très facilement la qualité de l'arbre syntaxique généré (grâce à l'outline, justement, qui affiche tous les symboles reconnus).
Mon fan doit être fou, lui qui attend chez mon ancien employeur depuis environ 2 ans de pouvoir faire ce que j'ai fait sur un langage encore plus merdique 😉
Moi, de mon coté, je vais m'attacher à améliorer cet outline pour n'afficher que les éléments utiles dans l'outline, pour éventuellement ajouter un peu de complétion (et surtout l'affichage de la doc associée). Mais à mon avis, pour tout ça, je vais devoir plonger dans l'enfer des modèles ECore de Eclipse … Et ça risque de pas être de la tarte, même avec la doc de Xtext.
Publicités

Une réflexion sur “Une semaine de XText

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s