Syntaktische Rekursion in VBA
Ein Operand eines Operators muß nicht unbedingt immer ein Literal sein, sondern kann auch seinerseits wiederum ein Operatorausdruck sein. Das folgende Syntaxdiagramm für einen Ausdruck bringt dies dadurch zum Ausdruck, daß es einen Verweis auf sich selbst enthält. Ein solcher Selbstbezug wird auch als Rekursion bezeichnet.
- vereinfachte Syntax
Ausdruck
.-------.
---.--->|Literal|-------------.--->
| '-------' ^
| .-. .----------. |
'-->· - ·-->| Ausdruck |---'
'-' '----------'
Dies bedeutet, daß es erlaubt ist, ein Literal in einem Operatorausdruck durch einen weiteren Operatorausdruck zu ersetzen – dadurch entsteht dann im allgemeinen wieder ein erlaubter Ausdruck, der aber einen anderen Wert haben kann. In dem folgenden Beispiel mit »--65« wird das erste »-« auf den Operanden »-65« angewendet, der seinerseits kein Literal, sondern selber wieder ein Vorzeichenwechsel ist. In dem folgenden Beispiel ist »-65« der Operand des ersten Vorzeichenwechseloperators.
- Direktbereich
? --65
65
Das voranstehende Beispiel zeigt auch, daß das Ergebnis einer Anwendung des Vorzeichenwechseloperators »-« keine negative Zahl ergeben muß.
Wir nennen das erste Minuszeichen »-« in »--65« auch „äußeres Minuszeichen“ und das zweite Minuszeichen »-« in »--65« auch „inneres Minuszeichen“. Diese Bezeichnungen ergeben sich daraus, daß der zweite Ausdruck »-65« in dem gesamten Ausdruck »--65« enthalten ist.
Einen Ausdruck, der Teil eines anderen Ausdrucks ist, nennt man auch Teilausdruck.
- syntaktische Rekursion
Ausdruck
.-------------------------------------.
| Ausdruck |
| .-------------------. |
| | Ausdruck | |
.-. | .-. | .---------. | |
--->· - ·-->|--->· - ·-->|--->| Literal |--->|--->|--->
'-' | '-' | '---------' | |
| | | |
| '-------------------' |
| |
| |
'-------------------------------------'
Die folgende Baumdarstellung von »--65«, zeigt, daß »--65« aus einem Minuszeichen »-« und einem weiteren Ausdruck »-65« besteht, der seinerseits wiederum in ein Minuszeichen »-« und den Ausdruck »65« zerlegt werden kann.
- syntaktische Rekursion (Baumdarstellung)
- -65
/ \
- -65
/ \
- 65
Ausdrücke als Operanden
Wir haben Ausdrücke zunächst als Texte kennengelernt, die in den Ausdruckrahmen eingesetzt werden können. Nun sehen wir, daß sie auch als Operanden dienen können. Tatsächlich ist dies sogar die wichtigere und häufigere Verwendung von Ausdrücken.
Operanden und ihre Werte
Von einem Operanden wird immer nur dessen Wert verwendet, nicht seine Schreibweise. Daher bedeuten »--2« und »2« als Operanden genau dasselbe, nämlich den Wert «2» – es ist egal, wie dieser Wert geschrieben wird.
Kuriositäten *
Die Kenntnis der folgenden „Kuriositäten“ ist zum Erlernen der ersten Grundlagen von VBA nicht wichtig, weswegen dieser Abschnitt beim ersten Lesen übersprungen werden kann.
Das folgende Beispiel zeigt, daß eine Folge mehrerer Vorzeichen in String-Numeralia nicht möglich ist.
? --"-65"
-65
? -"--65"
- ⚠ Laufzeitfehler '13': Typen unverträglich
- ⚠ Run-time Error '13': Type mismatch
Ein Plusoperator vor einem Zeichenfolgennumerale wird anscheinend als wirkungslos interpretiert, die Zeichenfolge wird aber dabei nicht in eine Zahl gewandelt, sondern bleibt weiterhin ein Text. Dies kann man daran erkennen, daß bei der Ausgabe eines positiven Wertes kein Leerzeichen vorangestellt wird, wie sonst bei Zahlen.
- Direktbereich
? +"2.2"
2.2
? --"2.2"
2.2