#pragma once #include "translation_settings.h" #include #include #include #include namespace NSQLTranslation { class ITranslator : public TThrRefBase { public: virtual ~ITranslator() = default; virtual ILexer::TPtr MakeLexer(const TTranslationSettings& settings) = 0; virtual NYql::TAstParseResult TextToAst(const TString& query, const TTranslationSettings& settings, NYql::TWarningRules* warningRules, NYql::TStmtParseInfo* stmtParseInfo) = 0; virtual google::protobuf::Message* TextToMessage(const TString& query, const TString& queryName, NYql::TIssues& issues, size_t maxErrors, const TTranslationSettings& settings) = 0; virtual NYql::TAstParseResult TextAndMessageToAst(const TString& query, const google::protobuf::Message& protoAst, const TSQLHints& hints, const TTranslationSettings& settings) = 0; virtual TVector TextToManyAst(const TString& query, const TTranslationSettings& settings, NYql::TWarningRules* warningRules, TVector* stmtParseInfo) = 0; }; using TTranslatorPtr = TIntrusivePtr; TTranslatorPtr MakeDummyTranslator(const TString& name); } // namespace NSQLTranslation