Ankündigung

Einklappen
Keine Ankündigung bisher.

Kommentare

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [EibParser] Kommentare

    Hallo Forumsteilnehmer,
    nachdem ich nunmehr meinen Programmcode kommentieren wollte, bin ich auf ein Problem gestoßen, daß ich auch nach Studium des Handbuches und des Forums nicht klären konnte.
    Hier ein Beispiel:

    VbrBuero=0
    if ('0/4/103'b01)\\
    or ('0/5/100'b01)\\
    or ('0/6/100'b01)\\
    or ('0/6/101'b01)\\
    then VbrBuero=1\\
    else VbrBuero=0\\
    endif

    Ich möchte die einzelnen Gruppenadressen nach dem "\\" kommentieren,
    aber alles was ich versuche, endet mit einer Fehlermeldung des Parsers.

    Vielleicht sehe ich mittlerweile auch den Wald vor lauter Bäumen nicht mehr. Es wäre schön, wenn mir jemand wieder auf den "rechten Weg" helfen könnte.

    Vielen Dank im Voraus.

    Grüße aus dem Nordwesten

    Dieter

    #2
    Hallo Dieter,

    Kommentare beginnen mit „//“ und stehen am Anfang einer Zeile.

    In Deinem Fall nimm: ;/* Bezeichnung der Gruppenadresse */;

    Kommentar


      #3
      Also "//" funktioniert nicht ab beliebiger Position bis Zeilenende (wie bei C, Java u.a.)?
      Tessi

      Kommentar


        #4
        Zitat von Tessi Beitrag anzeigen
        Also "//" funktioniert nicht ab beliebiger Position bis Zeilenende (wie bei C, Java u.a.)?
        Ja, das ist richtig
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Für mich ist die Art des Kommentierens im eibPC-Parser sehr befremdlich, aber man muss sich ja an allem gewöhnen:
          Kommentar ist ja normalerweise Text, der beim Kompilieren durch den Parser gelöscht bzw. ignoriert wird, oder zumindest werden sollte.

          Beim eibPC-Parser benötigen Blockkommentare aber syntaktisch korrekt einen Strichpunkt am Ende, wenn sie in Blöcken verwendet werden und ein \\ am Zeilenende, wenn sie über mehrere Zeilen gehen!!!
          Zeilenkommentare kann man mit \\ verlängern, sie müssen aber alleine in der Zeile stehen und können nicht in Blöcken vorkommen, da der Strichpunkt als Kommentar gewertet wird!!!

          Und jetzt kommt das Beste:

          Kommentare kann man über {} verlängern!

          Code:
          [COLOR="Blue"]// {
               Ein Kommentar
          }[/COLOR]
             if sun() then {
                write("EG Ganglicht Helligk. Schalten freigabe-2/0/211", AUS)
             } else {
          [COLOR="Blue"]      /* {
                   Hier kommt ein genialer Kommentar!
                } */;
          [/COLOR]      write("EG Ganglicht Helligk. Schalten freigabe-2/0/211", EIN)
             } endif
          Da kann man ja wirklich nicht mehr meckern, oder?

          BTW der Editor färbt mehrzeilige Kommentare noch nicht richtig ein.
          BR
          Marc

          Kommentar


            #6
            Wenn ich jetzt wüßte wie das geht würde ich jetzt eine Umfrage starten, wer von allen Anwendern denn gerne lieber die Format- und Kommentarregeln von C, Java und Co hätte und dafür auch bereit wäre, bestehenden Code zu überarbeiten falls das EibStudio entstprechend angepasst werden würde.
            Ich bin für eine Änderung, einfach weil es immer wieder zu Fehlern führt, wenn man gelegentlich von den 'Arbeitssprachen' auf einen 'Exoten' umsteigt - Perl mußte da mit '#' statt '//' ja auch sein eigenes Süppchen kochen, das hagelte anfangs immer Fehler, zum Glück merkt man das Dank Syntax Highlighting heute etwas schneller...
            Ich finde, bei den grundsätzlichen Dingen sollte man einfach nicht zu weit vom Mainstream abweichen, außer das bringt wirklich ganz entscheidende Vorteile für den Anwender - die ich hier aber nicht entdecken kann.
            Tessi

            Kommentar


              #7
              Zitat von Tessi Beitrag anzeigen
              Ich bin für eine Änderung, einfach weil es immer wieder zu Fehlern führt, wenn man gelegentlich von den 'Arbeitssprachen' auf einen 'Exoten' umsteigt - Perl mußte da mit '#' statt '//' ja auch sein eigenes Süppchen kochen, das hagelte anfangs immer Fehler, zum Glück merkt man das Dank Syntax Highlighting heute etwas schneller..
              Soweit weg ist es ja nicht vom Mainsteam. Es sind halt Erweiterungen des Compilers (also ; am Ende des Kommentar weg und // bis zum Zeilenende aber an beliebiger Position?
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Zitat von Tessi Beitrag anzeigen
                Perl mußte da mit '#' statt '//' ja auch sein eigenes Süppchen kochen
                Das nutzen neben Perl auch Shellscript und andere Sprachen
                Firma: Enertex Bayern GmbH, Ebermannstädter Straße 8, 91301 Forchheim
                Amazon: KNXnet/IP Router
                , KNXnet/IP Interface

                Kommentar


                  #9
                  Zitat von enertegus Beitrag anzeigen
                  ... aber an beliebiger Position?
                  Ja, so wie in C/C++ und Java. Dort kann beliebiger Code vor einem solchen Kommentar in der selben Zeile stehen. Und alles nach '//' ist bis zum realen Zeilenende (CR/LF oder zumindest eines von beiden, je nach OS) Kommentar, ganz egal was da noch so steht.
                  Eigentlich doch ganz einfach:
                  Der Compiler ignoriert nach '//' jeglichen Text bis zum Auftreten von CR/LF und nach '/*' jeglichen Text bis zum Auftreten von '*/', im letzten Fall also auch CR/LF.

                  Zitat von salixer Beitrag anzeigen
                  Das nutzen neben Perl auch Shellscript und andere Sprachen
                  ... und viele Assembler nutzen ';' dafür...
                  OK, eine wirkliche Einigkeit herrscht tatsächlich nicht, daher klammern sich wohl so viele an den "Marktführer" C/C++.
                  Tessi

                  Kommentar


                    #10
                    Zitat von enertegus Beitrag anzeigen
                    Soweit weg ist es ja nicht vom Mainsteam. Es sind halt Erweiterungen des Compilers (also ; am Ende des Kommentar weg und // bis zum Zeilenende aber an beliebiger Position?
                    ... und '/*', '*/' als Block über mehrere Zeilen und auch an beliebiger Position.

                    Wenn man dann noch das Problem mit den Kommentaren in Blöcken löst und einfach den ganzen Quelltext als "eine Zeile" interpretiert, könnte man generell auf '{', '}' und '\\' verzichten. Dann müsste man zwar an jedes Kommando ein ';' setzen, aber das würde ich liebend gerne machen, wenn ich dadurch nicht immer die Strichpunkte beim Kopieren aus und in Blöcke nachziehen müsste, inkl. letzem Strichpunkt im Block!

                    Dass das nicht sooo schwierig ist, zeigt ja die jetzt schon vorhandene Möglichkeit, den ganzen Bereich in geschweifte Klammern zu setzen
                    BR
                    Marc

                    Kommentar

                    Lädt...
                    X