#ifndef _TESTGRAMMAR_H #define _TESTGRAMMAR_H #include #include #include #include #include #include using namespace boost; using namespace boost::spirit; using namespace phoenix; template class TestGrammar : public grammar > { public: TestGrammar(Actions & actions); template class definition { private: rule cmdline; public: definition(const TestGrammar & self); rule const & start(); }; private: Actions & actions; }; template TestGrammar::TestGrammar(Actions & actions):actions(actions) { } template template TestGrammar::definition::definition(const TestGrammar & self) { Actions & actions = self.actions; cmdline = int_p[bind(&Actions::addNumber, ref(actions), _1)] >> *(ch_p(',') >> int_p) >> end_p; } template template rule const & TestGrammar::definition::start() { return cmdline; } #endif