summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/lexer
diff options
context:
space:
mode:
authorvitya-smirnov <[email protected]>2025-07-15 18:32:56 +0300
committervitya-smirnov <[email protected]>2025-07-15 18:59:24 +0300
commit9fa5e2a8b51a9c6072fc06bb8cd3ba0994e1cf7e (patch)
tree41ba4e41729cf88f32cb6ad492b25120b662a2ea /yql/essentials/sql/v1/lexer
parent892100046de6ef219e524c90cdd95bc4e81a128a (diff)
YQL-19616: Generate Vim SQL syntax highlighting
Introduced a Vim syntax highlighting for YQL. This is a replacement for an existing almost manually written conguration. It uses regexes generated from the original ANTLR4 grammar. Now only Default lexer mode is supported. commit_hash:85fa094593bd9d80373754a492b46ede1a50148d
Diffstat (limited to 'yql/essentials/sql/v1/lexer')
-rw-r--r--yql/essentials/sql/v1/lexer/regex/generic.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/yql/essentials/sql/v1/lexer/regex/generic.cpp b/yql/essentials/sql/v1/lexer/regex/generic.cpp
index 83ad5b4155d..926c50dde2c 100644
--- a/yql/essentials/sql/v1/lexer/regex/generic.cpp
+++ b/yql/essentials/sql/v1/lexer/regex/generic.cpp
@@ -130,7 +130,12 @@ namespace NSQLTranslationV1 {
TStringBuilder body;
for (const auto& pattern : patterns) {
- body << "(" << pattern.Body << ")|";
+ TString regex = pattern.Body;
+ if (pattern.Body.Contains('|')) {
+ regex.prepend('(');
+ regex.append(')');
+ }
+ body << regex << "|";
}
Y_ENSURE(body.back() == '|');
body.pop_back();