Compiler und Bäume
Dieses Applet verlangt einen JDK 1.1-fähigen Browser.
Dieses Applet dient in erster Linie Experimenten mit einer
"natürlichen" Baumanzeige. Als Daten werden hier Syntaxbäume von
Compilern bzw. Parsern verwendet.
Klickt man einen der beiden obigen Buttons an, so öffnet sich ein
Fenster, welches aus zwei Hälften besteht: im linken Teil geschieht
die Eingabe, im rechten die Ausgabe.
Im EBNF Window ist die Eingabe eine EBNF-Grammatik in der üblichen
Schreibweise, im I Window ist die Eingabe ein Programm in der
imperativen Programmiersprache "I" (ein sehr, sehr eingeschränkter
Modula-Verschnitt).
Es gibt folgende Menüpunkte:
- Parse/Compile: Parse - die Eingabe wird geparst und der
entsprechende Syntaxbaum (oder eine Fehlermeldung) ausgegeben.
- Parse/Compile: Parse and Display Tree - die Eingabe wird geparst
und, falls dies erfolgreich gelang, der Syntaxbaum grafisch
dargestellt.
- Parse/Compile: Compile - die Eingabe wird geparst
und kompiliert. Im Falle des EBNF-Fensters kommt dabei ein Java-Parser
für die Grammatik heraus, im Falle des I-Fensters eine Art
Assembler-Code für die abstrakte Maschine "MI" (wiederum eine sehr
einfache abstrackte Stack-Maschine).
- Examples - Hier gibt es einige vordefinierte Beispiele.
- Output: Clear - Damit wird das Ausgabefenster geleert.
Im Baumfenster gibt es folgende Menüpunkte:
- Actions: Print - Druckt die Ansicht aus (funktioniert nicht überall).
- Options: Show/Hide Strings - Hiermit werden die Namen der Knoten ein- bzw. ausgeblendet.
- Options: Y Glue ... - Hiermit wird der vertikale Abstand zwischen den Ebenen eingestellt.
- Options: Toggle ... - Schaltet verschiedene Einstellungen um.
- Node: Show/Hide Sons - Ist gerade ein Knoten markiert (durch Anklicken), so werden hiermit seine Nachkommen ein- bzw. ausgeblendet.
Ekkehard Kraemer