Was ist bei verschachtelten Kommentaren jetzt erlaubt?
{{ } ist doch normalerweise ein gültiger Kommentar?!
Ich parse gerade ein wenig den FPC-Source und mein Parser beschwert sich in folgendem File über ein $ENDIF ohne $IF.
https://github.com/alrieckert/freepasca ... 68kcnv.pas
Verschachtelte Kommentare
-
- Beiträge: 203
- Registriert: Di 22. Sep 2009, 13:08
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Verschachtelte Kommentare
Noch so ein fragwürdiges Beispiel aus dem FPC Source:
https://github.com/graemeg/freepascal/b ... numlib.pas
Zeile 285:
{procedure Intsle(l: ArbInt; e: ArbFloat); {$IFDEF Needsstdcall} stdcall; {$ENDIF} external 'TpNumLib' index 117;}
https://github.com/graemeg/freepascal/b ... numlib.pas
Zeile 285:
{procedure Intsle(l: ArbInt; e: ArbFloat); {$IFDEF Needsstdcall} stdcall; {$ENDIF} external 'TpNumLib' index 117;}
Re: Verschachtelte Kommentare
Kommt auf den Modus an. Mit {$mode delphi} Ist es gültig.
Dann wird es sogar im Editor anders angezeigt.
Dann wird es sogar im Editor anders angezeigt.
-
- Beiträge: 203
- Registriert: Di 22. Sep 2009, 13:08
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Verschachtelte Kommentare
Ah, Danke. Andere Highlighter (z.B. Notepad++, GitHub) kennen sowas anscheinend nicht.
Bei näherer Betrachtung bin ich der Meinung, dass solche verschachtelte Kommentare verboten gehören {{}}
sowas führt nur zu einem unangenehmen Kompatibilitätschaos.
Bei näherer Betrachtung bin ich der Meinung, dass solche verschachtelte Kommentare verboten gehören {{}}
sowas führt nur zu einem unangenehmen Kompatibilitätschaos.
- corpsman
- Lazarusforum e. V.
- Beiträge: 1629
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Verschachtelte Kommentare
ist doch eigentlich recht einfach, zu musst nur merken in welchem Mode du bist und entsprechend die öffnenden und schließenden Kommentare zählen. Immer wenn alle "0" sind hast du echten Quellcode for dir.
--
Just try it
Just try it
-
- Beiträge: 203
- Registriert: Di 22. Sep 2009, 13:08
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Verschachtelte Kommentare
Ich probier es mal. Wenn im Code ein $mode vorhanden ist, kann man zumindig eindeutig sagen was los ist.corpsman hat geschrieben:ist doch eigentlich recht einfach, zu musst nur merken in welchem Mode du bist und entsprechend die öffnenden und schließenden Kommentare zählen. Immer wenn alle "0" sind hast du echten Quellcode for dir.
Wenn kein $mode da ist, muss ein Parser aber erst mal raten ob ein zufälliges File aus dem Internet als Default $mode delphi oder $mode objfpc habe will.
Z.B. der Highlighter hier im Forum kennt wohl auch nur $mode delphi Kommentare.
Code: Alles auswählen
{$mode objfpc }
{{Test } Test }
{{Test } XZY;
{$mode delphi }
{{Test } Test }
{{Test } XZY;
-> Ich denke seltsame Kommentare sollten lieber deprecated werden.
Früher war das mal eine gut Idee um Blöcke einfacher auskommentieren zu können,
aber heutzutage kann man das ja einfacher über Tools machen, die // verwenden.
Da verschachtelte Kommentare aber nicht so alltäglich sind ist für mich das ganze auch erst mal nicht so problematisch.
Etwas unangenehmer finde ich gerade bei FPC die Include-Files. Ich vergleiche gerade ein wenig Delphi mit FPC und habe hier
einen Stapel mit ca 250 MB Delphi .pas Files (Jedi, Indy, ...) und 250 MB FreePascal .pas Files (FPC, Lazarus, ...).
Bei FreePascal verlassen sich sehr viele Units darauf, dass jemand irdendeinen Such-Pfad richtig eingestellt hat um die Include-Files zu finden.
Bei Delphi habe ich da wesehtlich weniger Unklarheiten. Viele Packages benutzen dort sehr schön eindeutige Relativ-Pfade für die Include-Files.
Da muss sich ein Parser dann gar keine Gedanken über Such-Pfade machen, die in irgendwelchen Config-Files versteckt sind.