[antlr-interest] Re: trees with payloads??
John D. Mitchell
johnm-antlr at non.net
Fri Nov 12 10:47:01 PST 2004
>>>>> "lgcraymer" == lgcraymer <lgc at mail1.jpl.nasa.gov> writes:
>>>>>> In antlr-interest at yahoogroups.com, "John D. Mitchell"
>> IMNSHO, the dynamic attributes support is a fundamental feature of
>> Antlr v3.
> Well, maybe. It is a feature that has not yet been put to experimental
> test. It might turn out to be extremely valuable, or it might be just
> another bit of glitz.
It's more than just glitz.
Coming from a language designer's perspective, dynamically scoped
attributes fill a capability niche that is not provided for by any of the
statically scope capabilities.
In terms of praxis, look at how many times people have written their own
(buggy :-) version of dynamic attributes. Heck, I've done it a handful of
times myself on different translation projects.
> Also, while Hashmaps might be required by ANTLR to support dynamic
> attributes, that does not mean that they should be present in the
> generated code. Generating attribute classes or structures should be
> pretty straightforward, and the runtime attribute containers should
> probably be implemented as fields in the generated lexers, parsers, and
> treewalkers so that they are accessible within rules. That would
> certainly help to ensure that analysis passes (most of the work done in
> actions) can have good performance. And the ANTLR 3 output templates
> should make the code generation even easier.
Again, in terms of implementation, I'm extremely open to allowing the
different code generators & runtime combinations to do whatever they want
as long as they provide all of the capabilities.
As I noted for the notes from the workshop, the dynamically scoped
attributes need to support cabilities for things like LIFO & FIFO access;
specification of things like at most one/n, exactly one/n, at least one/n;
pushing/popping bundles of attributes; search current scope for attribute,
search up stack for attribute; etc.
Yahoo! Groups Links
<*> To visit your group on the web, go to:
<*> To unsubscribe from this group, send an email to:
antlr-interest-unsubscribe at yahoogroups.com
<*> Your use of Yahoo! Groups is subject to:
More information about the antlr-interest