Jo, Zeilen bringen nicht viel
Delphi-Quellcode:
if
a
=
b
then
showessage
(
'abc'
)
;
beep
;
if a = b then showessage('abc'); beep;
Als Text/String und da, in Bezug auf SourceCode/Pascal, mindestens die größten Teile der Syntax müssen zusammen und auch verschachtelt betrachtet werden
Kommentare (bis Zeilenende)
Blockkommentare
Strings
und das Befehlsende ;
sollten mindestens behandelt werden,
denn in
if s = 'then' {if} then ...
sollten nicht alle IF und THEN als "Befehl" betrachtet werden.
Wenn es jetzt nur ums Folding geht und man z.B. {$IFDEF} ignoriert, sowie Verschachtelte und Inline-Procedure als Generics,
dann könnte man den Rest recht einfach halten, also z.B. nur alle "Befehle" raussuchen die mit function/procedure/class function/class operator/usw. beginnen ... von hier, bis zum nächsten Befehl vorm nachfolgenden Funktionsbeginn, bzw. vorm "END.".