Einzelnen Beitrag anzeigen

Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Syntaxhighliter

  Alt 23. Aug 2005, 09:38
Wichtig ist, dass du von vorne nach hinten durchgehst und dabei jeweils auf alle Möglichkeiten prüfst. Also suchst du z.B. für Pascal immer nach dem ersten
- Kommentaranfang '{' oder '(*' oder '//' oder
- Stringanfang '"' oder '''' oder
- Anfang eines Schlüsselwortes 'a' bis 'z'.
Das darfst du nicht separat machen, denn sonst können Dinge wie
begin // hier gehts los bis end deinen "Parser" hereinlegen wenn du erst alle Schlüsselwörter, dann alle Zeichenketten und danach erst alle Kommentare behandelst. Und wenn du die Reihenfolge änderst, dann kann man ihn mit
a := 'begin // hier gehts los bis end'; hereinlegen.

Ich habe kürzlich einen in PHP geschrieben (hier), der dort natürlich die ohnehin schon gegebenen Möglichkeiten regulärer Ausdrücke nutzt. Da kannst du mal in den Quelltext schauen. Für Pascal nehmen ich (vereinfacht) den regulären Ausdruck:
Code:
[[:<:]][a-zA-Z_]|'|//|{|\(\*
Allerdings bin ich zu wenig drin in .NET um zu wissen, ob's da auch reguläre Ausdrücke gibt
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat