Implémenter un langage sur Parrot - partie 9: la syntaxe
Après avoir écrit un
tokenizer,
avoir produit les unités lexicales
et avoir défini
une grammaire
pour le langage Naam, je passe maintenant à la vérification de la syntaxe.
La vérification de la syntaxe se passe dans la classe Compiler. - C’est pas
le meilleur choix de nom et ça changera par la suite -. Basiquement, cette
classe ne fait que suivre la logique de la grammaire.
Quelques commentaires sur ce code:
Plusieurs fois j’utilise la classe Error, qui n’existe pas. C’est parce que
je ne veux pas encore réfléchir à la gestion des erreurs. Les seuls cas qui
m’intéressent pour l’instant sont ceux où ça fonctionne.
C’est la méthode accept, toute simple, qui effectue la vérification
de la syntaxe en comparant l’unité lexicale attendue avec celle réellement
disponible. On constate que les unités lexicales (représentées par @units)
sont détruites au fur et à mesure de leur consommation.
La prochaine, il sera enfin temps d’émettre le code PIR.