|
Boost : |
From: Joel de Guzman (djowel_at_[hidden])
Date: 2002-10-15 19:37:53
----- Original Message -----
From: "Beman Dawes" <bdawes_at_[hidden]>
> At 09:45 PM 10/14/2002, Joel de Guzman wrote:
>
> >> * Can easily parse local contradictions (always AB,
> >> except in certain expressions its BA).
> >
> >If I understand correctly, you mean special cases?
> >Correct me if I'm wrong.
> >
> >The framework is malleable to special cases. There are exciting
> >possibilities with dynamic parsing. Here's an example:
> >
> > bool flag;
> > r =
> > if_p(flag)
> > [
> > parse_it_this_way
> > ]
> > .else_
> > [
> > parse_it_that_way
> > ]
> >
> >.. if(c)[p1].else_[p2]
> > parse p1 if c evaluates to true, else parse p2.
>
> Yes, that is exactly what I meant. If what is being parsed is something
> like a programming language, the designers usually try to avoid special
> cases. But if the input to be parsed comes from material extracted from
> newspapers, for example, is is often shot through with special cases. Glad
> to hear Spirit can deal with special cases easily.
Even klunky programming languages such as C++ (hehe :) are full
of *context sensitive* special cases. The ability of Spirit to do
dynamic parsing (parsers that change behavior at run time)
makes it able to parse context sensitive languages.
--Joel
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk