30.12.2012 Aufrufe

Skript Tcl/Tk - Praktische Informatik / Datenbanken - Universität Kassel

Skript Tcl/Tk - Praktische Informatik / Datenbanken - Universität Kassel

Skript Tcl/Tk - Praktische Informatik / Datenbanken - Universität Kassel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

34<br />

% expr 12.0 == 12.00<br />

1<br />

%<br />

Programmierung graphischer Benutzerschnittstellen mit <strong>Tcl</strong>/<strong>Tk</strong><br />

Grundsätzlich gilt: eine Kommandozeile wird zunächst vom <strong>Tcl</strong>-Interpreter<br />

rein syntaktisch untersucht und zerlegt („geparst“), (ungeschützte)<br />

Leerzeichen, ein NL bzw. „;“ werden entfernt, es erfolgt eine Variablen-,<br />

Kommando- oder Backslashersetzung. Das erste Wort im Resultat wird<br />

als Kommandoname interpretiert. Das Kommando wird aufgerufen und<br />

analysiert jetzt semantisch die übergebenen Argumente.<br />

Die Ergebnisse sind nicht immer intuitiv, wie man an den Beispielen<br />

unten sieht. Es geht nochmals um den Vergleich von Zeichenketten.<br />

In einem Ausdruck wird bei einem Vergleich mit z. B. < bei Zeichenkettenoperanden<br />

tatsächlich auch ein lexikographischer Vergleich ("abc"<br />

ist lexikographisch kleiner als "ac", anders gesagt: "abc" kommt in der<br />

Sortierfolge der Wörter vor "ac") gemacht – allerdings muß man erst den<br />

<strong>Tcl</strong>-Interpreter überwunden haben, der bei nichtnumerischen Zeichenfolgen<br />

immer Variablenreferenzen vermutet. Das expr-Kommando analysiert<br />

semantisch und macht andererseits bei numerischen Zeichenketten<br />

sofort einen arithmetischen Vergleich. Auf die Substitutionen des Interpreters<br />

gehen wir unten ein.<br />

% expr ab ne ab<br />

syntax error in expression "ab ne ab": variable<br />

references require preceding $<br />

% expr {ab ne ab}<br />

syntax error in expression "ab ne ab": variable<br />

references require preceding $<br />

% expr {"ab" ne "ab"}<br />

0<br />

% expr "ab" ne "ab"<br />

syntax error in expression "ab ne ab": variable<br />

references require preceding $<br />

% expr {ab} ne {ab}<br />

syntax error in expression "ab ne ab": variable<br />

references require preceding $<br />

% expr {{ab} ne {ab}}<br />

0<br />

% expr {"ab"} eq {"ab"}<br />

1

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!