[antlr-interest] Re: Modification of Node Attributes using Tree Grammar
lgcraymer
lgc at mail1.jpl.nasa.gov
Fri Jun 14 14:03:18 PDT 2002
--- In antlr-interest at y..., Ric Klaren <klaren at c...> wrote:
> This is what C++ codegen does in 2.7.2aX . Still waiting on
Terence's go
> for porting this to java codegen.
Excellent!
>
> > --right now, the grammar processor passes class
> > information to the AST factory for every AST creation, and
creations
> > in actions bypass the grammar processor's knowledge.
>
> Indeed the astfactory is not the only pitfall in the current
heterogeneous
> ast implementation. If you decide to use heterogeneous AST's be sure
to
> read the generated code for correctness.
>
> Oh boy this stuff is *so* broken. C++ mode may currently do
marginally
> better than java. But AFAIK hardly anyone is using this stuff, else
we
> would see much more questions about it.
>
Ric--
I've fixed the AST bugs in the Java version--the original
implementation specifies variables as being of class CommonAST or
<specialAST> or whatever; if your declare them as "AST" (generic) and
fix the typecasting, you can avoid the type coercion problems (you
don't have to read the code; the compiler complains and the
corrections are pretty obvious). I haven't looked at the C++
implementation, but I assume that you've got something equivalent to
the AST interface (the code generator needs only generic AST
functionality except for AST creation). There are also a couple of
bugs in the tree generation which I had to fix. My version of ANTLR
uses heterogeneous ASTs to generate tree grammars, so I had to make
that work. I'll be able to make my extensions (and bug fixes)
available Real Soon Now--mostly the delay is that I haven't had time
to take the last few steps in the release process.
--Loring
> I'm repeating myself (probably :) ) that we either should implement
this
> right (C++ and Java), or remove it altogether. Or put a big sign on
it with
> big friendly fuzzy letters with *beware*. Interaction between action
> parsers (the stuff generating the #i #( .. )) and the real parser is
due
> for an overhaul)
>
> In short... Use heterogeneous AST's if you feel lucky/adventourous.
>
> Cheers,
>
> Ric
> --
>
-----+++++*****************************************************+++++++
++-------
> ---- Ric Klaren ----- klaren at c... ----- +31 53 4893722 ----
>
-----+++++*****************************************************+++++++
++-------
> "I don't have anything against Java - it's the best damn
implementation
> of UCSD Pascal ever released..." --- Larry Smith
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
More information about the antlr-interest
mailing list