From 2bc126785982cc0c66672c21d8baec905d1f2b3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Thu, 15 May 2025 22:20:33 +0200 Subject: Single-quoted strings in shell --- src/Parser/Shell.hs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/Parser') diff --git a/src/Parser/Shell.hs b/src/Parser/Shell.hs index 0f34fee..a61352d 100644 --- a/src/Parser/Shell.hs +++ b/src/Parser/Shell.hs @@ -22,6 +22,7 @@ import Script.Shell parseArgument :: TestParser (Expr Text) parseArgument = lexeme $ fmap (App AnnNone (Pure T.concat) <$> foldr (liftA2 (:)) (Pure [])) $ some $ choice [ doubleQuotedString + , singleQuotedString , escapedChar , stringExpansion , unquotedString @@ -44,6 +45,10 @@ parseArgument = lexeme $ fmap (App AnnNone (Pure T.concat) <$> foldr (liftA2 (:) ] App AnnNone (Pure T.concat) . foldr (liftA2 (:)) (Pure []) <$> inner + singleQuotedString :: TestParser (Expr Text) + singleQuotedString = do + Pure . TL.toStrict <$> (char '\'' *> takeWhileP Nothing (/= '\'') <* char '\'') + escapedChar :: TestParser (Expr Text) escapedChar = do void $ char '\\' -- cgit v1.2.3