Zitat von enertegus
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
if -> mehrere Anweisungen
Einklappen
X
-
Zitat von saft6luck Beitrag anzeigenJa, zum Beispiel. Ist das so schwer zu verstehen?offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
-
Ich geb jetzt auch noch meinen Senf dazu:
Warum kann man nicht ein CRLF, CR, LF oder ; einfach als Ende eines
Befehles akzeptieren?
Was ist so schlimm an einem einzelnen ; ?
Oder an sowas: ;;;;;; ;; ;;;;; ;;; ;;;;; ?
Wenn zwischen zwei Semikolon nix oder Leerzeichen oder Tabs stehen, dann kann der Compiler die einfach ignorieren. Das ist kein grosser Aufwand.
Und das kann man noch weiter spinnen:
Warum muss ich mehrere Anweisungen zwischen { } setzen?
Ich muss ja sowieso ein if .. then .. endif schreiben und kann ziemlich einfach alles was zwischen diesen Keywords liegt, als einen Block dem then- oder else- Teil zuordnen.
Und warum darf das } nicht alleine stehen?
Pascal Syntax war schon vor 20 Jahren deutlich verständlicher und einfacher strukturierbar, und Pascal gilt heute nicht mehr als das Optimum.
Aus meiner Sicht greift das "EibPC ist Zeilenorientiert"-Argument nicht.
Warum kann der Compiler nicht einfach ein ; zwischen zwei Anweisungen in einer Zeile als "neue Zeile" akzeptieren, wenn das "Zeilenorientiert" so fundamental wichtig ist?
Die Leistungsfähigkeit des EibPC ist immens!
Die Syntax ist verbesserungs-/vereinfachungswürdig.
Und mit Yacc o.ä. gibt es ausreichend Tools, mit denen man seinen eigenen Compiler relativ einfach umsetzen kann, allerdings gebe ich zu, dass ich den Aufwand, den es bedeutet, das Validierungsschema über Yacc zu "verwursten" nicht bewerten kann.Gruss Pio
Kommentar
-
Zitat von pio Beitrag anzeigenUnd mit Yacc o.ä. gibt es ausreichend Tools, mit denen man seinen eigenen Compiler relativ einfach umsetzen kann, allerdings gebe ich zu, dass ich den Aufwand, den es bedeutet, das Validierungsschema über Yacc zu "verwursten" nicht bewerten kann.
Zudem ist da noch die Sache mit den Datentypen, die eine "Vererbung" der Datentypen in der Baumstruktur voraussetzen. Schließlich noch die Funktionsargumente und deren Überprüfung (ok, das dürfte mit yacc gehen). Aus meiner Sicht hat das ingesamt wenig mit dem klassischen Compiler zu tun.
Zugegeben, ich hatte die Sache mit der Zeilenorientierung nicht so auf den Wichtigkeitsradar - aber das wird sich noch geben bzw. ändern lassen.
Immerhin habe ich ja nun schon Direktiven in den Compiler eingebaut und Makro-Funktionen mit Rückgabe und lokalen Variablen. Das ist doch was, und der Rest wird schon noch. Immerhin ist der EibPC erst 13 Monate alt...offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
-
Hallo
Mich würde nun noch folgendes interessieren (und ja, ich komme mit den Klammern, Strichpunkten, \\ ... auch null klar)
ich würde gerne dieses If etwas lesbarer und auch für andere verständlich umstellen.
Code:if event ("BWM_Bad_Praesenz_EIBPC-6/3/7") and ("BWM_Bad_Praesenz_EIBPC-6/3/7"==EIN) and Loc_Stat_HelligkeitEsszimmer<=10f16 and !Loc_Stat_ManuellBad then {write("Dim_Bad_Schalten-14/2/1", EIN) }endif
Code:if event ("BWM_Bad_Praesenz_EIBPC-6/3/7") and //Wenn Prsenzmelder im Bad = EIN ("BWM_Bad_Praesenz_EIBPC-6/3/7"==EIN) and // und Loc_Stat_HelligkeitEsszimmer<=50f16 and //Helligkeit im Esszimmer >50Lux !Loc_Stat_ManuellBad then //und Nicht Manuell dann {write("Dim_Bad_Schalten-14/2/1", EIN) }endif //Schalte das Licht ein
Ist das so gewollt? Mache ich generell was falsch?
Kommentar
-
Das ist übrigens auf keinen Fall als Kritik am EIBPC zu verstehen.
Ich werde nächsten Monat meinen 3ten kaufen... :-)
Nur die Kommentarsache verstehe ich überhaupt nicht.
Keine Ahnung warum das so kompliziert sein soll.
Das haben schon deutlich schlechtere und unkreativere Köpfe hingekriegt.
Ich glaube an euch.
Kommentar
-
Zitat von Little Bastard Beitrag anzeigenDas ist übrigens auf keinen Fall als Kritik am EIBPC zu verstehen.
Ich werde nächsten Monat meinen 3ten kaufen... :-)
Das haben schon deutlich schlechtere und unkreativere Köpfe hingekriegt.
Ich glaube an euch.Na das nehm ich mal als einen Ansporn an!
offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
-
Des Kommentierers Paradies
so hab das nun mal eingebaut
[highlight=epc]
[EibPC]
/* Super, dieser Kommentar */ c=$$
z= 1 // Eine Variable wurde definiert
/* Super, dieser Kommentar mit Strichpunkt */; c2=$$
// Noch ein Kommentar, aber so wie bisher
/* Meine Beste if-Anweisung */ if /* Achtung Bedingung ist 1b01 */ EIN /* und wir haben nun den Then-Zweig */ then {
c=elog()
/* Das ist ein Kommentar ohne Strichpunkt */
/* auch kein Strichpunkt */
} endif
if AUS then {
// Oder lieber so
z=4;
// Diese Anweisung eben war ziemlich dumm
// weil wir lieber z auf 7 setzen sollten
z=7;
// Ende gut alles gut
} endif
[/highlight]
Dann ist hier wohl mal Ruhe im Karton mit den Kommentaren.
Geht ab dem nächsten Release im Compiler (eibparser)offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
-
Zitat von Matthias Beitrag anzeigenDa kann ich auch nur sagen: DANKE!
Kann kaum erwarten die neue Version zu bekommen um endlich meinen Code vernünftig (also detailliert) dokumentieren zu können
Und selbst, wenn man das als Beta tituliert, sollte es doch soweit sein, dass zumindest im testbetrieb nix auftritt. Da versuche Euch mit neuen Features zu vertrösten.offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
-
Zitat von saft6luck Beitrag anzeigenHut ab, das mit den Kommentaren sieht echt cool aus so!!!Ohne das Lob schmälern zu wollen: Hast du auch noch eingebaut, dass leere Strichpunkte (also Strichpunkt und dann Zeilenende) ignoriert werden? Fände ich noch sehr wichtig.offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
Kommentar