{-# OPTIONS_HADDOCK show-extensions #-}
{-# LANGUAGE StrictData, Strict #-}
module CLI.Arguments.Parsing.Strict where
import Data.Monoid (mappend)
import Data.Maybe (fromJust)
import GHC.Arr
import Data.List (sortBy)
import qualified Data.Foldable as F
import CLI.Arguments.Strict
args2ArgsR
:: CLSpecifications
-> (Args,[String])
-> (Args,[String])
args2ArgsR :: CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsR ((t :: Specification
t@(String
xs,GQtyArgs
n)):CLSpecifications
ms) q :: (Args, [String])
q@(Args
ls,xss :: [String]
xss@(String
js:[String]
jss))
| GQtyArgs
n GQtyArgs -> GQtyArgs -> Bool
forall a. Ord a => a -> a -> Bool
< GQtyArgs
0 = case [String]
w0ss of
[] -> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsR CLSpecifications
ms (Args, [String])
q
[String]
w00ss -> case [String]
qss of
[] -> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsR CLSpecifications
ms (Args, [String])
q
[String]
q0ss -> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsR CLSpecifications
ms (String -> [String] -> Arguments
C String
xs [String]
q0ssArguments -> Args -> Args
forall a. a -> [a] -> [a]
:Args
ls,[String]
kss [String] -> [String] -> [String]
forall a. Monoid a => a -> a -> a
`mappend` [String]
rss)
| GQtyArgs
n GQtyArgs -> GQtyArgs -> Bool
forall a. Eq a => a -> a -> Bool
== GQtyArgs
0 = case [String]
w0ss of
[] -> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsR CLSpecifications
ms (Args, [String])
q
[String]
w00ss -> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsR CLSpecifications
ms (String -> Arguments
A String
xsArguments -> Args -> Args
forall a. a -> [a] -> [a]
:Args
ls,[String]
kss [String] -> [String] -> [String]
forall a. Monoid a => a -> a -> a
`mappend` [String]
wss)
| Bool
otherwise = case [String]
w0ss of
[] -> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsR CLSpecifications
ms (Args, [String])
q
[String]
w00ss -> if [String] -> GQtyArgs
forall (t :: * -> *) a. Foldable t => t a -> GQtyArgs
length [String]
vss GQtyArgs -> GQtyArgs -> Bool
forall a. Eq a => a -> a -> Bool
== GQtyArgs
n then CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsR CLSpecifications
ms (GQtyArgs -> String -> [String] -> Arguments
B GQtyArgs
n String
xs [String]
vssArguments -> Args -> Args
forall a. a -> [a] -> [a]
:Args
ls,[String]
kss [String] -> [String] -> [String]
forall a. Monoid a => a -> a -> a
`mappend` [String]
zss)
else CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsR CLSpecifications
ms (Args, [String])
q
where ([String]
kss,[String]
uss) = (String -> Bool) -> [String] -> ([String], [String])
forall a. (a -> Bool) -> [a] -> ([a], [a])
break (String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
xs) [String]
xss
([String]
w0ss,[String]
wss) = GQtyArgs -> [String] -> ([String], [String])
forall a. GQtyArgs -> [a] -> ([a], [a])
splitAt GQtyArgs
1 [String]
uss
([String]
qss,[String]
pss) = (String -> Bool) -> [String] -> ([String], [String])
forall a. (a -> Bool) -> [a] -> ([a], [a])
break (String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
xs) [String]
wss
([String]
r0ss,[String]
rss) = GQtyArgs -> [String] -> ([String], [String])
forall a. GQtyArgs -> [a] -> ([a], [a])
splitAt GQtyArgs
1 [String]
pss
([String]
vss,[String]
zss) = GQtyArgs -> [String] -> ([String], [String])
forall a. GQtyArgs -> [a] -> ([a], [a])
splitAt GQtyArgs
n [String]
wss
args2ArgsR CLSpecifications
_ (Args, [String])
q = (Args, [String])
q
args2ArgsR0
:: CLSpecifications
-> [String]
-> (Args,[String])
args2ArgsR0 :: CLSpecifications -> [String] -> (Args, [String])
args2ArgsR0 CLSpecifications
xs [String]
yss = CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsR CLSpecifications
xs ([],[String]
yss)
{-# INLINABLE args2ArgsR0 #-}
args2Args3'R
:: CLSpecifications
-> (Args,Args,Args,[String])
-> (Args,Args,Args,[String])
args2Args3'R :: CLSpecifications
-> (Args, Args, Args, [String]) -> (Args, Args, Args, [String])
args2Args3'R (t :: Specification
t@(String
xs,GQtyArgs
n):CLSpecifications
ts) q :: (Args, Args, Args, [String])
q@(Args
w1,Args
w2,Args
w3,xss :: [String]
xss@(String
js:[String]
jss))
| GQtyArgs
n GQtyArgs -> GQtyArgs -> Bool
forall a. Ord a => a -> a -> Bool
< GQtyArgs
0 = case [String]
w0ss of
[] -> CLSpecifications
-> (Args, Args, Args, [String]) -> (Args, Args, Args, [String])
args2Args3'R CLSpecifications
ts (Args, Args, Args, [String])
q
[String]
w00ss -> case [String]
qss of
[] -> CLSpecifications
-> (Args, Args, Args, [String]) -> (Args, Args, Args, [String])
args2Args3'R CLSpecifications
ts (Args, Args, Args, [String])
q
[String]
q0ss -> CLSpecifications
-> (Args, Args, Args, [String]) -> (Args, Args, Args, [String])
args2Args3'R CLSpecifications
ts (Args
w1,Args
w2,String -> [String] -> Arguments
C String
xs [String]
q0ssArguments -> Args -> Args
forall a. a -> [a] -> [a]
:Args
w3,[String]
kss [String] -> [String] -> [String]
forall a. Monoid a => a -> a -> a
`mappend` [String]
rss)
| GQtyArgs
n GQtyArgs -> GQtyArgs -> Bool
forall a. Eq a => a -> a -> Bool
== GQtyArgs
0 = case [String]
w0ss of
[] -> CLSpecifications
-> (Args, Args, Args, [String]) -> (Args, Args, Args, [String])
args2Args3'R CLSpecifications
ts (Args, Args, Args, [String])
q
[String]
w00ss -> CLSpecifications
-> (Args, Args, Args, [String]) -> (Args, Args, Args, [String])
args2Args3'R CLSpecifications
ts (String -> Arguments
A String
xsArguments -> Args -> Args
forall a. a -> [a] -> [a]
:Args
w1,Args
w2,Args
w3,[String]
kss [String] -> [String] -> [String]
forall a. Monoid a => a -> a -> a
`mappend` [String]
wss)
| Bool
otherwise = case [String]
w0ss of
[] -> CLSpecifications
-> (Args, Args, Args, [String]) -> (Args, Args, Args, [String])
args2Args3'R CLSpecifications
ts (Args, Args, Args, [String])
q
[String]
w00ss -> if [String] -> GQtyArgs
forall (t :: * -> *) a. Foldable t => t a -> GQtyArgs
length [String]
vss GQtyArgs -> GQtyArgs -> Bool
forall a. Eq a => a -> a -> Bool
== GQtyArgs
n then CLSpecifications
-> (Args, Args, Args, [String]) -> (Args, Args, Args, [String])
args2Args3'R CLSpecifications
ts (Args
w1,GQtyArgs -> String -> [String] -> Arguments
B GQtyArgs
n String
xs [String]
vssArguments -> Args -> Args
forall a. a -> [a] -> [a]
:Args
w2,Args
w3,[String]
kss [String] -> [String] -> [String]
forall a. Monoid a => a -> a -> a
`mappend` [String]
zss)
else CLSpecifications
-> (Args, Args, Args, [String]) -> (Args, Args, Args, [String])
args2Args3'R CLSpecifications
ts (Args, Args, Args, [String])
q
where ([String]
kss,[String]
uss) = (String -> Bool) -> [String] -> ([String], [String])
forall a. (a -> Bool) -> [a] -> ([a], [a])
break (String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
xs) [String]
xss
([String]
w0ss,[String]
wss) = GQtyArgs -> [String] -> ([String], [String])
forall a. GQtyArgs -> [a] -> ([a], [a])
splitAt GQtyArgs
1 [String]
uss
([String]
qss,[String]
pss) = (String -> Bool) -> [String] -> ([String], [String])
forall a. (a -> Bool) -> [a] -> ([a], [a])
break (String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
xs) [String]
wss
([String]
r0ss,[String]
rss) = GQtyArgs -> [String] -> ([String], [String])
forall a. GQtyArgs -> [a] -> ([a], [a])
splitAt GQtyArgs
1 [String]
pss
([String]
vss,[String]
zss) = GQtyArgs -> [String] -> ([String], [String])
forall a. GQtyArgs -> [a] -> ([a], [a])
splitAt GQtyArgs
n [String]
wss
args2Args3'R CLSpecifications
_ (Args, Args, Args, [String])
q = (Args, Args, Args, [String])
q
args2Args3R
:: CLSpecifications
-> [String]
-> (Args,Args,Args,[String])
args2Args3R :: CLSpecifications -> [String] -> (Args, Args, Args, [String])
args2Args3R CLSpecifications
xs [String]
yss = CLSpecifications
-> (Args, Args, Args, [String]) -> (Args, Args, Args, [String])
args2Args3'R CLSpecifications
xs ([],[],[],[String]
yss)
{-# INLINABLE args2Args3R #-}
args2Args1R
:: FirstChars
-> CLSpecifications
-> (Args,[String])
-> (Args,[String])
args2Args1R :: FirstChars
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2Args1R (Char
x1,Char
x2) (t :: Specification
t@(xs :: String
xs@(Char
k:String
ks),GQtyArgs
n):CLSpecifications
ts) q :: (Args, [String])
q@(Args
ls,xss :: [String]
xss@(String
js:[String]
jss))
| GQtyArgs
n GQtyArgs -> GQtyArgs -> Bool
forall a. Ord a => a -> a -> Bool
< GQtyArgs
0 = case [String]
w0ss of
[] -> FirstChars
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2Args1R (Char
x1,Char
x2) CLSpecifications
ts (Args, [String])
q
[String]
w00ss -> case [String]
qss of
[] -> FirstChars
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2Args1R (Char
x1,Char
x2) CLSpecifications
ts (Args, [String])
q
[String]
q0ss -> FirstChars
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2Args1R (Char
x1,Char
x2) CLSpecifications
ts (String -> [String] -> Arguments
C String
xs [String]
qssArguments -> Args -> Args
forall a. a -> [a] -> [a]
:Args
ls,[String]
kss [String] -> [String] -> [String]
forall a. Monoid a => a -> a -> a
`mappend` [String]
rss)
| GQtyArgs
n GQtyArgs -> GQtyArgs -> Bool
forall a. Eq a => a -> a -> Bool
== GQtyArgs
0 = case [String]
w0ss of
[] -> FirstChars
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2Args1R (Char
x1,Char
x2) CLSpecifications
ts (Args, [String])
q
[String]
w00ss -> FirstChars
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2Args1R (Char
x1,Char
x2) CLSpecifications
ts (String -> Arguments
A String
xsArguments -> Args -> Args
forall a. a -> [a] -> [a]
:Args
ls,[String]
kss [String] -> [String] -> [String]
forall a. Monoid a => a -> a -> a
`mappend` [String]
wss)
| Bool
otherwise = case [String]
w0ss of
[] -> FirstChars
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2Args1R (Char
x1,Char
x2) CLSpecifications
ts (Args, [String])
q
[String]
w00ss -> if [String] -> GQtyArgs
forall (t :: * -> *) a. Foldable t => t a -> GQtyArgs
length [String]
vss GQtyArgs -> GQtyArgs -> Bool
forall a. Eq a => a -> a -> Bool
== GQtyArgs
n then FirstChars
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2Args1R (Char
x1,Char
x2) CLSpecifications
ts (GQtyArgs -> String -> [String] -> Arguments
B GQtyArgs
n String
xs [String]
vssArguments -> Args -> Args
forall a. a -> [a] -> [a]
:Args
ls,[String]
kss [String] -> [String] -> [String]
forall a. Monoid a => a -> a -> a
`mappend` [String]
zss)
else FirstChars
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2Args1R (Char
x1,Char
x2) CLSpecifications
ts (Args, [String])
q
where ([String]
kss,[String]
uss) = (String -> Bool) -> [String] -> ([String], [String])
forall a. (a -> Bool) -> [a] -> ([a], [a])
break (String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
xs) [String]
xss
([String]
w0ss,[String]
wss) = GQtyArgs -> [String] -> ([String], [String])
forall a. GQtyArgs -> [a] -> ([a], [a])
splitAt GQtyArgs
1 [String]
uss
([String]
qss,[String]
pss) = (String -> Bool) -> [String] -> ([String], [String])
forall a. (a -> Bool) -> [a] -> ([a], [a])
break (\String
rs -> String
rs String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
xs Bool -> Bool -> Bool
|| (Char
k Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
x1 Bool -> Bool -> Bool
&& String
rs String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== (Char
x2Char -> String -> String
forall a. a -> [a] -> [a]
:String
ks))) [String]
wss
([String]
r0ss,[String]
rss) = GQtyArgs -> [String] -> ([String], [String])
forall a. GQtyArgs -> [a] -> ([a], [a])
splitAt GQtyArgs
1 [String]
pss
([String]
vss,[String]
zss) = GQtyArgs -> [String] -> ([String], [String])
forall a. GQtyArgs -> [a] -> ([a], [a])
splitAt GQtyArgs
n [String]
wss
args2Args1R (Char
x1,Char
x2) (t :: Specification
t@([],GQtyArgs
n):CLSpecifications
ts) (Args, [String])
q = FirstChars
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2Args1R (Char
x1,Char
x2) CLSpecifications
ts (Args, [String])
q
args2Args1R FirstChars
_ CLSpecifications
_ (Args, [String])
q = (Args, [String])
q
args2Args3'1R
:: FirstChars
-> CLSpecifications
-> (Args,Args,Args,[String])
-> (Args,Args,Args,[String])
args2Args3'1R :: FirstChars
-> CLSpecifications
-> (Args, Args, Args, [String])
-> (Args, Args, Args, [String])
args2Args3'1R (Char
x1,Char
x2) (t :: Specification
t@(xs :: String
xs@(Char
k:String
ks),GQtyArgs
n):CLSpecifications
ts) q :: (Args, Args, Args, [String])
q@(Args
w1,Args
w2,Args
w3,xss :: [String]
xss@(String
js:[String]
jss))
| GQtyArgs
n GQtyArgs -> GQtyArgs -> Bool
forall a. Ord a => a -> a -> Bool
< GQtyArgs
0 = case [String]
w0ss of
[] -> FirstChars
-> CLSpecifications
-> (Args, Args, Args, [String])
-> (Args, Args, Args, [String])
args2Args3'1R (Char
x1,Char
x2) CLSpecifications
ts (Args, Args, Args, [String])
q
[String]
w00ss -> case [String]
qss of
[] -> FirstChars
-> CLSpecifications
-> (Args, Args, Args, [String])
-> (Args, Args, Args, [String])
args2Args3'1R (Char
x1,Char
x2) CLSpecifications
ts (Args, Args, Args, [String])
q
[String]
q0ss -> FirstChars
-> CLSpecifications
-> (Args, Args, Args, [String])
-> (Args, Args, Args, [String])
args2Args3'1R (Char
x1,Char
x2) CLSpecifications
ts (Args
w1,Args
w2,String -> [String] -> Arguments
C String
xs [String]
q0ssArguments -> Args -> Args
forall a. a -> [a] -> [a]
:Args
w3,[String]
kss [String] -> [String] -> [String]
forall a. Monoid a => a -> a -> a
`mappend` [String]
rss)
| GQtyArgs
n GQtyArgs -> GQtyArgs -> Bool
forall a. Eq a => a -> a -> Bool
== GQtyArgs
0 = case [String]
w0ss of
[] -> FirstChars
-> CLSpecifications
-> (Args, Args, Args, [String])
-> (Args, Args, Args, [String])
args2Args3'1R (Char
x1,Char
x2) CLSpecifications
ts (Args, Args, Args, [String])
q
[String]
w00ss -> FirstChars
-> CLSpecifications
-> (Args, Args, Args, [String])
-> (Args, Args, Args, [String])
args2Args3'1R (Char
x1,Char
x2) CLSpecifications
ts (String -> Arguments
A String
xsArguments -> Args -> Args
forall a. a -> [a] -> [a]
:Args
w1,Args
w2,Args
w3,[String]
kss [String] -> [String] -> [String]
forall a. Monoid a => a -> a -> a
`mappend` [String]
wss)
| Bool
otherwise = case [String]
w0ss of
[] -> FirstChars
-> CLSpecifications
-> (Args, Args, Args, [String])
-> (Args, Args, Args, [String])
args2Args3'1R (Char
x1,Char
x2) CLSpecifications
ts (Args, Args, Args, [String])
q
[String]
w00ss -> if [String] -> GQtyArgs
forall (t :: * -> *) a. Foldable t => t a -> GQtyArgs
length [String]
vss GQtyArgs -> GQtyArgs -> Bool
forall a. Eq a => a -> a -> Bool
== GQtyArgs
n then FirstChars
-> CLSpecifications
-> (Args, Args, Args, [String])
-> (Args, Args, Args, [String])
args2Args3'1R (Char
x1,Char
x2) CLSpecifications
ts (Args
w1,GQtyArgs -> String -> [String] -> Arguments
B GQtyArgs
n String
xs [String]
vssArguments -> Args -> Args
forall a. a -> [a] -> [a]
:Args
w2,Args
w3,[String]
kss [String] -> [String] -> [String]
forall a. Monoid a => a -> a -> a
`mappend` [String]
zss)
else FirstChars
-> CLSpecifications
-> (Args, Args, Args, [String])
-> (Args, Args, Args, [String])
args2Args3'1R (Char
x1,Char
x2) CLSpecifications
ts (Args, Args, Args, [String])
q
where ([String]
kss,[String]
uss) = (String -> Bool) -> [String] -> ([String], [String])
forall a. (a -> Bool) -> [a] -> ([a], [a])
break (String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
xs) [String]
xss
([String]
w0ss,[String]
wss) = GQtyArgs -> [String] -> ([String], [String])
forall a. GQtyArgs -> [a] -> ([a], [a])
splitAt GQtyArgs
1 [String]
uss
([String]
qss,[String]
pss) = (String -> Bool) -> [String] -> ([String], [String])
forall a. (a -> Bool) -> [a] -> ([a], [a])
break (\String
rs -> String
rs String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
xs Bool -> Bool -> Bool
|| (Char
k Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
x1 Bool -> Bool -> Bool
&& String
rs String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== (Char
x2Char -> String -> String
forall a. a -> [a] -> [a]
:String
ks))) [String]
wss
([String]
r0ss,[String]
rss) = GQtyArgs -> [String] -> ([String], [String])
forall a. GQtyArgs -> [a] -> ([a], [a])
splitAt GQtyArgs
1 [String]
pss
([String]
vss,[String]
zss) = GQtyArgs -> [String] -> ([String], [String])
forall a. GQtyArgs -> [a] -> ([a], [a])
splitAt GQtyArgs
n [String]
wss
args2Args3'1R (Char
x1,Char
x2) CLSpecifications
_ (Args, Args, Args, [String])
q = (Args, Args, Args, [String])
q
args2Args31R
:: FirstChars
-> CLSpecifications
-> [String]
-> (Args,Args,Args,[String])
args2Args31R :: FirstChars
-> CLSpecifications -> [String] -> (Args, Args, Args, [String])
args2Args31R (Char
x1,Char
x2) CLSpecifications
xs [String]
yss = FirstChars
-> CLSpecifications
-> (Args, Args, Args, [String])
-> (Args, Args, Args, [String])
args2Args3'1R (Char
x1,Char
x2) CLSpecifications
xs ([],[],[],[String]
yss)
{-# INLINABLE args2Args31R #-}
args2ArgsFilteredGR
:: (Arguments -> Bool)
-> CLSpecifications
-> (Args,[String])
-> (Args,[String])
args2ArgsFilteredGR :: (Arguments -> Bool)
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsFilteredGR Arguments -> Bool
f CLSpecifications
ts (Args, [String])
r = ((Arguments -> Bool) -> Args -> Args
forall a. (a -> Bool) -> [a] -> [a]
filter Arguments -> Bool
f (Args -> Args) -> (Args -> Args) -> Args -> Args
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Arguments -> Arguments) -> Args -> Args
forall a b. (a -> b) -> [a] -> [b]
map Arguments -> Arguments
b1Args2AArgs (Args -> Args) -> Args -> Args
forall a b. (a -> b) -> a -> b
$ Args
qs, [String]
yss)
where (Args
qs,[String]
yss) = CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsR CLSpecifications
ts (Args, [String])
r
{-# INLINABLE args2ArgsFilteredGR #-}
args2ArgsFilteredG1R
:: FirstChars
-> (Arguments -> Bool)
-> CLSpecifications
-> (Args,[String])
-> (Args,[String])
args2ArgsFilteredG1R :: FirstChars
-> (Arguments -> Bool)
-> CLSpecifications
-> (Args, [String])
-> (Args, [String])
args2ArgsFilteredG1R (Char
x1,Char
x2) Arguments -> Bool
f CLSpecifications
ts (Args, [String])
r = ((Arguments -> Bool) -> Args -> Args
forall a. (a -> Bool) -> [a] -> [a]
filter Arguments -> Bool
f (Args -> Args) -> (Args -> Args) -> Args -> Args
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Arguments -> Arguments) -> Args -> Args
forall a b. (a -> b) -> [a] -> [b]
map Arguments -> Arguments
b1Args2AArgs (Args -> Args) -> Args -> Args
forall a b. (a -> b) -> a -> b
$ Args
qs, [String]
yss)
where (Args
qs,[String]
yss) = FirstChars
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2Args1R (Char
x1,Char
x2) CLSpecifications
ts (Args, [String])
r
{-# INLINABLE args2ArgsFilteredG1R #-}
takeCsR
:: CLSpecifications
-> [String]
-> (Args,[String])
takeCsR :: CLSpecifications -> [String] -> (Args, [String])
takeCsR CLSpecifications
xs [String]
yss = (Arguments -> Bool)
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsFilteredGR (\Arguments
x -> Arguments -> Bool
notNullArguments Arguments
x Bool -> Bool -> Bool
&& Arguments -> Bool
isC Arguments
x) CLSpecifications
xs ([],[String]
yss)
{-# INLINABLE takeCsR #-}
takeCs1R
:: FirstChars
-> CLSpecifications
-> [String]
-> (Args,[String])
takeCs1R :: FirstChars -> CLSpecifications -> [String] -> (Args, [String])
takeCs1R (Char
x1,Char
x2) CLSpecifications
xs [String]
yss = FirstChars
-> (Arguments -> Bool)
-> CLSpecifications
-> (Args, [String])
-> (Args, [String])
args2ArgsFilteredG1R (Char
x1,Char
x2) (\Arguments
x -> Arguments -> Bool
notNullArguments Arguments
x Bool -> Bool -> Bool
&& Arguments -> Bool
isC Arguments
x) CLSpecifications
xs ([],[String]
yss)
{-# INLINABLE takeCs1R #-}
takeBsR
:: CLSpecifications
-> [String]
-> (Args,[String])
takeBsR :: CLSpecifications -> [String] -> (Args, [String])
takeBsR CLSpecifications
xs [String]
yss = (Arguments -> Bool)
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsFilteredGR (\Arguments
x -> Arguments -> Bool
notNullArguments Arguments
x Bool -> Bool -> Bool
&& Arguments -> Bool
isB Arguments
x) CLSpecifications
xs ([],[String]
yss)
{-# INLINABLE takeBsR #-}
takeAsR
:: CLSpecifications
-> [String]
-> (Args,[String])
takeAsR :: CLSpecifications -> [String] -> (Args, [String])
takeAsR CLSpecifications
xs [String]
yss = (Arguments -> Bool)
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsFilteredGR (\Arguments
x -> Arguments -> Bool
notNullArguments Arguments
x Bool -> Bool -> Bool
&& Arguments -> Bool
isA Arguments
x) CLSpecifications
xs ([],[String]
yss)
{-# INLINABLE takeAsR #-}