Boost logo

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?


Joel de Guzman

Boost list run by bdawes at, gregod at, cpdaniel at, john at