Menu ▾ ▴

#18 Infinite loop while parsing C source

v3.5.0
open
nobody
5
2001-08-25
2001-08-25
No

Submitted by Aaron Peromsik on Wed, 28 Jul 1999
18:38:12 -0400

Hi! Perceps 3.5 looks like a wonderful tool; so
far it's done a decent job of letting me generate
documentation

However, it seems to fall into an infinite loop
when processing C code which includes a quoted
backslash at the end of a string, as in ".\\".

The structure of my code is something like this
(oversimplified):

int func(char *c) {
if ( strcmp(c, ".\\"))
return 0;
/* The string in "c" represents the current
directory on NT. */
/* .. more code */
}

perceps treats the second quote as a quoted quote,
matches the first quote to the quote in the
comment, and therefore is unable to balance
parentheses because some "real" parentheses get
masked.

I don't have enough Perl experience to try and fix
this myself just yet-- barely enough to track down
the problem in the debugger-- so I thought I'd
pass the info along. For now I have commented out
the two lines that handle escaped quotes in
MASKSPECIAL.

Have fun

Discussion


Log in to post a comment.