Skip to content

Commit 9b1e687

Browse files
author
钱宇
committed
commit
1 parent 8776040 commit 9b1e687

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

src/ClickHouseSQLParser.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,19 @@ public static function token_get_all($str, $options = array())
643643
return array();
644644
}
645645
$tokens = array();
646-
\preg_match_all("{[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*|\\`(?:[^\\`\\\\]|\\\\.)*\\`|\\\"(?:[^\\\"\\\\]|\\\\.)*\\\"|\\'(?:[^\\'\\\\]|\\\\.)*\\'|\\s+|\\d+(?:\\.\\d*)?(?:[Ee][\\+\\-]?\\d+)?|\\<\\=\\>|\\!\\=|\\>\\=|\\<\\=|\\<\\>|\\<\\<|\\>\\>|\\:\\=|&&|\\|\\||@@|\\-\\>|\\-\\-.*?(?=[\\r\\n]|\$)|\\/\\*.*?(?:\\*\\/|\$)|.}s", $str, $m);
646+
$pattern = '{'
647+
. '[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*' // Identifier
648+
. '|\`[^\`\\\\]*(?:\\\\.[^\`\\\\]*)*\`' // Optimization: Backtick string
649+
. '|\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"' // Optimization: Double-quoted string
650+
. '|\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'' // Optimization: Single-quoted string
651+
. '|\s+' // Whitespace
652+
. '|\d+(?:\.\d*)?(?:[Ee][\+\-]?\d+)?' // Number
653+
. '|<=>|!=|>=|<=|<>|<<|>>|:=|&&|\|\||@@|->' // Operator
654+
. '|--[^\r\n]*?(?=[\r\n]|$)' // Single-line comment
655+
. '|/\*.*?(?:\*/|$)' // Multi-line comment
656+
. '|.' // Other characters
657+
. '}s';
658+
\preg_match_all($pattern, $str, $m);
647659
foreach ($m[0] as $token) {
648660
switch (isset($map[$token[0]]) ? $map[$token[0]] : -1) {
649661
case 1:

0 commit comments

Comments
 (0)