#include <iostream>
#include <string>
#include <vector>
#include <regex>
using namespace std;
int main() {
regex rx(R"(&&|\|\||[();])");
string exp = "a < b | c | d > e >> f && ((g) || h) ; i";
vector<string> tokens(sregex_token_iterator(exp.begin(), exp.end(), rx, {-1, 0}),
sregex_token_iterator());
for( auto & p : tokens ) cout <<"'"<< p <<"'"<< endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8cmVnZXg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXJlZ2V4IHJ4KFIiKCYmfFx8XHx8WygpO10pIik7CglzdHJpbmcgZXhwID0gImEgPCBiIHwgYyB8IGQgPiBlID4+IGYgJiYgKChnKSB8fCBoKSA7IGkiOwoJdmVjdG9yPHN0cmluZz4gdG9rZW5zKHNyZWdleF90b2tlbl9pdGVyYXRvcihleHAuYmVnaW4oKSwgZXhwLmVuZCgpLCByeCwgey0xLCAwfSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmVnZXhfdG9rZW5faXRlcmF0b3IoKSk7CgkKICAgIGZvciggYXV0byAmIHAgOiB0b2tlbnMgKSBjb3V0IDw8IiciPDwgcCA8PCInIjw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQ==