Quoted
Ist action [z,a] = reduce A -> alpha, dann lösche die obersten 2 * |alpha| Einträge vom Stack. (Dann) Sei z´ der dann oberste Zustand auf dem Stack. Schreibe A und danach den Zustand goto [z',A] auf den Stack. Gebe die Produktion A -> alpha aus. vgl. Seite 71 , (C) Prof. Dr. R. Parchmann
Quoted
Eine reduce-Operation ist nur dann anwendbar, wenn zum momentanen Zeitpunkt die obersten Symbole auf dem Stack die rechte Seite einer Produktion bilden. Diese Symbole werden gelöscht und durch das Symbol auf der linken Seite der Produktion ersetzt. vgl. Seite 70 , (C) Prof. Dr. R. Parchmann
Quoted
Ist action [z,a]=error (LEERER EINTRAG IN DER ACTION-TABELLE], dann beende das Parsing mit einer Fehlermeldung. Das Eingabewort gehört nicht zu einer Sprache. vgl. Seite 71, (C) Prof. Dr. R. Parchmann
This post has been edited 3 times, last edit by "BJETIT" (May 31st 2009, 2:10pm)
Denn nichts mal 2 bleibt nichts!
This post has been edited 2 times, last edit by "BJETIT" (May 30th 2009, 11:02pm)
Das ist doch das gleiche... du reduzierst genauso...
wenn du nach Produkionen reduzierst, die ein Epsilon enthalten, dann schreibst du die linke Seite der Produktion hin.... Und entfernst Nichts!
Quoted
Ist action [z,a] = reduce A -> alpha, dann lösche die obersten 2 * |alpha| Einträge vom Stack. (Dann) Sei z´ der oberste Zustand auf dem Stack. Schreibe A und danach den Zustand goto [z',A] auf den Stack. Gebe die Produktion A -> alpha aus. vgl. Seite 71 , (C) Prof. Dr. R. Parchmann
This post has been edited 2 times, last edit by "BJETIT" (May 31st 2009, 2:01pm)
Epsilon ist kein Spezialfall, denn epsilon bezeichtet das leere Wort also istQuoted
...es ist generell gar nicht erforderlich nur die obersten 2 Stack-Einträge zu löschen wie im Skript beschrieben...für den Spezialfall epsilon wird gar nix entfernt - ansonsten werden wie in Beispiel 2.52 die jeweils rechten Seiten der Produktionen bei reduce gelöscht z.B.
[0(4E8+6T9,)*a$] --(1)--> [0(4E8,)*a$] //angewendete Operation: reduce1 (vgl. Tabelle) ; Produktion (1) E -> E+T
// E8+6T9 wurde durch E ersetzt, z´=4, goto(z´=4,E)=8 wurde darauf auf den Stack geschrieben
Quoted
Ist action [z,a] = reduce A -> alpha, dann lösche die obersten 2 * |alpha| Einträge vom Stack.
This post has been edited 5 times, last edit by "RoboJens" (Jul 11th 2009, 7:05pm)