compilerbau:erweiterung:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
compilerbau:erweiterung:start [2021/10/28 21:23] – [Erweiterung des Lexers] Martin Pabst | compilerbau:erweiterung:start [2021/10/28 21:26] – [Erweiterung der Klasse Knoten] Martin Pabst | ||
---|---|---|---|
Zeile 139: | Zeile 139: | ||
break; | break; | ||
</ | </ | ||
+ | |||
+ | |||
+ | ===== Test des Lexers ===== | ||
+ | Der Lexer lässt sich wieder mit der Klasse '' | ||
+ | < | ||
+ | text[a] zuweisung zahl[1.0] strichpunkt text[b] zuweisung zahl[2.0] strichpunkt whileKeyword klammerAuf text[a] kleiner zahl[10.0] klammerZu geschweifteKlammerAuf text[a] zuweisung text[a] plus zahl[1.0] strichpunkt text[b] zuweisung text[b] mal zahl[2.0] strichpunkt printKeyword klammerAuf text[b] klammerZu strichpunkt geschweifteKlammerZu | ||
+ | </ | ||
+ | |||
===== Erweiterung der Klasse Knoten ===== | ===== Erweiterung der Klasse Knoten ===== | ||
Zeile 189: | Zeile 197: | ||
+ | ===== Test des Parsers ===== | ||
+ | Der Parser lässt sich wieder mit der Klasse '' | ||
+ | < | ||
+ | Eingabetext: | ||
+ | a = 1; | ||
+ | b = 2; | ||
+ | while(a < 10){ | ||
+ | a = a + 1; | ||
+ | b = b * 2; | ||
+ | print(b); | ||
+ | } | ||
+ | |||
+ | Tokens: | ||
+ | text[a] zuweisung zahl[1.0] strichpunkt text[b] zuweisung zahl[2.0] strichpunkt whileKeyword klammerAuf text[a] kleiner zahl[10.0] klammerZu geschweifteKlammerAuf text[a] zuweisung text[a] plus zahl[1.0] strichpunkt text[b] zuweisung text[b] mal zahl[2.0] strichpunkt printKeyword klammerAuf text[b] klammerZu strichpunkt geschweifteKlammerZu | ||
+ | |||
+ | Syntaxbaum (AST): | ||
+ | zuweisung | ||
+ | | ||
+ | | ||
+ | | ||
+ | l:text[b] | ||
+ | r:zahl[2.0] | ||
+ | n: | ||
+ | | ||
+ | l:text[a] | ||
+ | r: | ||
+ | | ||
+ | l:text[a] | ||
+ | r:plus | ||
+ | | ||
+ | | ||
+ | n:zuweisung | ||
+ | | ||
+ | r:mal | ||
+ | l:text[b] | ||
+ | r:zahl[2.0] | ||
+ | | ||
+ | l:text[b] | ||
+ | </ | ||
+ | Nachfolgend noch in grafischer Form. Die mit " | ||
+ | {{ : | ||
compilerbau/erweiterung/start.txt · Zuletzt geändert: 2021/12/29 11:29 von 127.0.0.1