#include <boost/spirit/include/qi_parse_attr.hpp>
#include <boost/spirit/include/qi_char.hpp>
#include <boost/spirit/include/qi_operator.hpp>
#include <iostream>
#include <string>
#include "iter_pos.hpp"
namespace qi = boost::spirit::qi;
int main()
{
using custom_parser::iter_pos;
std::string prefix, suffix; std::string::iterator position;
std::string input("prefix1234567");
std::string::iterator first = input.begin();
bool result =
qi::parse(first, input.end()
, +qi::alpha >> iter_pos >> +qi::digit
, prefix, position, suffix);
if (result)
{
std::cout << "-------------------------------- \n";
std::cout << "Parsing succeeded\n";
std::cout << "prefix is: " << prefix << "\n";
std::cout << "suffix is: " << suffix << "\n";
std::cout << "position is: " << std::distance(input.begin(), position) << "\n";
std::cout << "-------------------------------- \n";
}
else
{
std::cout << "-------------------------------- \n";
std::cout << "Parsing failed\n";
std::cout << "-------------------------------- \n";
}
return 0;
}