algo.ShuntingYard.tokenize(): Allow mixed quotes

"A string which contains 'single quotes'" or 'a string containing
"double quotes"' is not tokenized as quoted. Fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2025-07-04 08:59:58 +02:00
commit 49e9b5ab5d

View file

@ -88,7 +88,7 @@ class ShuntingYard(object): # export
scanner = re.Scanner([ scanner = re.Scanner([
(regex, lambda scanner,token:(KEYW, token)), (regex, lambda scanner,token:(KEYW, token)),
(r"('|\")[^'\"]*('|\")", lambda scanner,token:(QUOTED, token[1:-1])), (r"\"[^\"]*\"|'[^']*'", lambda scanner,token:(QUOTED, token[1:-1])),
(r"[^\s()]+", lambda scanner,token:(ARG, token)), (r"[^\s()]+", lambda scanner,token:(ARG, token)),
(r"\s+", None), # None == skip token. (r"\s+", None), # None == skip token.
]) ])