IFT313 Introduction aux langages formels Froduald Kabanza Département d’informatique Université de Sherbrooke JavaCC Objectifs • Introduction à JavaCC IFT313 © Froduald Kabanza 2 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 3 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 4 Exemples • Calc1 • Calc2 IFT313 © Froduald Kabanza 5