Boost logo

Boost Users :

From: Joel de Guzman (djowel_at_[hidden])
Date: 2003-05-09 11:06:33


Hi,

Please see the spirit_bind.cpp sample in the
libs\spirit\example\fundamental directory.

BTW, Spirit has its own mailing list. Please send
future posts there. Thanks,

-- 
Joel de Guzman
joel at boost-consulting.com
http://www.boost-consulting.com
http://spirit.sf.net
Slava Akhmechet wrote:
> I am playing around with Spirit and I seem to run into an
> architecture problem with semantic actions. Here's a small example. 
> 
> class MyGrammar : public grammar<MyGrammar>
> {
> public:
> template <typename ScannerT>
> struct definition
> {
> definition(MyGrammar const& self)
> {
> TestRule = str_p("test")[&my_action];
> }
> 
> rule<ScannerT> const&
> start() const { return TestRulet; };
> 
> private:
> rule<ScannerT> TestRule;
> };
> };
> 
> My major problem is related to the fact that I cannot pass any custom
> data to my_action function. Since my_action is a global function, it
> has no knowledge of MyGrammar and must rely on global variables.
> Ideally, I would pass self to my_action to be able to hold state.
> What is a general way to get around this problem? The documention
> mentions a way to specify member functions as semantic action actors
> using boost's bind facilities but I was unable to get it to work.
> Thanks in advance.      
> 
> P.S. Sorry for a fairly newbie question, I was unable to find the
> answer online or in the docs. 
> P.P.S. I might have accidently double posted this. Sorry about that.

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net