Compiler ZRa in Scheme+Turtle
Aus ProgrammingWiki
Archivierte Version vom 2008-12-11T09:47:40+00:00. Aktuelle Version
ZRa sei die Sprache eines Zeichenroboters mit folgender Definition.
G = (N, T, P, s)
N = {Programm, Anweisungen, Anweisung, Zahl, Ziffer-ab-1, Ziffer, Zahl0, Farbwert, Status}
T = {WH, [, ], FARBE, RE, STIFT, VW, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, blau, gruen, rot, schwarz, weiss, oben, radiert, schreibt, unten}
P = {
Programm -> Anweisungen
Anweisungen -> Anweisung Anweisungen
| EPSILON
Anweisung -> WH Zahl [ Anweisungen ]
| FARBE Farbwert
| RE Zahl
| STIFT Status
| VW Zahl
Zahl -> Ziffer | Ziffer-ab-1 Zahl0
Ziffer-ab-1 -> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Ziffer -> 0 | Ziffer-ab-1
Zahl0 -> Ziffer | Ziffer Zahl0
Farbwert -> blau | gruen | rot | schwarz | weiss
Status -> oben | radiert | schreibt | unten
}
s = ProgrammZur Konstruktion eines Parsers reduzieren wir diese Grammatik um die syntaktischen Einheiten, die vom Scanner analysiert werden. Dadurch werden die Nichtterminale Zahl, Farbwert und Status zu Terminalen. Zahl0 und Ziffer-ab-1 entfallen.