Related articles |
---|
YYLess equivalent in JLex binesh@hex21.com (Binesh Bannerjee) (1999-06-12) |
Re: YYLess equivalent in JLex lsf@gmx.net (Gerwin Klein) (1999-06-14) |
Re: YYLess equivalent in JLex binesh@hex21.com (Binesh Bannerjee) (1999-06-19) |
Re: YYLess equivalent in JLex lsf@gmx.net (Gerwin Klein) (1999-06-27) |
From: | Gerwin Klein <lsf@gmx.net> |
Newsgroups: | comp.compilers |
Date: | 14 Jun 1999 23:01:27 -0400 |
Organization: | Technische Universitaet Muenchen, Germany |
References: | 99-06-046 |
Keywords: | lex, Java |
Binesh Bannerjee wrote:
> I don't want to do this: (extreme pseudocode)
> (I admit tho, that I don't want to do this because of my experience w/
> lex/flex... and overflowing buffers etc.
> ([^<]|[\ \t\r\n\f])* { return(TEXT); }
> "<" { yybegin(TAGSTATE); return(open_angle); }
There should be no problem with overflowing buffers in JLex, because the
input buffer is dynamically resized when necessary (although I would
recommend [^\<]+ as the first pattern). It should also be more efficient
than using an own additional input buffer.
For the yyless-thing (if you still like it better):
AFAIK there is no yyless in JLex, but with JFlex (http://www.jflex.de)
you could use the void yypushback(int) method like this (analogous to
yyless):
<YYINITIAL> "<" {
yybegin(TAG_CONTEXT);
yypushback(1);
returnvalue = _internal_buffer;
return(TEXT);
}
<YYINITIAL> (.|[\ \t\r\n\f]) { _internal_buffer += yytext(); }
<TAG_CONTEXT> "<" { return(open_angle); }
Regards,
Gerwin
Return to the
comp.compilers page.
Search the
comp.compilers archives again.