Related articles |
---|
How do I handle multiple line quoted strings in fLex? tperry@blinksoft.com (Tim Perry) (1997-09-03) |
Re: How do I handle multiple line quoted strings in fLex? hbabu@sequent.com (1997-09-07) |
Re: How do I handle multiple line quoted strings in fLex? tperry@blinksoft.com (Tim Perry) (1997-09-12) |
From: | Tim Perry <tperry@blinksoft.com> |
Newsgroups: | comp.compilers |
Date: | 3 Sep 1997 01:02:52 -0400 |
Organization: | Compilers Central |
Keywords: | lex, question |
I wan't to be able to handle multiple line strings in flex, where I return
one token to bison of that string minus the quotes. I have a pattern such
as this that currently works, with a few snags...
\"[^\"]*\" { yyval.string = strdup(yytext[yyleng]); RETURN STRING }
This doen't get rid of the " nor does it supply a method of counting the
current line numbers since the \n rule that I have will not get executed.
I have thought about makeing a STRING state that when it encounters the
first " I initialize a state that accepts everything besides a \n, I
discard the \n since I don't want them in my string anyway, increase my
linecounter and then strcat the yytext to a temp buffer till I get the
closeing ".
If anyone has a better idea or the one I described above working I would
really appreciate it.
Thanks,
Tim
[I'd do what you suggest, use the STRING state to recognize a line at
a time and buffer up the string myself, since it's unwise to expect
lex to handle enormous single tokens. -John]
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.