Syntaxbaum

Top  Previous  Next

Bedienung > Debuggen und Ausführen > Syntaxbaum

 

Wenn eine Startregel geparst wurde, wird sie samt den ihren Unterregeln in einer Baumstruktur dargestellt. Über ein Popup-Menü können Haltepunkte auf Baumknoten gesetzt werden oder man kann sich zugehörige Anfängermengen anzeigen lassen.

 

Zunächst erscheinen die Produktionen in kontrahierter Form:

 

kontrahierte Darstellungsform

 

tree__contracted

 

In kontrahierter Form sind lediglich die Namen der Regeln mit einem vorangestellten '+' zu sehen. (Wenn noch keine der Regeln geparst wurde, fehlt das '+'.)

 

 

expandierte Darstellungsform

 

In expandierter Form ist dem Namen ein '-' vorangestellt und unter dem Namen wird die Aufeinanderfolge der in der Regel vorkommenden Unterregeln und Token angezeigt, sowie spezielle Unterknoten für Optionen, Wiederholungen und Alternativen.

 

 

Knoten-Icon

 

Jedem Knoten ist ein kleines Icon vorangestellt, dass den Typ des Knotens kennzeichnet. Den Namen der Knoten wird jeweils ein Prefix vorangestellt, der ebenfalls den Typ bezeichnet.

 

 

Icon

Typ

Prefix

Node_link

Produktion

 

Node_link_wo

mit lokalen Optionen

 

Node_nt

Aufruf eine Produktion

NT

Node_t

Terminalsymbol = Token

T

Node_any

ANY-Symbol

ANY

Node_skip

SKIP-Symbol

SKIP

Node_alt

Alternative

Alt

Node_opt

Option

Opt

Node_rep

Wiederholung

Rep

Node_optrep

optionale Wiederholung

OptRep

Node_Count

gezählte Wiederholung

Count

Node_If

IF-Struktur

If

Node_Cond

WHILE-Struktur

Cond

Node_br

BREAK

Br

Node_sem

Semantische Aktion

Sem

 

 

 

Verkettung

 

Regelbestandteile die innerhalb der Regel aufeinander folgen werden im Baumdiagramm als untereinander stehende Knoten dargestellt, die durch eine vertikale Linie mit kleinen Pfeilsymbolen miteinander verbunden sind. Eine Produktion

 

A = a b c d

 

wird dann folgendermaßen angezeigt

 

tree_chain

 

 

Alternativen

 

Für Regelbestandteile, die alternativ zueinander sind, wird ein Knoten eingefügt, der die Alternativen zusammengefasst und unterhalb dieses Knotens werden die einzelnen Alternativen als diskrete Knoten, also unverbunden dargestellt.  Eine Produktion

 

A = a | b | c | d

 

wird dann folgendermaßen dargestellt

 

tree_alternatives

 

Der Name des die Alternativen zusammenfassenden Knotens wird aus dem Prefix "Alt" gebildet, dem ein Zähler folgt, der die Alternativen der Regel beginnend mit Null hochzählt. Hieran angehängt wird "_of_" und der Namen des übergeordneten Knotens. Aus dem Namen lässt sich somit der Typ und die Position des Knotens innerhalb der gesamten Regelsystems rekonstruieren.

 

 

Optionen und Wiederholungen

 

Für Optionen oder Wiederholungen wird analog ein übergeordneter Knoten gebildet, dessen Kind-Knoten die eigentliche Option oder Wiederholung ist. Die Produktion

 

B = ( b )+

 

sieht dann folgendermaßen aus:

 

tree_rep

 

Der Name des Options- oder Wiederholungs-Knotens wird analog zu der Namensgebung bei Alternativen gebildet, wobei die Ausdrücke

 

       Opt        für Optionen

       0ptRep        für null und mehrmalige Wiederholungen

       Rep        für ein- und mehrmalige Wiederholungen

 

verwendet werden.

 

 

semantische Aktionen

 

Für Positionen an denen im Skript einer Produktion semantische Aktionen ausgeführt werden, werden im Baumdiagramm einfache Knoten angezeigt, deren Namen wiederum aus dem Namen der Produktion gebildet werden, indem der Ausdruck "_Sem" und ein Zähler angehängt werden. Die den Token direkt zugeordneten Aktionen werden nicht gesondert angezeigt.

 

komplexes Beispiel

 

Besteht eine der Alternativen selbst aus einer Folge von Token oder Regeln, so werden diese Folgen als untereinander verbundene Knoten dargestellt. Die gesamte Gruppierung dieser Alternative ist von den übrigen Alternativen getrennt. Eine etwas komplexere Produktion könnte z.B. lauten:

 

D = (B | c d | ( a )? d )+

 

Im Syntaxbaum sähe sie folgendermaßen aus:

 

tree_complex

 

 



Diese Seite gehört zur TextTransformer Dokumentation

Home  Inhalt  English