Ter--
The solution I implemented in Yggdrasil depends on a few key insights:
1.) ST output provides real visibility into the input stream (or anidealized,
user-friendly. tweaked version of the input stream), and that visibility can be
provided to development tools to provide RAD support, not just pretty output
but pretty output that makes the tools more usable.
2.) The ST structuring mechanism is via named slots and is fundamentally
different from the tree structuring mechanisms which determine order in an
output "stream".
3.) The proper view for AST versus ST output is not "either/or" but "and/or".
The printing of intermediate forms should not require a grammar dedicated to
template output: that just prolongs the development process. Oddly enough, I
think that this is the fundamental insight--none of the possibilities I
explored "felt right" until I got here.
4.) Heavy duty rearrangement of the input stream should be done through trees;
a minimalist syntax for ST support is sufficient. The first class attributes
in Yggdrasil can support major rewrites of template outputs, but I consider
that fortuitous; the real benefits are visualization and a more rapid
development cycle.
Efficiency is achieved through code generation flags--either the ST generation
support is included in the target code generated from a grammar or not.
Cheers!
--Loring
----- Original Message ----
From: Terence Parr <[EMAIL PROTECTED]>
To: antlr-interest Interest <[EMAIL PROTECTED]>
Cc: antlr-dev list <[email protected]>
Sent: Friday, April 4, 2008 3:43:58 PM
Subject: [antlr-interest] ignoring auto template construction for now
Hi. decided it's too hard to get a perfect solution in short order. i
easily added auto temp construction but got stuck thinking about
efficiency and hidden channel stuff.
For now, i realized I can just add this to rules that must return the
text by default, which suits my purposes with output=template and
rewrite=true at moment:
@after {
if ( $st==null ) {
StringTemplate t = %{"<element>"};
%t.element = $text;
$st = t;
}
}
Ter
____________________________________________________________________________________
You rock. That's why Blockbuster's offering you one month of Blockbuster Total
Access, No Cost.
http://tc.deals.yahoo.com/tc/blockbuster/text5.com_______________________________________________
antlr-dev mailing list
[email protected]
http://www.antlr.org:8080/mailman/listinfo/antlr-dev