seems to be failing line count.
You're right. Because the regex can match a block of html and a block of asp in one go, in between $line already needs to be updated. So I removed the extra set of parens and the counter line again and added two new \n-counters: one for $1 and one for $2.
my @parsed; my $line = 1; while ($asp =~ /\G((?: [^<]+ | <(?!%) )*) (?: <%(.*?)%> | ((?=<%)) )?/ +gsx) { $1 and push @parsed, [ $line, html => $1 ]; $line += $1 =~ tr/\n//; $2 and push @parsed, [ $line, asp => $1 ]; $line += $2 =~ tr/\n//; defined $3 and die "Unclosed ASP code block starting on line $line + near '", $asp =~ /\G(<%\s*\n?.*)/g, "'.\n"; }
Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }
In reply to Re: Re: Re: Re: Re: parsing an ASP file
by Juerd
in thread parsing an ASP file
by dada
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |