|
Boost : |
From: Douglas Gregor (gregod_at_[hidden])
Date: 2001-05-22 10:34:34
On Monday 21 May 2001 21:09, you wrote:
> joel de guzman wrote:
> > Spirit reflects more the top-down parser we build by hand. Albeit
> > automated. The non-deterministic nature minimises the restrictions
> > on the grammar. One exception is left recursion which is a no-no
> > on LL(N) parsers.
>
> Sounds like an Early parser?
Earley parsers aren't LL(k) but can parse any context-free language and are
worst-case O(n^3).
I think the Spirit C++ parser framework has a clean, readable syntax and that
it could form the basis for a great parsing library. I can envision using
Spirit C++ syntax and having several back-ends that can generate more
efficient parsers, but in-place. For instance, you create your grammar using
Spirit C++ syntax, but then you call a "compile" routine that generates an
efficient parser (probably an Earley parser, but one could tag it as LALR(k),
LL(k), etc. to get a more efficient but restricted parser).
Doug
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk