Hi.
Zitat von
malo:
Um mehrzeilige Kommentare zu erkennen, gehe ich den Quellcode durch, und prüfe nach dem Kommentarbegrenzer. Wenn ein Kommentar erkannt wurde, wird eine Boolsche Variable (is_comment) auf TRUE gesetzt. Sobald dann der jeweilige "Endbegrenzer" gefunden wurde, wird die Variable wieder auf FALSE gesetzt. Wenn jedoch ein verschachtelter Kommentar zu Ende sein sollte, würde dann trotzdem mein "Kommentar" zu ende sein. Tja, und da ist das kleine Problem...
Nimm stattdessen Byte/Integer.
Delphi-Quellcode:
var
kommentar : integer;
{...}
function IsInnerhalbKommentar : boolean;
begin
result := (kommentar > 0);
end;
{...}
if token = '
{'
then inc(kommentar)
else if token = '
}'
then dec(kommentar);
{...}
edit: Wo war der rote Kasten...