Related articles |
---|
Writing an interpreter with Flex? vikshik@rediffmail.com (2004-05-16) |
Re: Writing an interpreter with Flex? dido@imperium.ph (2004-05-24) |
From: | dido@imperium.ph |
Newsgroups: | comp.compilers |
Date: | 24 May 2004 00:20:49 -0400 |
Organization: | Compilers Central |
References: | 04-05-048 |
Keywords: | interpreter, lex |
Posted-Date: | 24 May 2004 00:20:49 EDT |
On Sun, May 16, 2004 at 11:34:33PM -0400, vikshik@rediffmail.com wrote:
> Hi Every1
> please help me.
> Actually i'm writing a convertor for SystemC to verilog. And i'm using
> FLEX for the same. The problem i'm facing is:
> to create disable block. how can i go back into source code if
> FLEX find the TOKEN "break"[ \t]";" . And please suggest me how to
> handle nested loops. As i have to convert first '{' to begin and last
> '}' to end for every loop/switch case.
Frankly, though I'm not quite sure what exactly it is you're trying to
do, I'm getting the feeling that you're trying to do the impossible.
Flex (I assume you're talking of Flex the GNU Lex), can only recognize
regular languages. That means that block structures, such as your
nested loops, are impossible for it to recognize on its own. You need
to go at least one rung up the Chomsky hierarchy and use something
like a CFG at the very least, and for that you need Bison or Yacc.
My advice is learn how to use Bison in addition to Flex. The task
you're doing is impossible for Flex by itself, unless you write your own
recursive descent parser that reads tokens that Flex gives you. Most of
the time it would be easier to just use Bison or Yacc instead.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.