#pragma once #include #include #include #include namespace DB { struct StringRange { const char * first; const char * second; StringRange() {} StringRange(const char * begin, const char * end) : first(begin), second(end) {} StringRange(TokenIterator token_begin, TokenIterator token_end) : first(token_begin->begin), second(token_end->begin) {} StringRange(TokenIterator token) : first(token->begin), second(token->end) {} }; using StringPtr = std::shared_ptr; inline String toString(const StringRange & range) { return String(range.first, range.second); } }