Boost logo

Boost :

Subject: Re: [boost] [GSoC] Helping out Phoenix v3
From: Joel Falcou (joel.falcou_at_[hidden])
Date: 2010-04-02 11:43:30


Ok, ppl may look at :

https://www.lri.fr/svn/parall/prog_gen/branches/phoenix3/

login/passwd : boost/boost

to get a look at how I see the internals of the new phoenix working.
The code is just a proto transform that evaluate any kind of expression
and values from a fusion vector in a recursive, customizable way.

Basically, it needs to be wrapped into a proper proto grammar+
expression to hide that.

Now, if you wanted to add for exampel a if_[] statement and have it
evaluated properly you can overload either the evaluate PFO or
specialize process_node.

If you need to do otherthign with the expression, build a new evlauator
like PFO and build another compile<T> instance (like coutning arity,
turn the expression into a std::string, etc). You will notice that both
the process_node and evaluator are proto agnostic.

I'll advice using make_expr over const object to reduce compile-time (as
stated in a old post of mine) and maybe use CRTP so we can imbue
placeholder with proper method generating expression.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk