Using boost::spirit to do parsing