Seite 1 von 1

Mühsames Verhalten des Compilers - Nix formatfreie Syntax?

Verfasst: 01.08.2020, 18:38
von mmo
Ich habe gerade ewig lang Zeit damit verbraten, mich über völlig unverständliche Compiler-Fehlermeldungen zu ärgern!

Das Resultat war die Erkenntnis, dass der Compiler offensichtlich völlig ausrastet, wenn man ein "sonst wenn ..." auf eine gemeinsame Zeile zusammenzieht, d.h. wenn man statt immer weiterer Einrückungen wie

Code: Alles auswählen

wenn ... dann
    ...
sonst
    wenn ... dann
       ...
    sonst
        wenn ... dann
           ...
	sonst
           ...
        endewenn
    endewenn
endewenn
lieber einen Stil wie in Java oder C(++) verwenden würde:

Code: Alles auswählen

wenn ... dann
    ...
sonst wenn ... dann
    ...
sonst wenn ... dann
    ...
sonst
    ...
endewenn
endewenn
endewenn
Im 2. Fall meckerte der Compiler ständig die 2. Wenn-Bedingung an.
Seltsamerweise trat das Problem erst ab einer gewissen Komplexität des zweiten wenn-Ausdrucks auf. Einen einfachen Vergleich schaffte er noch, aber wenn man dann mehrere Terme mit "und" bzw. "oder" kombiniert , dann meldet er immer Syntax-Fehler.
Erst das Verschieben des ganzen Wenn-Ausdrucks auf eine neue Zeile (also ein new-line nach dem "sonst") hat das Problem behoben.

Offensichtlich haben die Compiler-Schreiber noch nie was von formatfreier Syntax gehört (also eine Sprach-Syntax, bei der die Formatierung keine Rolle spielt)! ||-(

Re: Mühsames Verhalten des Compilers - Nix formatfreie Syntax?

Verfasst: 02.08.2020, 10:53
von Black
Nun es gibt auch Sprachen, wo die Blockbildung AUSSCHLIESSLICH durch Einrückungen erreicht wird. Beispiel Python.

Black

Re: Mühsames Verhalten des Compilers - Nix formatfreie Syntax?

Verfasst: 02.08.2020, 13:03
von Daimler
Hi,

war da nicht kürzlich die Rede von einer P-Sprache, die sich nicht nur per Micro / Sprache, sondern auch per Gehirnstromsensoren bedienen lässt :?:
Finde den Link leider nicht mehr. :wink:

Re: Mühsames Verhalten des Compilers - Nix formatfreie Syntax?

Verfasst: 02.08.2020, 14:15
von mmo
Ja, ich weiss, dass es Sprachen gibt, bei denen Formatierung und Einrückung relevant sind. Es geht mir auch nicht drum, hier irgendwelche Sprachen zu diskutieren, sondern darum, dass in der HPCL Beschreibung mit keinem Wort erwähnt wird, dass die Formatierung - speziell Zeilenumbrüche - offensichtlich für das korrekte Parsen relevant sind.

Was ich bei einer Sprache, die sich zumindest entfernt an Pascal(-Nachfolger) anlehnt, zumindest ungewöhnlich und unerwartet finde.

Re: Mühsames Verhalten des Compilers - Nix formatfreie Syntax?

Verfasst: 05.08.2020, 13:57
von Wolle
In den Hilfetexten ist die Syntax der WENN-Anweisung doch genau beschrieben:
http://www.cl-control.de/CL-Software/ma ... mc74dq.htm

Dort steht auch ganz eindeutig:
Der wenn-Teil kann in mehreren Zeilen stehen während sonst und endewenn –Zeilen jeweils einzelne Zeilen sein müssen.

Spart viel Zeit da mal reinzusehen wenn man nicht sicher ist wie die Syntax aussieht.

LG
Wolle

Re: Mühsames Verhalten des Compilers - Nix formatfreie Syntax?

Verfasst: 13.08.2020, 22:11
von mmo
Stimmt - steht im Handbuch. Und wenn das "sonst" IMMER allein in einer Zeile stehen müsste, wäre das auch logisch und nachvollziehbar.
Aber das absurde hierbei ist, dass das Zusammenziehen von "sonst" und "wenn ... dann" mit einfachen Ausdrücken sehr wohl und problemlos funzt.
Nur wenn der Ausdruck etwas komplizierter wird, kapituliert der Parser dann irgendwann plötzlich. Und dadurch wird der Fehler bzw. die Fehlermeldung ziemlich erratisch.

Re: Mühsames Verhalten des Compilers - Nix formatfreie Syntax?

Verfasst: 13.08.2020, 22:42
von Daimler
Hi,
Wolle hat geschrieben:
05.08.2020, 13:57
In den Hilfetexten ist die Syntax der WENN-Anweisung doch genau beschrieben:
Lass es, manche User kannst du 100 Mal vor die Kanzel schicken, die wollen es einfach nicht verstehen.