#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
using namespace std;
int main() {
string test = " first \" in \\\"quotes \" last ";
istringstream strm(test);
while (strm >> ws) {
string token;
auto startpos = strm.tellg();
if (!(strm >> quoted(token))) break;
auto endpos = strm.tellg();
if (endpos == -1) endpos = test.length();
cout << token << ": " << startpos << " " << endpos << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPGlvbWFuaXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXN0cmluZyB0ZXN0ID0gIiAgIGZpcnN0ICAgICBcIiAgaW4gXFxcInF1b3RlcyBcIiAgbGFzdCAiOwoJaXN0cmluZ3N0cmVhbSBzdHJtKHRlc3QpOwoKCXdoaWxlIChzdHJtID4+IHdzKSB7CgkgICAgc3RyaW5nIHRva2VuOwogICAgCWF1dG8gc3RhcnRwb3MgPSBzdHJtLnRlbGxnKCk7CgkgICAgaWYgKCEoc3RybSA+PiBxdW90ZWQodG9rZW4pKSkgYnJlYWs7CiAgICAJYXV0byBlbmRwb3MgPSBzdHJtLnRlbGxnKCk7CgkgICAgaWYgKGVuZHBvcyA9PSAtMSkgZW5kcG9zID0gdGVzdC5sZW5ndGgoKTsKCgkgICAgY291dCA8PCB0b2tlbiA8PCAiOiAiIDw8IHN0YXJ0cG9zIDw8ICIgIiA8PCBlbmRwb3MgPDwgZW5kbDsKCX0KCglyZXR1cm4gMDsKfQ==