From ed9dcfac0bd24c21333f25cca9231ce00f42aee8 Mon Sep 17 00:00:00 2001
From: "David A. Madore" <david+git@madore.org>
Date: Tue, 24 Jan 2017 14:46:13 +0100
Subject: Systematically use English names for nonterminals; also replace
 "unary" by "factor".  (Akim's suggestion.)

---
 tp2.tex | 92 ++++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 46 insertions(+), 46 deletions(-)

(limited to 'tp2.tex')

diff --git a/tp2.tex b/tp2.tex
index 7ae17dd..b37af69 100644
--- a/tp2.tex
+++ b/tp2.tex
@@ -169,7 +169,7 @@ Modifier la grammaire pour avoir une priorité correcte des opérations
 (\texttt{*} et \texttt{/} doivent être prioritaires sur \texttt{+} et
 \texttt{-}, et en particulier \texttt{3+4*5} doit
 renvoyer \texttt{23.0}).  Pour cela, on peut par exemple introduire un
-nouveau nonterminal $\mathit{terme}$ représentant un terme d'une somme
+nouveau nonterminal $\mathit{term}$ représentant un terme d'une somme
 ou différence, et qui est lui-même formé de produits ou quotients.
 Tester la calculatrice ainsi modifiée.
 
@@ -185,17 +185,17 @@ Pour corriger ce problème, on va modifier la grammaire de la manière
 suivante :
 \[
 \begin{aligned}
-\mathit{expression} & \rightarrow \mathit{terme} \;
-( \ldquote\hbox{\texttt{+}}\rdquote \mathit{terme}
-\,|\, \ldquote\hbox{\texttt{-}}\rdquote \mathit{terme}){*}\\
-\mathit{terme} & \rightarrow \mathit{element} \;
+\mathit{expression} & \rightarrow \mathit{term} \;
+( \ldquote\hbox{\texttt{+}}\rdquote \mathit{term}
+\,|\, \ldquote\hbox{\texttt{-}}\rdquote \mathit{term}){*}\\
+\mathit{term} & \rightarrow \mathit{element} \;
 (\ldquote\hbox{\texttt{*}}\rdquote \mathit{element}
 \,|\, \ldquote\hbox{\texttt{/}}\rdquote \mathit{element}
 ){*}\\
 \end{aligned}
 \]
 (le reste est inchangé) : ceci forcera l'arbre d'analyse de
-\texttt{3+4*5} à comporter deux $\mathit{terme}$, en l'occurrence
+\texttt{3+4*5} à comporter deux $\mathit{term}$, en l'occurrence
 \texttt{3} et \texttt{4*5}, qui s'évalueront dans les bonnes valeurs.
 
 Voici à quoi peut ressembler le code JavaCC modifié pour refléter la
@@ -204,14 +204,14 @@ grammaire en question :
 double expression():
 { double a,b; }
 {
-    a=terme()
+    a=term()
     (
-      "+" b=terme() { a += b; }
-    | "-" b=terme() { a -= b; }
+      "+" b=term() { a += b; }
+    | "-" b=term() { a -= b; }
     )* { return a; }
 }
 
-double terme():
+double term():
 { double a,b; }
 {
     a=element()
@@ -264,35 +264,35 @@ renvoyer \texttt{-3.0}.  Vérifier que le moins unaire marche aussi
 devant les parenthèses : par exemple, \texttt{-(2+3)} doit
 renvoyer \texttt{-5.0}.  On pourra aussi ajouter le $+$ unaire (qui ne
 change pas le nombre).  Pour cela, on pourra introduire un nouveau
-nonterminal $\mathit{unaire}$ représentant un élément éventuellement
+nonterminal $\mathit{factor}$ représentant un élément éventuellement
 précédé d'un $-$ (ou d'un $+$) unaire.
 
 \begin{corrige}
 On modifie la grammaire comme suit :
 \[
 \begin{aligned}
-\mathit{terme} & \rightarrow \mathit{unaire} \;
-(\ldquote\hbox{\texttt{*}}\rdquote \mathit{unaire}
-\,|\, \ldquote\hbox{\texttt{/}}\rdquote \mathit{unaire}
+\mathit{term} & \rightarrow \mathit{factor} \;
+(\ldquote\hbox{\texttt{*}}\rdquote \mathit{factor}
+\,|\, \ldquote\hbox{\texttt{/}}\rdquote \mathit{factor}
 ){*}\\
-\mathit{unaire} & \rightarrow \mathit{element} \;
+\mathit{factor} & \rightarrow \mathit{element} \;
 \,|\, \ldquote\hbox{\texttt{+}}\rdquote \mathit{element}
 \,|\, \ldquote\hbox{\texttt{-}}\rdquote \mathit{element}\\
 \end{aligned}
 \]
 et le code JavaCC correspondant pourrait être :
 \begin{verbatim}
-double terme():
+double term():
 { double a,b; }
 {
-    a=unaire()
+    a=factor()
     (
-      "*" b=unaire() { a *= b; }
-    | "/" b=unaire() { a /= b; }
+      "*" b=factor() { a *= b; }
+    | "/" b=factor() { a /= b; }
     )* { return a; }
 }
 
-double unaire():
+double factor():
 { double a; }
 {
     a=element() { return a; }
@@ -302,7 +302,7 @@ double unaire():
 \end{verbatim}
 
 (Plusieurs variations sont possibles : par exemple, si on fait suivre
-le \texttt{-} unaire d'un $\mathit{unaire}$ au lieu d'un
+le \texttt{-} unaire d'un $\mathit{factor}$ au lieu d'un
 $\mathit{element}$, cela permet d'autoriser \texttt{-{}-3} comme façon
 d'écrire \texttt{+3}.)
 \end{corrige}
@@ -329,37 +329,37 @@ $\hbox{\texttt{2*3\char"5E\relax 2*3}} \rightsquigarrow \texttt{54.0}$.
 
 \begin{corrige}
 Pour obtenir l'associativité \emph{à droite}, on va définir un
-nonterminal $\mathit{puissance}$ pour lequel on va définir une
-production faisant qu'une $\mathit{puissance}$ peut s'analyser comme
+nonterminal $\mathit{power}$ pour lequel on va définir une
+production faisant qu'une $\mathit{power}$ peut s'analyser comme
 un $\mathit{element}$ suivi d'un ``$\texttt{\char"5E}$'' suivi
-facultativement d'une nouvelle $\mathit{puissance}$, c'est-à-dire
+facultativement d'une nouvelle $\mathit{power}$, c'est-à-dire
 qu'on modifie la grammaire ainsi :
 \[
 \begin{aligned}
-\mathit{unaire} & \rightarrow \mathit{puissance} \;
-\,|\, \ldquote\hbox{\texttt{+}}\rdquote \mathit{puissance}
-\,|\, \ldquote\hbox{\texttt{-}}\rdquote \mathit{puissance}\\
-\mathit{puissance} & \rightarrow \mathit{element}
-( \ldquote\hbox{\texttt{\char"5E}}\rdquote \mathit{unaire}
+\mathit{factor} & \rightarrow \mathit{power} \;
+\,|\, \ldquote\hbox{\texttt{+}}\rdquote \mathit{power}
+\,|\, \ldquote\hbox{\texttt{-}}\rdquote \mathit{power}\\
+\mathit{power} & \rightarrow \mathit{element}
+( \ldquote\hbox{\texttt{\char"5E}}\rdquote \mathit{factor}
 ){?}\\
 \end{aligned}
 \]
 avec le code JavaCC suivant :
 \begin{verbatim}
-double unaire():
+double factor():
 { double a; }
 {
-    a=puissance() { return a; }
-|   "+" a=puissance() { return a; }
-|   "-" a=puissance() { return -a; }
+    a=power() { return a; }
+|   "+" a=power() { return a; }
+|   "-" a=power() { return -a; }
 }
 
-double puissance():
+double power():
 { double a,b; }
 {
     a=element()
     (
-      "^" b=unaire() { a = Math.pow(a,b); }
+      "^" b=factor() { a = Math.pow(a,b); }
     )? { return a; }
 }
 \end{verbatim}
@@ -367,18 +367,18 @@ double puissance():
 Voici la grammaire finale :
 \[
 \begin{aligned}
-\mathit{expression} & \rightarrow \mathit{terme} \;
-( \ldquote\hbox{\texttt{+}}\rdquote \mathit{terme}
-\,|\, \ldquote\hbox{\texttt{-}}\rdquote \mathit{terme}){*}\\
-\mathit{terme} & \rightarrow \mathit{unaire} \;
-(\ldquote\hbox{\texttt{*}}\rdquote \mathit{unaire}
-\,|\, \ldquote\hbox{\texttt{/}}\rdquote \mathit{unaire}
+\mathit{expression} & \rightarrow \mathit{term} \;
+( \ldquote\hbox{\texttt{+}}\rdquote \mathit{term}
+\,|\, \ldquote\hbox{\texttt{-}}\rdquote \mathit{term}){*}\\
+\mathit{term} & \rightarrow \mathit{factor} \;
+(\ldquote\hbox{\texttt{*}}\rdquote \mathit{factor}
+\,|\, \ldquote\hbox{\texttt{/}}\rdquote \mathit{factor}
 ){*}\\
-\mathit{unaire} & \rightarrow \mathit{puissance} \;
-\,|\, \ldquote\hbox{\texttt{+}}\rdquote \mathit{puissance}
-\,|\, \ldquote\hbox{\texttt{-}}\rdquote \mathit{puissance}\\
-\mathit{puissance} & \rightarrow \mathit{element}
-( \ldquote\hbox{\texttt{\char"5E}}\rdquote \mathit{unaire}
+\mathit{factor} & \rightarrow \mathit{power} \;
+\,|\, \ldquote\hbox{\texttt{+}}\rdquote \mathit{power}
+\,|\, \ldquote\hbox{\texttt{-}}\rdquote \mathit{power}\\
+\mathit{power} & \rightarrow \mathit{element}
+( \ldquote\hbox{\texttt{\char"5E}}\rdquote \mathit{factor}
 ){?}\\
 \mathit{element} &\rightarrow \mathit{Number}
 \,|\, \ldquote\hbox{\texttt{(}}\rdquote \mathit{expression} \ldquote\hbox{\texttt{)}}\rdquote\\
-- 
cgit v1.2.3

