[Assorted-commits] SF.net SVN: assorted:[1504] sandbox/trunk/src/cc/boost_spirit.cc
Brought to you by:
yangzhang
From: <yan...@us...> - 2009-11-06 01:43:35
|
Revision: 1504 http://assorted.svn.sourceforge.net/assorted/?rev=1504&view=rev Author: yangzhang Date: 2009-11-06 01:43:25 +0000 (Fri, 06 Nov 2009) Log Message: ----------- failed demo of boost spirit 2 Added Paths: ----------- sandbox/trunk/src/cc/boost_spirit.cc Added: sandbox/trunk/src/cc/boost_spirit.cc =================================================================== --- sandbox/trunk/src/cc/boost_spirit.cc (rev 0) +++ sandbox/trunk/src/cc/boost_spirit.cc 2009-11-06 01:43:25 UTC (rev 1504) @@ -0,0 +1,38 @@ +// failed attempt to get started boost spirit 2; the docs were not so good and +// out of sync with the code + +#include <boost/spirit/include/qi.hpp> +#include <iostream> +#include <string> +#include <vector> + +using namespace std; +using namespace boost; +using namespace boost::spirit; +//using namespace boost::spirit::ascii; +using namespace boost::spirit::qi; +using boost::spirit::ascii::space_p; +//using namespace boost::phoenix; + +struct pred { std::string src; std::string dst; int port; }; + +int main() { + vector<pred> preds; + pred p; +#if 0 + BOOST_FUSION_ADAPT_STRUCT(pred, + (string, src) + (string, dst) + (int, port)); +#endif + qi::rule<std::string::const_iterator, space_type> pred_p = +#if 0 + (+char_)[ref(p.src) = _1] >> ',' >> + (+char_)[ref(p.dst) = _1] >> ',' >> +#endif + int_[ref(p.port) = _1]; + //parse(string("2,4,6"), pred_p, space_p); + parse(string("6"), pred_p, space_p); + preds.push_back(p); + return 0; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |