|
Boost : |
From: Joel de Guzman (joel_at_[hidden])
Date: 2006-08-06 19:47:43
Andreas Pokorny wrote:
> For my thesis work I wrote a DSL framework based on fusion-2. It fulfills a
> similar purpose like boost::xpressive's proto. Compared to proto, the framework
> has a rule system, allowing the user define the language rules of a domain.
>
> Is there any interest in a library like that?
>
> Some additional information:
> All operators defined by the framework verify the correctness of expressions
> querying the domain rules the expression parameters belong to, using EnableIf.
> Foreign types can be integrated into a domain by specifing adaptation rules.
>
> The framework separates operators (or DSL functions) from language rules.
> Consequently rules may
> introduces this layer of indirection to achieve a consistent
> definition of language rules.
>
> Expressions have a varying set of attributes stored in a fusion-2 map, e.g.
> the expressions domain is identified by an attribute inside that map. The
> set of attributes is controlled by the domain rules. Apart from returning the
> validity of expressions, rules also have to provide a result type. Hence the
> rule code tends to grow complex, with an increasing amount of attributes.
>
> The library lacks a proper documentation, and requires some interface changes
> to simplify attribute update operations. Before working on that, I wanted to see
> if there is interest at all.
>
> I used the framework to implement a matrix library with a signle frontend and
> multiple backends, that could be picked and combined on a by expression basis.
I'm interested. I'd like to see some examples; especially on how
the "rule system" works. I am also interested to know how a domain
can be adapted for use by 2 or more libraries: xpressive and spirit
being main examples. IOTW, in the future, spirit and xpressive
parts can be shared.
To be honest, right now, for Spirit-2, I am inclined to use Eric's
proto. It's been there for quite some time now and is quite mature.
But, like your library, there are no docs yet (as far as I know).
I'm not sure when Eric will have the time to get it outside xpressive
as a standalone ET library, for review. At any rate, it would be
interesting if you can form a collaboration with him. So, instead
of having 2 separate ET entries, we can just have one that has the
the best of both. Is that possible at all? Or is your library too
different from Proto?
Cheers,
-- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk