Ich habe keinen fertigen Parser benutzt, sondern alles selbst geschrieben.
Was meinst Du mit "nicht einfach zeilenweise"?
Meine Vorgehensweise ist etwa so:
- Zerlegen der
Unit in einzelne Worte (Namen und Zahlen werden als Ketten behandelt, sonstige Zeichen sind immer separiert (Wörter sind dann ein Zeichen lang), LineBreaks sind auch "ein Wort")
- Die Wörter sind Objekte, die den Text beinhalten. Diese Objekte werden in Listen gespeichert.
- Den Objekten werden dann durch den Parser Tags hinzugefügt (z.B. "IstEinSchlüsselwort", "BeginnKommentar", EndeKommentar" usw.)
- Die Tags werden dann ggf. verschoben, um z.B. das Ende einer Methode zu markieren oder auch das Ende einer
Unit.
- Dann werden die einzelnen Blöcke ausgeschnitten und in anderer Reihenfolge wieder eingefügt.
- Dann geht ein Formatierer durch die Liste und fügt z.B. Leerzeichen ein oder entfernt welche.
. Zum Schluss werden die Texte aus den Objekten wieder in eine Stringlist geschrieben.