16 if ((
size_t)sp.
size() >= str.size() && std::equal(str.begin(), str.end(), sp.
begin())) {
25 if ((
size_t)sp.
size() >= str.size() + 2 && sp[str.size()] ==
'(' && sp[sp.
size() - 1] ==
')' && std::equal(str.begin(), str.end(), sp.
begin())) {
26 sp = sp.
subspan(str.size() + 1, sp.
size() - str.size() - 2);
36 while (it != sp.
end()) {
37 if (*it ==
'(' || *it ==
'{') {
39 }
else if (level && (*it ==
')' || *it ==
'}')) {
41 }
else if (level == 0 && (*it ==
')' || *it ==
'}' || *it ==
',')) {
53 std::vector<Span<const char>> ret;
56 while (it != sp.
end()) {
58 ret.emplace_back(start, it);
63 ret.emplace_back(start, it);