Zur Themenübersicht     

Kellerautomat (KA) , Einführung

Aufgabenstellung:

Wir möchten, dass unser Mini-Logo-Compiler endlich geschachtelte Klammerstrukturen verarbeiten kann.

z. B.: WH 4 [ WH 10 [ VW 30 DR 20 WH 6 [ ... ] ] DR 10]

Das Problem bei unserem bisherigen Automaten liegt beim Parser, der keine ineinander verschachtelten Klammerstrukturen verarbeiten kann.

Als erstes müssen wir die Syntax der Logo – Programme wie folgt ändern:

Logo – Programm:

Befehl:

Die Zeichenbefehle entsprechen denen unserer ersten Mini-Logo-Version:
(also VW, DR, RW, LI, ...)

Wiederholung:

Der Parser ist nun dieser geänderten Syntax anzupassen.

Dabei bieten sich für die Behandlung der geschachtelten Klammern zwei Lösungsstrategien an:

Lösung 1: Es wird ein Zähler eingebaut, der die geöffneten Klammern zählt und jedes Mal um 1 verringert wird, wenn eine Klammer geschlossen wird. Diese Lösung macht jedoch bei verschiedenen "Klammersorten" (z. B. Kommentarklammern) Probleme.

Lösung 2: Anlegen eines Stacks