IFT313
Introduction aux langages formels
Froduald Kabanza
Département d’informatique Université de Sherbrooke
JavaCC
IFT313 © Froduald Kabanza 2
Objectifs
• Introduction à JavaCC
IFT313 © Froduald Kabanza
3
Références
[2] Appel, A. and Palsberg. J. Modern Compiler Implementation in Java.
Second Edition. Cambridge, 2004.
– Sections 3.4 à 3.5
[6] JavaCC : A parser / scanner generator for Java: http://
planiart.usherbrooke.ca/kabanza/cours/ift313/Tools/javacc-5.0.rar
IFT313 © Froduald Kabanza 4
JavaCC
• JavaCC ne fait pas que valider la syntaxe.
• Avec les attribut sémantiques, JavaCC permet:
– D’effectuer des calculs à la volé (exemple Calc1)
– De construire un arbre syntaxique abstrait (exemple Calc2 ci-après);
• Limites avec JavaCC:
– Un seul attribut par symbole.
– Une seule passe d’évaluation.
• Pour aller au-delà, il faut utiliser d’autres outils ou des méthodes adhoc pour évaluer les attributs (avec l’aide l’outil JJTree). Ceci est au-delà du cours.
• .
IFT313 © Froduald Kabanza 5
Exemples
• Calc1
• Calc2