Boost logo

Proto :

Subject: Re: [proto] Using Phoenix inside eUML: mixing grammars
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2011-04-25 12:39:14


Hi Thomas,

Sorry to come back to the subject so late, I didn't manage before :(

> If you want to use it as a transform you need the evaluator with an
> appropriate action that does the desired transform... here is an
> example:
>
> struct BuildEventPlusGuard
> : proto::when<
> proto::subscript<proto::terminal<event_tag>,
> phoenix::meta_grammar >,
> TempRow<none,proto::_left,none,none,
> phoenix::evaluator(proto::_right, some_cool_action())>()
> >
> {};
>
> Now, some_cool_action can do the transform that BuildGuards was doing.

Hmmm, I get a compiler error, which was expected (would be too easy
otherwise ;- ) ), but the error is surprising. The error is that
phoenix::evaluator seems to believe some_cool_action should be a
random access fusion sequence (expects an environment?).

Anyway, I am hoping not to write any cool transform but simply save
the type of the phoenix expression so that I can re-create an actor
later. If I need to rewrite differently what BuildGuards was doing, I
gain little. I would like phoenix to do the grammar parsing and
building of actor.

Thanks,
Christophe


Proto list run by eric at boostpro.com