Fixing argument skipped & removing positional arguments before options

This commit is contained in:
Zoe Roux
2021-03-10 19:17:35 +01:00
parent a782b61527
commit 95dfe58d05
+2 -2
View File
@@ -22,7 +22,7 @@ getOpt p args = case runParser p args of
Nothing -> Nothing
runParser :: Parser a -> [String] -> Maybe (Parser a, [String])
runParser p@(DefParser _) args = Just (p, args)
runParser p@(DefParser _) args = Nothing
runParser (OptParser _ _) [] = Nothing
runParser (OptParser _ _) [_] = Nothing -- TODO remove this and support default values
runParser (OptParser opt next) (identifier:arg:args)
@@ -30,5 +30,5 @@ runParser (OptParser opt next) (identifier:arg:args)
ret <- parser opt arg
return (fmap ret next, args)
| otherwise = do
(nextP, newArgs) <- runParser next (identifier:args)
(nextP, newArgs) <- runParser next (identifier:arg:args)
return (OptParser opt nextP, newArgs)