Komplizierte CO Verfahren auf „Deutsch“
Auf Deutsch:
• Gesucht ist die First Menge von N (zuerst für alle terminalen und dann für alle nichtterminalen Zeichen)
• Alle Terminalzeichen haben sich selbst als First Menge
• Für alle Nichttermialzeichen-Produktionen
• Falls die Ableitung = $ dann nimm $ in First Menge auf
• Falls die Produktion die Form A-> y1y2y3 hat
• nimm die Terminalzeichen der Firstmenge von y1 in First N auf
• Falls die Produktion nur die Form y3 hat, nimm die Terminalzeichen der Firstmenge von y3 in First N auf bis First Menge stabil
DANN:
Für beliebige Strings: X-> A1A2A3A4
• Falls A-> $ nimm $ in First auf
• Nimm die Terminalzeichen der Firstmenge von A1 in First N auf
• für alle Ax bis auf das letzte
• falls A1A2A3 = $ nimm die Terminalzeichen der Firstmenge von A4 in First N auf
Auf Deutsch:
• Es wird die Followmenge eines Nichttermialzeichens N gesucht.
• Schau nach, wo auf der Rechten Seite der Produktion das entsprechende N auftaucht.
• Falls hinter N auf der Rechten Seite noch ein Rest o auftaucht(!= $), dann nimm die Terminalzeichen der First Menge von o in die Followmenge auf.
• Falls hinter N auf der Rechten Seite gar nichts mehr auftaucht(=$), dann nimm die Terminalzeichen der Follow Menge des Zeichens, das auf der linken Seite der Produktion steht, in der N vorkommt, in die Followmenge auf.
Auf Deutsch:
• -Schau dir alle Produktionen in der Gramatik an (nicht in der First/Follow Tabelle)
• -Schreib in die Parsertabelle in die Zeile des aktuellen Nichtterminalzeichens in die Spalte(n) al- ler vorkommenden Terminalzeichen der First Menge des Nichtterminalzeichens die Produktion (en) des Nichttermialzeichens
• Falls in der Produktion des Nichtterminalzeichen ein € vorkommt setzte in die Parserta- belle in die Zeile des Nichtterminalzeichens in die Spalte der in der Follow Menge vor- kommenden Terminalzeichen(nicht $) ->€ ein.
• Falls in der Follow Menge ebenfalls ein $ steht, trage in die Parsertabelle in der Spalte $ in der Zeile des aktuellen Nichtterminalzeichens -> € ein
SLR (Bottom Up) Erstellung der Tabellen
Auf „Deutsch“:
Für die Aktionstabelle
• Automat gemalt, dann auf der linken Seite die Zustände hinschreiben, oben die Terminalsymbole.
• Den Automaten anschauen oder die Zusammenstellung anschauen
• Für alle Terminalzeichen
• Wenn da steht Goto [Ix,t] = Iy dann in der Tabelle in der Zeile Ix un der Spalte t -> Iy eintragen
• Für alle Informationen mit ° am Ende (z.B. N-> x°, oder N->€)
• Trage N->x in alle Zeile des entsprechenden Zustands und in die Spalte(n) der Followmenge von N ein
• für alle Informationen mit Start-> X°
• trage ACCEPT in die Zeile des entsprechenden Zustands und die Spalte $ ein
Auf „Deutsch“:
• Automat gemalt, dann auf der linken Seite die Zustände hinschreiben, oben die Nichtterminalsymbole.
• Für alle Nichttermialzeichen (Goto (Ix,N) = Iy)
• trage Iy in Zeile Ix und Spalte N in der Goto Tabelle ein.