Il s'agit ici de faire un analyseur syntaxique
pour reconnaitre des séquences des phrases simples
du type <sujet> <verbe> <complement> <point>
.
JFlex est utilisé pour la génération de l'analyseur lexical.
Cup pour la génération de l'analyseur syntaxique.
La spécification de l'analyseur lexical est dans le fichier src/main/jflex/Simple.jflex.
Il permet de reconnaître un sujet (il ou elle), un verbe (est ou boit), un complément (vite, bien, chaud, beau, belle) ou un point (.;!?).
À partir de cette spécification, JFlex génère le fichier java,
build/generated/sources/jflex/main/java/fr/usmb/m1isc/compilation/simple/SimpleLexer.java
qui contient l'analyseur lexical utilisé en entrée
de l'analyseur syntaxique.
La spécification de l'analyseur syntaxique est dans le fichier src/main/cup/Simple.cup.
À partir de cette spécification, GNU Bison génère les fichiers,
build/generated/sources/cup/main/java/fr/usmb/m1isc/compilation/simple/SimpleParser.java
(contient l'analyseur syntaxique) et
build/generated/sources/cup/main/java/fr/usmb/m1isc/compilation/simple/SimpleParserSym.java
(utilisé dans l'analyseur lexical pour renvoyer
les tokens (unités lexicales) attendus par l'analyseur syntaxique).
Pour construire le projet (nécessite l'installation d'une JDK),
aller dans le dossier du projet puis exécuter
la commande ./gradelw build
ou gradelw.bat build
.