From 0d9f0072cac2419b2308e9ba6dc37213f75243c9 Mon Sep 17 00:00:00 2001 From: Daniel Tes Date: Tue, 5 Sep 2023 14:37:31 -0300 Subject: [PATCH] fix: iOS 17 negative lookahead regex bug --- .../Sources/ContextExpression/Expression/Parser.swift | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Sources/Beagle/Sources/ContextExpression/Expression/Parser.swift b/Sources/Beagle/Sources/ContextExpression/Expression/Parser.swift index 4414c67..beac942 100644 --- a/Sources/Beagle/Sources/ContextExpression/Expression/Parser.swift +++ b/Sources/Beagle/Sources/ContextExpression/Expression/Parser.swift @@ -96,7 +96,16 @@ let pathIndexNode: Parser = zip( .index(int) } -let pathKeyNode: Parser = prefix(with: #"^\w+\b(?!\()"#).map { .key($0) } +//let pathKeyNode: Parser = prefix(with: #"^\w+\b(?!\()"#).map { .key($0) } +let pathKeyNode = Parser { str in + guard let keyNode = prefix(with: #"^\w+"#).run(&str) else { return nil } + if str.first == "(" { + str = keyNode[...] + str + return nil + } else { + return .key(keyNode) + } +} let pathHeadNodes: Parser<[Path.Node]> = zip( zeroOrOne(pathKeyNode),