compilerbau:lexer:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
compilerbau:lexer:start [2021/10/28 20:31] – [Funktionsweise des Lexers] Martin Pabst | compilerbau:lexer:start [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Lexer ====== | ====== Lexer ====== | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Im folgenden findest Du die Beschreibung des Lexers. Den [[.test: | ||
+ | </ | ||
+ | |||
Der Lexer liest den Programmtext Zeichen für Zeichen und fasst diese zu kleinsten syntaktischen Einheiten, sogenannten Tokens, zusammen. Unsere Beispielsprache besteht aus folgenden 8 Tokens: | Der Lexer liest den Programmtext Zeichen für Zeichen und fasst diese zu kleinsten syntaktischen Einheiten, sogenannten Tokens, zusammen. Unsere Beispielsprache besteht aus folgenden 8 Tokens: | ||
Zeile 261: | Zeile 266: | ||
</ | </ | ||
Zum einfachen Hinzufügen eines Tokens, das weder eine Zahl noch Text darstellt, wird eine kleine Hilfsmethode definiert: | Zum einfachen Hinzufügen eines Tokens, das weder eine Zahl noch Text darstellt, wird eine kleine Hilfsmethode definiert: | ||
- | < | + | < |
/** | /** | ||
* Fügt der tokenListe das übergebene Token hinzu | * Fügt der tokenListe das übergebene Token hinzu | ||
Zeile 273: | Zeile 278: | ||
</ | </ | ||
Der Zugriff auf den Programmtext geschieht immer über die Methode peek(), damit weniger Fehler beim Programmieren passieren: | Der Zugriff auf den Programmtext geschieht immer über die Methode peek(), damit weniger Fehler beim Programmieren passieren: | ||
- | < | + | < |
/** | /** | ||
* peek() liest das nächste Zeichen im Programmtext, | * peek() liest das nächste Zeichen im Programmtext, | ||
Zeile 288: | Zeile 293: | ||
} | } | ||
} | } | ||
- | </ | + | </ |
Die restlichen Methoden erklären sich von selbst: | Die restlichen Methoden erklären sich von selbst: | ||
- | < | + | < |
/** | /** | ||
* Vorsicht: Die übergebene Liste ist nur dann gefüllt, wenn zuvor die | * Vorsicht: Die übergebene Liste ist nur dann gefüllt, wenn zuvor die | ||
Zeile 323: | Zeile 328: | ||
</ | </ | ||
+ | [[..: | ||
compilerbau/lexer/start.1635445894.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)