Mühsames Verhalten des Compilers - Nix formatfreie Syntax?

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

Antworten
Benutzeravatar
mmo
Beiträge: 199
Registriert: 12.11.2007, 23:14
System: CCU
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

Mühsames Verhalten des Compilers - Nix formatfreie Syntax?

Beitrag von mmo » 01.08.2020, 18:38

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)! ||-(
Zuletzt geändert von mmo am 02.08.2020, 16:45, insgesamt 2-mal geändert.
1x RaspberryMatic, 1x HM-PB-4Dis-WM, 1x HM-RC-Dis-H-x-EU, 1x HM-OU-LED16, 1x 1x HM-Sec-MDIR, 1x HM-LC-Dim1L-CV, 7x HM-LC-Sw1-Pl, 3x HM-LC-Sw2-FM, 1x HM-RC-4-B, 1x HM-PBI-4-FM, 1x HM-PB-4-WM, 3x HM-Sec-SC, 1x HM-LC-Bl1-SM, HmIP-SWO-PL

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

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

Beitrag von Black » 02.08.2020, 10:53

Nun es gibt auch Sprachen, wo die Blockbildung AUSSCHLIESSLICH durch Einrückungen erreicht wird. Beispiel Python.

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Daimler
Beiträge: 9114
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 37 Mal
Danksagung erhalten: 283 Mal

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

Beitrag von Daimler » 02.08.2020, 13:03

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:
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

Benutzeravatar
mmo
Beiträge: 199
Registriert: 12.11.2007, 23:14
System: CCU
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

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

Beitrag von mmo » 02.08.2020, 14:15

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.
1x RaspberryMatic, 1x HM-PB-4Dis-WM, 1x HM-RC-Dis-H-x-EU, 1x HM-OU-LED16, 1x 1x HM-Sec-MDIR, 1x HM-LC-Dim1L-CV, 7x HM-LC-Sw1-Pl, 3x HM-LC-Sw2-FM, 1x HM-RC-4-B, 1x HM-PBI-4-FM, 1x HM-PB-4-WM, 3x HM-Sec-SC, 1x HM-LC-Bl1-SM, HmIP-SWO-PL

Wolle
Beiträge: 41
Registriert: 05.09.2007, 08:09
Wohnort: Wuppertal

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

Beitrag von Wolle » 05.08.2020, 13:57

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

Benutzeravatar
mmo
Beiträge: 199
Registriert: 12.11.2007, 23:14
System: CCU
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

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

Beitrag von mmo » 13.08.2020, 22:11

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.
1x RaspberryMatic, 1x HM-PB-4Dis-WM, 1x HM-RC-Dis-H-x-EU, 1x HM-OU-LED16, 1x 1x HM-Sec-MDIR, 1x HM-LC-Dim1L-CV, 7x HM-LC-Sw1-Pl, 3x HM-LC-Sw2-FM, 1x HM-RC-4-B, 1x HM-PBI-4-FM, 1x HM-PB-4-WM, 3x HM-Sec-SC, 1x HM-LC-Bl1-SM, HmIP-SWO-PL

Daimler
Beiträge: 9114
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 37 Mal
Danksagung erhalten: 283 Mal

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

Beitrag von Daimler » 13.08.2020, 22:42

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.
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

Antworten

Zurück zu „homeputer CL“