summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/highlight/sql_highlighter.cpp
diff options
context:
space:
mode:
authorvitya-smirnov <[email protected]>2025-10-02 21:18:00 +0300
committervitya-smirnov <[email protected]>2025-10-02 22:11:56 +0300
commit6192f768fab5d54dd697cf6b5f884d5cd3145b1c (patch)
tree81342cd8bb7ed07f6b8b3b9754522ad283bc045d /yql/essentials/sql/v1/highlight/sql_highlighter.cpp
parentc1a5e76d42fda9476a375e0638b415c78d46f599 (diff)
YQL-20086: Format yql/essentials/sql/v1/highlight
This patch adds a style check for `yql/essentials/sql/v1`. To format use `ya style`. To test use `ya test ya test --test-type clang_format`. To enable style checking in a module, need to add: `ENABLE(YQL_STYLE_CPP)`. So in a such way we gradually will format all YQL modules, expect those, where fluent YQL-builders are used. Then we will revert activation macro, so switch from `ENABLE(YQL_STYLE_CPP)` to`ENABLE(YQL_STYLE_CPP_XFAIL)`. Guide: <https://nda.ya.ru/t/XzkoRIGg7KjXmq>. commit_hash:fa758a214e094c74821fe896184f30483dd18c55
Diffstat (limited to 'yql/essentials/sql/v1/highlight/sql_highlighter.cpp')
-rw-r--r--yql/essentials/sql/v1/highlight/sql_highlighter.cpp208
1 files changed, 104 insertions, 104 deletions
diff --git a/yql/essentials/sql/v1/highlight/sql_highlighter.cpp b/yql/essentials/sql/v1/highlight/sql_highlighter.cpp
index e44695d0a28..bbba982c6f5 100644
--- a/yql/essentials/sql/v1/highlight/sql_highlighter.cpp
+++ b/yql/essentials/sql/v1/highlight/sql_highlighter.cpp
@@ -9,125 +9,125 @@
namespace NSQLHighlight {
- using NSQLTranslationV1::Compile;
- using NSQLTranslationV1::IGenericLexer;
- using NSQLTranslationV1::TGenericLexerGrammar;
- using NSQLTranslationV1::TGenericToken;
-
- THashMap<EUnitKind, TString> NamesByUnitKind = [] {
- THashMap<EUnitKind, TString> names;
- names[EUnitKind::Keyword] = "K";
- names[EUnitKind::Punctuation] = "P";
- names[EUnitKind::QuotedIdentifier] = "Q";
- names[EUnitKind::BindParameterIdentifier] = "B";
- names[EUnitKind::TypeIdentifier] = "T";
- names[EUnitKind::FunctionIdentifier] = "F";
- names[EUnitKind::Identifier] = "I";
- names[EUnitKind::Literal] = "L";
- names[EUnitKind::StringLiteral] = "S";
- names[EUnitKind::Comment] = "C";
- names[EUnitKind::Whitespace] = "W";
- names[EUnitKind::Error] = TGenericToken::Error;
- return names;
- }();
-
- THashMap<TString, EUnitKind> UnitKindsByName = [] {
- THashMap<TString, EUnitKind> kinds;
- for (const auto& [kind, name] : NamesByUnitKind) {
- Y_ENSURE(!kinds.contains(name));
- kinds[name] = kind;
- }
- return kinds;
- }();
-
- TGenericLexerGrammar ToGenericLexerGrammar(const THighlighting& highlighting, bool ansi) {
- using NSQLTranslationV1::ANSICommentMatcher;
+using NSQLTranslationV1::Compile;
+using NSQLTranslationV1::IGenericLexer;
+using NSQLTranslationV1::TGenericLexerGrammar;
+using NSQLTranslationV1::TGenericToken;
+
+THashMap<EUnitKind, TString> NamesByUnitKind = [] {
+ THashMap<EUnitKind, TString> names;
+ names[EUnitKind::Keyword] = "K";
+ names[EUnitKind::Punctuation] = "P";
+ names[EUnitKind::QuotedIdentifier] = "Q";
+ names[EUnitKind::BindParameterIdentifier] = "B";
+ names[EUnitKind::TypeIdentifier] = "T";
+ names[EUnitKind::FunctionIdentifier] = "F";
+ names[EUnitKind::Identifier] = "I";
+ names[EUnitKind::Literal] = "L";
+ names[EUnitKind::StringLiteral] = "S";
+ names[EUnitKind::Comment] = "C";
+ names[EUnitKind::Whitespace] = "W";
+ names[EUnitKind::Error] = TGenericToken::Error;
+ return names;
+}();
+
+THashMap<TString, EUnitKind> UnitKindsByName = [] {
+ THashMap<TString, EUnitKind> kinds;
+ for (const auto& [kind, name] : NamesByUnitKind) {
+ Y_ENSURE(!kinds.contains(name));
+ kinds[name] = kind;
+ }
+ return kinds;
+}();
- TGenericLexerGrammar grammar;
- for (const auto& unit : highlighting.Units) {
- const auto* patterns = &unit.Patterns;
- if (!unit.PatternsANSI.Empty() && ansi) {
- patterns = unit.PatternsANSI.Get();
- }
+TGenericLexerGrammar ToGenericLexerGrammar(const THighlighting& highlighting, bool ansi) {
+ using NSQLTranslationV1::ANSICommentMatcher;
- const auto& name = NamesByUnitKind.at(unit.Kind);
+ TGenericLexerGrammar grammar;
+ for (const auto& unit : highlighting.Units) {
+ const auto* patterns = &unit.Patterns;
+ if (!unit.PatternsANSI.Empty() && ansi) {
+ patterns = unit.PatternsANSI.Get();
+ }
- if (unit.Kind == EUnitKind::Comment && ansi) {
- Y_ENSURE(unit.Patterns.size() == 1);
- auto matcher = Compile(name, unit.Patterns[0]);
- grammar.emplace_back(ANSICommentMatcher(name, std::move(matcher)));
- }
+ const auto& name = NamesByUnitKind.at(unit.Kind);
- for (const auto& pattern : *patterns) {
- grammar.emplace_back(Compile(name, pattern));
- }
+ if (unit.Kind == EUnitKind::Comment && ansi) {
+ Y_ENSURE(unit.Patterns.size() == 1);
+ auto matcher = Compile(name, unit.Patterns[0]);
+ grammar.emplace_back(ANSICommentMatcher(name, std::move(matcher)));
}
- return grammar;
- }
- class THighlighter: public IHighlighter {
- public:
- explicit THighlighter(NSQLTranslationV1::IGenericLexer::TPtr lexer)
- : Lexer_(std::move(lexer))
- {
+ for (const auto& pattern : *patterns) {
+ grammar.emplace_back(Compile(name, pattern));
}
+ }
+ return grammar;
+}
+
+class THighlighter: public IHighlighter {
+public:
+ explicit THighlighter(NSQLTranslationV1::IGenericLexer::TPtr lexer)
+ : Lexer_(std::move(lexer))
+ {
+ }
- bool Tokenize(TStringBuf text, const TTokenCallback& onNext, size_t maxErrors) const override {
- const auto onNextToken = [&](NSQLTranslationV1::TGenericToken&& token) {
- if (token.Name == "EOF") {
- return;
- }
+ bool Tokenize(TStringBuf text, const TTokenCallback& onNext, size_t maxErrors) const override {
+ const auto onNextToken = [&](NSQLTranslationV1::TGenericToken&& token) {
+ if (token.Name == "EOF") {
+ return;
+ }
- onNext({
- .Kind = UnitKindsByName.at(token.Name),
- .Begin = token.Begin,
- .Length = token.Content.size(),
- });
- };
+ onNext({
+ .Kind = UnitKindsByName.at(token.Name),
+ .Begin = token.Begin,
+ .Length = token.Content.size(),
+ });
+ };
- return Lexer_->Tokenize(text, onNextToken, maxErrors);
- }
+ return Lexer_->Tokenize(text, onNextToken, maxErrors);
+ }
- private:
- NSQLTranslationV1::IGenericLexer::TPtr Lexer_;
- };
-
- class TCombinedHighlighter: public IHighlighter {
- public:
- explicit TCombinedHighlighter(const THighlighting& highlighting)
- : LexerDefault_(NSQLTranslationV1::MakeGenericLexer(
- ToGenericLexerGrammar(highlighting, /* ansi = */ false)))
- , LexerANSI_(NSQLTranslationV1::MakeGenericLexer(
- ToGenericLexerGrammar(highlighting, /* ansi = */ true)))
- {
- }
+private:
+ NSQLTranslationV1::IGenericLexer::TPtr Lexer_;
+};
+
+class TCombinedHighlighter: public IHighlighter {
+public:
+ explicit TCombinedHighlighter(const THighlighting& highlighting)
+ : LexerDefault_(NSQLTranslationV1::MakeGenericLexer(
+ ToGenericLexerGrammar(highlighting, /* ansi = */ false)))
+ , LexerANSI_(NSQLTranslationV1::MakeGenericLexer(
+ ToGenericLexerGrammar(highlighting, /* ansi = */ true)))
+ {
+ }
- bool Tokenize(TStringBuf text, const TTokenCallback& onNext, size_t maxErrors) const override {
- return Alt(text).Tokenize(text, onNext, maxErrors);
- }
+ bool Tokenize(TStringBuf text, const TTokenCallback& onNext, size_t maxErrors) const override {
+ return Alt(text).Tokenize(text, onNext, maxErrors);
+ }
- private:
- const IHighlighter& Alt(TStringBuf text) const {
- if (text.After('-').StartsWith("-!ansi_lexer")) {
- return LexerANSI_;
- }
- return LexerDefault_;
+private:
+ const IHighlighter& Alt(TStringBuf text) const {
+ if (text.After('-').StartsWith("-!ansi_lexer")) {
+ return LexerANSI_;
}
-
- THighlighter LexerDefault_;
- THighlighter LexerANSI_;
- };
-
- TVector<TToken> Tokenize(IHighlighter& highlighter, TStringBuf text) {
- TVector<TToken> tokens;
- highlighter.Tokenize(text, [&](TToken&& token) {
- tokens.emplace_back(std::move(token));
- });
- return tokens;
+ return LexerDefault_;
}
- IHighlighter::TPtr MakeHighlighter(const THighlighting& highlighting) {
- return IHighlighter::TPtr(new TCombinedHighlighter(highlighting));
- }
+ THighlighter LexerDefault_;
+ THighlighter LexerANSI_;
+};
+
+TVector<TToken> Tokenize(IHighlighter& highlighter, TStringBuf text) {
+ TVector<TToken> tokens;
+ highlighter.Tokenize(text, [&](TToken&& token) {
+ tokens.emplace_back(std::move(token));
+ });
+ return tokens;
+}
+
+IHighlighter::TPtr MakeHighlighter(const THighlighting& highlighting) {
+ return IHighlighter::TPtr(new TCombinedHighlighter(highlighting));
+}
} // namespace NSQLHighlight