On 11/23/2010 2:18 PM, joel falcou wrote:
> On 23/11/10 17:20, Eric Niebler wrote:
>> On 11/23/2010 10:19 AM, Joel Falcou wrote:
>>> So, question is: is there a way to have an extensible list of
>>> when<pattern,rule>  that can be extended "from the outside", something
>>> like a proto::switch_ but with patterns instead of tag ?
>> No. The best you can do is document how to define a new Proto algorithm
>> from an old one:
>>
>>    struct Old : proto::or_<  ...>  {};
>>
>>    struct New : proto::or_<  my_stuff, Old>  {};
>>
>> Now everywhere in your library that you have the Old algorithm
>> hard-coded, you need to make it a template parameter so that your stuff
>> can be used with an extended algorithm.
> Can't the new extrnal_transform be of any help ?

No. You're not adding transforms. You're adding grammar rules. The
external transforms and proto::switch_ are extensible because they have
unique types off of which to key: rules and tags. There is no unique
type off of which to key in order to add new grammar rules. Phoenix uses
custom tag types with switch_. That's, or my above suggestion, are your
best bets.

-- 
Eric Niebler
BoostPro Computing
http://www.boostpro.com
_______________________________________________
proto mailing list
proto@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/proto

Reply via email to