Related articles |
---|
bison/flex grammar chvist@club-internet.fr (christian visticot) (2002-09-03) |
Re: bison/flex grammar robert.f.monroe@verizon.net (Robert Monroe) (2002-09-08) |
Re: bison/flex grammar pjj@cs.man.ac.uk (Pete Jinks) (2002-09-08) |
Re: bison/flex grammar robert.f.monroe@verizon.net (Robert Monroe) (2002-09-11) |
From: | "Robert Monroe" <robert.f.monroe@verizon.net> |
Newsgroups: | comp.compilers |
Date: | 11 Sep 2002 23:19:45 -0400 |
Organization: | http://groups.google.com/ |
References: | 02-09-020 02-09-043 |
Keywords: | lex |
Posted-Date: | 11 Sep 2002 23:19:45 EDT |
"Robert Monroe" <robert.f.monroe@verizon.net> wrote in message news:02-09-043...
> Specify a (f)lexer:
>
> %%
> description {return DESCRIPTION;}
> keywords {return KEYWORDS;}
> = {return *yytext;}
> \"[^\"\n]\" {/* One of a million ways to describe a string */ return
> yytext;}
> .|\n {/* eat everything else */}
> %%
Naturally, after posting my response I immediately saw a few errors in
the flex part (incorrect RE for a string, no yylval assignments...).
For what it's worth, here are the corrections:
%%
description {return (yylval.intval = DESCRIPTION);}
keywords {return (yylval.intval = KEYWORDS);}
= {return (yylval.intval = *yytext);}
\"[^\"\n]*\" {/* One of a million ways to describe a string */
yylval.strval = yytext; return VALUE;}
.|\n {/* eat everything else */}
%%
Bob.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.