Für Funktionen, die Wahrheitswerte zurück geben, nimmt man als Alias oft den positiven Fall (also der, der wahr zurück gibt). Um dann den negativen Fall zu überprüfen, muss man den Funktionsaufruf negieren. Das Problem liegt dabei, dass man in der Deutschen Sprachen nicht einfach ein "nicht" vor einem Satz stellen kann um es zu negieren und dabei Grammatikalisch korrekt sein kann.
Beispiel
"<t> leer": Wenn text leer ist, ... // Wenn nicht text leer ist, ...
Die Lösung
Man erlaubt in Aliasen, sogennante Aliasnegationsmarkierungen. Diese, wie der Name so schön kurz beschreibt, sind Markierungen an der Stelle eine negation hinzugefügt werden kann. Diese negation darf nicht nur ein "nicht" sein, sondern kann ein beliebiger Text sein.
Beispiel
"<t> <!nicht> leer": Wenn text leer ist, ... // Wenn text nicht leer ist, ...
Implementation
Ein Alias darf nur eine Aliasnegationsmarkierung haben. Beim parsen der Funktionsdeklaration wird ein Alias ohne dem Text in der Markierung und einen mit erstellt.
Das Problem
Für Funktionen, die Wahrheitswerte zurück geben, nimmt man als Alias oft den positiven Fall (also der, der wahr zurück gibt). Um dann den negativen Fall zu überprüfen, muss man den Funktionsaufruf negieren. Das Problem liegt dabei, dass man in der Deutschen Sprachen nicht einfach ein "nicht" vor einem Satz stellen kann um es zu negieren und dabei Grammatikalisch korrekt sein kann.
Beispiel
"<t> leer"
:Wenn text leer ist, ...
//Wenn nicht text leer ist, ...
Die Lösung
Man erlaubt in Aliasen, sogennante Aliasnegationsmarkierungen. Diese, wie der Name so schön kurz beschreibt, sind Markierungen an der Stelle eine negation hinzugefügt werden kann. Diese negation darf nicht nur ein "nicht" sein, sondern kann ein beliebiger Text sein.
Beispiel
"<t> <!nicht> leer"
:Wenn text leer ist, ...
//Wenn text nicht leer ist, ...
Implementation
Ein Alias darf nur eine Aliasnegationsmarkierung haben. Beim parsen der Funktionsdeklaration wird ein Alias ohne dem Text in der Markierung und einen mit erstellt.