diff options
-rw-r--r-- | tp2.tex | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -144,13 +144,16 @@ Initialement, la grammaire de la calculatrice définie dans \end{aligned} \] Il s'agit d'une grammaire « étendue » au sens où le membre de droite -des règles de production autorise l'utilisation des métacaractères -« ${*}$ », « ${+}$ » et « ${?}$ » des expressions rationnelles — pour -désigner respectivement un nombre quelconque de répétitions, au moins -une répétition, ou un groupe facultatif. En principe, on pourrait -éliminer l'utilisation de ces métacaractères en s'inspirant de la -manière dont on démontre que tout langage rationnel est algébrique -(par exemple $X\rightarrow Y{*}$ peut être remplacé par $X\rightarrow +des règles de production autorise l'utilisation de métacaractères +« ${|}$ » (disjonction), « ${*}$ » (étoile de Kleene), « ${+}$ » et +« ${?}$ » de manière semblable aux expressions rationnelles : +c'est-à-dire que JavaCC note $X|Y$ pour un choix entre $X$ et $Y$, +ainsi que $X{*}$ pour un nombre quelconque de répétitions de $X$ et +$X{+}$ pour la variante imposant au moins une répétition et $X{?}$ +pour un $X$ factultatif. En principe, on pourrait éliminer +l'utilisation de ces métacaractères en s'inspirant de la manière dont +on démontre que tout langage rationnel est algébrique (par exemple +$X\rightarrow Y{*}$ peut être remplacé par $X\rightarrow \varepsilon\,|\,YX$), mais l'analyseur LL de JavaCC ne sera pas forcément capable de gérer la grammaire ainsi transformée, donc il est préférable d'utiliser les métacaractères lorsque c'est possible. |