Académique Documents
Professionnel Documents
Culture Documents
td03 PDF
td03 PDF
1
2. Grammaire an bn – Premier programme avec Cup
Documentation de Cup : http://www2.cs.tum.edu/projects/cup/
— Créer un nouveau projet td3.2
— Depuis la page http://www2.cs.tum.edu/projects/cup/, télécharger java-cup-11b.jar
et java-cup-11b-runtime.jar.
— Depuis la page https://dept-info.labri.fr/ENSEIGNEMENT/compilation/tds/td3/ :
Télécharger l’archive td3.2.tar.gz et construire un nouveau projet avec son contenu.
— Lancer la commande ant parser.
Cette action va produire :
— src/fr/ubordeaux/deptinfo/compilation/td3/parser/Parser.java
— src/fr/ubordeaux/deptinfo/compilation/td3/parser/Symbols.java
Consulter l’ensemble des fichiers produits, puis compiler et exécuter avec la commande
ant.
Cette action va produire l’ensemble des fichiers *.class dans bin, puis va exécuter le
programme sur data/input.txt pour produire data/output.txt
— Modifier Parser.cup pour que le programme lise un ensemble de lignes ω avec ω ∈
{an bn /n ≥ 0}
— Modifier Parser.cup pour que le programme affiche le nom du symbole X pour chaque
règle X → Y réduite.
Listing 1 – lexer.jflex
package f r . ubordeaux . d e p t i n f o . c o m p i l a t i o n . td3 . t o k e n i z e r ;
import java . io . ∗ ;
import j a v a c u p . runtime . Symbol ;
import j a v a c u p . runtime . SymbolFactory ;
import j a v a c u p . runtime . ComplexSymbolFactory ;
import f r . ubordeaux . d e p t i n f o . c o m p i l a t i o n . td3 . p a r s e r . Symbols ;
%%
%public
%class T o k e n i z e r
%cupsym f r . ubordeaux . d e p t i n f o . c o m p i l a t i o n . td3 . p a r s e r . Symbols
%cup
%{
private SymbolFactory symbolFactory = new ComplexSymbolFactory ( ) ;
%}
%eofval{
return symbolFactory . newSymbol ( ”EOF” , Symbols .EOF ) ;
%eofval}
2
Réaliser le même exercice que précédemment, mais en utilisant cet analyseur lexical.