|
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