From: joel de guzman (isis-tech_at_[hidden])
Date: 2001-05-29 08:03:19
From: "John Max Skaller" :
> This need is much less for a meta-grammar like EBNF,
> where the productions can more directly represent abstract
> syntax. The metagrammar isn't cluttered with dummy
> productions for iteration, options, etc. So, if you have
> a high enough level 'grammar', decoupling the semantic
> actions becomes more viable.
How high is high enough? Spirit has virtually all the
set operators a | b; a & b; a - b; a ^ b; I couldn't do
set negation ~a; as that would be equiv. to U-a;
where U is the universal set of all strings. A paradox
that I don't intend to tackle just yet.
Iteration: *a; +a; (incl. the proposed: a(n); a(n1,n2);
and of course sequencing a >> b;
The generated parser is more-or-less already a syntax
tree. This is modeled as a heirarchical composition of
objects. I intend to make this traversable by a <visitor>.
Thanks a lot,
Joel de Guzman
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk