DDP-Projekt / Kompilierer

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

Negative Zahlenliterale in Funktionsparametern geben Fehler #1

Closed NotLe0n closed 2 years ago

NotLe0n commented 2 years ago

Problem

Negative Zahlenliterale können nicht als Funktionsparameter übergeben werden.

Beispiel

Die Funktion hh mit den Parametern a vom Typ Zahl, gibt nichts zurück, macht:
    Schreibe die Zahl a.
Und kann so benutzt werden:
    "test *a"

test -2.
Schreibe die Zahl -1.
Schreibe die Kommazahl -489.

Output

Fehler in tests.ddp in Zeile 6, Spalte 6: Es wurde 'DOT' erwartet aber '-' gefunden
Fehler in tests.ddp in Zeile 6, Spalte 1: Der Name 'test' wurde noch nicht als Variable deklariert
Fehler in tests.ddp in Zeile 7, Spalte 10: Es wurde 'DOT' erwartet aber 'die' gefunden
Fehler in tests.ddp in Zeile 7, Spalte 1: Der Name 'Schreibe' wurde noch nicht als Variable deklariert
Fehler in tests.ddp in Zeile 8, Spalte 10: Es wurde 'DOT' erwartet aber 'die' gefunden
Fehler in tests.ddp in Zeile 8, Spalte 1: Der Name 'Schreibe' wurde noch nicht als Variable deklariert
failed to compile the source code: Fehlerhafter Syntax Baum
bafto commented 2 years ago

fixed in 320cf3f8e639b41643c65fabd516b007bdcc9604 Eigentlich war das kein Bug, da -Literal 2 Tokens sind, aber da noch keine Dokumentation für Funktionen vorhanden ist wusstest du davon nichts. Die Regel war, dass nur Literale und Identifier ohne Klammern als Argumente übergeben werden konnten. Da es aber sinnvoll erscheint, ein - (was ja vom Gefühl her aussieht wie ein Literal) als Ausnahme zu erlauben, habe ich es hinzugefügt.