Related articles |
---|
C++ parser henrique@bucher.com (Henrique Bucher) (2001-01-18) |
Re: C++ parser tmk@netvision.net.il (Michael Tiomkin) (2001-01-19) |
Re: C++ parser joel@interxys.com (Joel de Guzman) (2001-01-20) |
Re: C++ parser henrique@bucher.com (Henrique Bucher) (2001-01-20) |
From: | "Joel de Guzman" <joel@interxys.com> |
Newsgroups: | comp.compilers |
Date: | 20 Jan 2001 16:08:53 -0500 |
Organization: | Compilers Central |
References: | 01-01-097 |
Keywords: | C++, parse |
Posted-Date: | 20 Jan 2001 16:08:52 EST |
Hi,
I have one. I am planning to release it as GPL. Right now I am trying
to complete the documentation and seeking comments from interested
people. Feel free to email me if anyone out there is interested. It is
working well. I have a couple of test examples including a byte-code
interpreter.
The grammar is EBNF and allows semantic actions to be attached. The
generated parser is more of a recursive descent parser composed of C++
objects that follows the grammar's parse tree. The parser is
non-deterministic in nature and can be able to parse with infinite
lookahead LL(INF). I chose this path due to my familiarity with C++
object heirarchical embedding. The generated parser is composed of a
heirarchical structure of C++ objects that can immediately be runnable
without compiling. There are many interesting aspects that this
technique opens up. The parser is very dynamic. In fact you can
dynamically add production rules while the parser is running.
many thanks,
Joel de Guzman
----- Original Message -----
From: "Henrique Bucher" <henrique@bucher.com>
|
| I was wondering if there is a C++ parser class (public domain or GPL)
| that allows the definition of the grammar at runtime, not at compile
| time as yacc. The objective is to ask the user for the grammar rules
| (with a nice interface, of course) and then instruct the parser to
| read an user file. I am almost prepared to start coding but I would
| like to have this try first.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.