Wie funktioniert ein LL-Parser diesen Ausdruck bewerten?
Frage
In Anbetracht dieser Ausdruck:
3 + 2 + 2 * 2 =?
Wäre es 14 sein?
Lösung
Nein. Das ist, was Sie in links nach rechts Auswertung bekommen würde. Ein LL-Parser die gleiche Parserbaum als LR Parser bauen würde,
+
/ \
3 +
/ \
2 *
/ \
2 2
und bewerten es als
(+ 3 (+ 2 (* 2 2))
, die 9 ist, wie man erwarten würde.
Was ist LL-Parser ist das Besonderes das heißt, für eine begrenzte Grammatik, können sie immer nach rechts vorgehen links mit begrenztem Vorgriff. Das macht sie einfach zu beschreiben und einfach zu Parse; einiger Pascal ist einer der am häufigsten verwendeten Sprachen, ist LL.
Sie können einen Blick auf die Wiki-Artikel haben auf Linksableitung .
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow