Domanda

In considerazione questa espressione:

3 + 2 + 2 * 2 =?

sarebbe 14?

È stato utile?

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
scroll top