summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--exercices2.tex11
1 files changed, 9 insertions, 2 deletions
diff --git a/exercices2.tex b/exercices2.tex
index 22c2eef..60b0c45 100644
--- a/exercices2.tex
+++ b/exercices2.tex
@@ -334,10 +334,17 @@ $\mathtt{else}$ devrait se rattacher à elle), et ce, récursivement.
On peut montrer que la grammaire ci-dessus est inambiguë et faiblement
équivalente à celle de départ.
-J'ignore s'il existe une grammaire inambiguë naturelle, faiblement
+On peut aussi fabriquer une grammaire inambiguë, faiblement
équivalente à celle de départ, qui force l'autre interprétation (le
$\mathtt{else}$ se rapporte au $\mathtt{if}$ le plus lointain
-possible).
+possible), mais c'est nettement plus complexe (l'idée générale pour
+apparier un $\mathtt{else}$ avec un $\mathtt{if}...\mathtt{else}$ dans
+cette logoque est de demander que \emph{soit} le $\mathtt{else}$ n'est
+suivi d'aucun autre $\mathtt{else}$, \emph{soit} toute instruction
+conditionnelle entre le $\mathtt{then}$ et le $\mathtt{else}$ est
+elle-même complète). Contrairement à la grammaire précédente, cette
+grammaire, bien qu'inambiguë, est probablement impossible à analyser
+avec un analyseur LR (ou même, déterministe).
\end{corrige}