DDP-Projekt / Kompilierer

Der Kompilierer der Deutschen Programmiersprache
https://ddp.le0n.dev/Spielplatz
MIT License
138 stars 4 forks source link

Alias Negation #74

Closed NotLe0n closed 3 months ago

NotLe0n commented 3 months ago

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.