Come fa un parser LL valutare questa espressione?
Domanda
In considerazione questa espressione:
3 + 2 + 2 * 2 =?
sarebbe 14?
Soluzione
No. Questo è quello che ti aspetteresti in da sinistra a destra di valutazione. Un parser LL avrebbe costruito lo stesso albero di analisi come un parser LR,
+
/ \
3 +
/ \
2 *
/ \
2 2
e valutare come
(+ 3 (+ 2 (* 2 2))
, che è 9, come ci si aspetterebbe.
La particolarità di parser LL è che, per una grammatica limitato, possono sempre procedono da sinistra a destra con limitata look-ahead. Questo li rende facili da descrivere e facile da analizzare; alcuni Pascal è una delle maggior parte delle lingue comune che è LL.
Si potrebbe dare un'occhiata a questo articolo Wiki su più a sinistra di derivazione .
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow