Mühsames Verhalten des Compilers - Nix formatfreie Syntax?

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

Antworten
Benutzeravatar
mmo
Beiträge: 177
Registriert: 12.11.2007, 23:14
Hat sich bedankt: 2 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 HM-CCU-2, 1x HM-PB-4Dis-WM, 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: 3079
Registriert: 12.09.2015, 22:31
System: Alternative CCU (RaspberryMatic etc.)
Wohnort: Wegberg
Hat sich bedankt: 48 Mal
Danksagung erhalten: 226 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
Die Wahrheit ist ein Chor aus Wind
Meine Seite, ok noch bisschen im Aufbau

RaspberryMatic 3.51.6.20200420 mit Groundplane Antennenmod
jede Menge Sensoren und Aktoren, Logamatic 2107 Gateway zum Buderus Kessel
ioBroker unter ProxMox auf NUC als Hauptsteuersystem und Visualisierung
Script Time Scheduler V1.3
Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 4.01.08B Scripteditor und Objektinspektor

technical contribution against annoying advertising

Daimler
Beiträge: 7050
Registriert: 17.11.2012, 10:47
Wohnort: Köln
Hat sich bedankt: 1 Mal
Danksagung erhalten: 89 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

3 * pivccx mit 3.51.6 in Produktiv, pivccx mit 3.51.6 Testsystem mit HMIP-Wired Testgeräten, 3 * HPCx Studio 4.1,
6 * L-Gateway, 3 * RS-L-Gateway, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM: 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: 177
Registriert: 12.11.2007, 23:14
Hat sich bedankt: 2 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 HM-CCU-2, 1x HM-PB-4Dis-WM, 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: 33
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

Antworten

Zurück zu „homeputer CL“