|
Boost : |
From: joel de guzman (isis-tech_at_[hidden])
Date: 2001-06-03 16:06:20
From: "Larry Evans":
> I believe * and + should instead be used for concatenation and
alternation.
> The main reason is, as I think Colvin mentioned, it "fits" better with
regular
> grammars. For example, a RE language can be expressed as a set of
> linear equations and solved for the start symbol with, at least some,
> linear equation solvers. For example:
>
> X = 'a' * X + 'b'
>
> In math, X is solved for by:
>
> (1 - 'a')*X = 'b'
> X = 'b'/(1-'a')
>
> where, 'b'/(1-'a') in BNF is a*b. So if * and + are used, we might could
> use a boost templated linear equation solver to find solutions. OTOH,
this
> solution method is probably not be practical because there are more
efficient
> solution methods. But it would make boost linear equation solvers more
> reusable if someone is only interested in a result and not so much
> in the speed.
>
I Think the problem is that it is too detached from (E)BNF which
is what we are tring to mimic as much as we can using C++ syntax
rules. The algebra solver is quite intersting though, something new
in the context of parsing.
-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