From c1cb53ae11a9cc5fe42c8271a3a2fe806877dc0c Mon Sep 17 00:00:00 2001
From: "David A. Madore" <david+git@madore.org>
Date: Tue, 24 Jan 2017 20:40:05 +0100
Subject: Try to further clarify the use of metacharacters in the "extended"
 grammar.

---
 tp2.tex | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

(limited to 'tp2.tex')

diff --git a/tp2.tex b/tp2.tex
index 31b0b12..bb30c10 100644
--- a/tp2.tex
+++ b/tp2.tex
@@ -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.
-- 
cgit v1.2.3

