#pragma once #include "sql_highlight.h" #include #include #include namespace NSQLHighlight { struct TToken { EUnitKind Kind; size_t Begin; // In bytes size_t Length; // In bytes }; class IHighlighter: public TThrRefBase { public: using TPtr = TIntrusivePtr; using TTokenCallback = std::function; virtual ~IHighlighter() = default; virtual bool Tokenize( TStringBuf text, const TTokenCallback& onNext, size_t maxErrors = Max()) const = 0; }; TVector Tokenize(IHighlighter& highlighter, TStringBuf text); IHighlighter::TPtr MakeHighlighter(const THighlighting& highlighting); } // namespace NSQLHighlight