summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-04-22 19:50:47 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2025-04-24 22:23:50 +0200
commit4ff632e50313b7d2bf03a35d78ede5d8c6b8331e (patch)
tree1cf99fca069ebbdf3cc6a78921c6bd2d65092bf3
parent47ec9619f90af3264b11ad26654610a043ed0d8d (diff)
Fix parsing regexes containing only a variable expansion
-rw-r--r--src/Parser/Expr.hs4
-rw-r--r--src/Script/Expr.hs3
2 files changed, 3 insertions, 4 deletions
diff --git a/src/Parser/Expr.hs b/src/Parser/Expr.hs
index bf94c2d..3700602 100644
--- a/src/Parser/Expr.hs
+++ b/src/Parser/Expr.hs
@@ -37,8 +37,6 @@ import Text.Megaparsec hiding (State)
import Text.Megaparsec.Char
import Text.Megaparsec.Char.Lexer qualified as L
import Text.Megaparsec.Error.Builder qualified as Err
-import Text.Regex.TDFA qualified as RE
-import Text.Regex.TDFA.Text qualified as RE
import Parser.Core
import Script.Expr
@@ -161,7 +159,7 @@ regex = label "regular expression" $ lexeme $ do
let testEval = \case
Pure (RegexPart p) -> p
_ -> ""
- case RE.compile RE.defaultCompOpt RE.defaultExecOpt $ T.concat $ map testEval parts of
+ case regexCompile $ T.concat $ map testEval parts of
Left err -> registerParseError $ FancyError off $ S.singleton $ ErrorFail $ T.unpack $ T.concat
[ "failed to parse regular expression: ", T.pack err ]
Right _ -> return ()
diff --git a/src/Script/Expr.hs b/src/Script/Expr.hs
index 0c401e2..ced807c 100644
--- a/src/Script/Expr.hs
+++ b/src/Script/Expr.hs
@@ -23,7 +23,8 @@ module Script.Expr (
module Script.Var,
- Regex(RegexPart, RegexString), regexMatch,
+ Regex(RegexPart, RegexString),
+ regexCompile, regexMatch,
) where
import Control.Monad