returnP
:: a -> [(((Int,Int),(Int,Int)),Token)] -> (a,[(((Int,Int),(Int,Int)),Token)])
|
(>+=)
:: ([(((Int,Int),(Int,Int)),Token)] -> (a,[(((Int,Int),(Int,Int)),Token)])) -> (a -> [(((Int,Int),(Int,Int)),Token)] -> (b,[(((Int,Int),(Int,Int)),Token)])) -> [(((Int,Int),(Int,Int)),Token)] -> (b,[(((Int,Int),(Int,Int)),Token)])
|
(>+)
:: ([(((Int,Int),(Int,Int)),Token)] -> (a,[(((Int,Int),(Int,Int)),Token)])) -> ([(((Int,Int),(Int,Int)),Token)] -> (b,[(((Int,Int),(Int,Int)),Token)])) -> [(((Int,Int),(Int,Int)),Token)] -> (b,[(((Int,Int),(Int,Int)),Token)])
|
(<$>)
:: (a -> b) -> ([(((Int,Int),(Int,Int)),Token)] -> (a,[(((Int,Int),(Int,Int)),Token)])) -> [(((Int,Int),(Int,Int)),Token)] -> (b,[(((Int,Int),(Int,Int)),Token)])
|
(<*>)
:: ([(((Int,Int),(Int,Int)),Token)] -> (a -> b,[(((Int,Int),(Int,Int)),Token)])) -> ([(((Int,Int),(Int,Int)),Token)] -> (a,[(((Int,Int),(Int,Int)),Token)])) -> [(((Int,Int),(Int,Int)),Token)] -> (b,[(((Int,Int),(Int,Int)),Token)])
|
mapM
:: (a -> [(((Int,Int),(Int,Int)),Token)] -> (b,[(((Int,Int),(Int,Int)),Token)])) -> [a] -> [(((Int,Int),(Int,Int)),Token)] -> ([b],[(((Int,Int),(Int,Int)),Token)])
|
readSpan
:: [(((Int,Int),(Int,Int)),Token)] -> (((Int,Int),(Int,Int)),[(((Int,Int),(Int,Int)),Token)])
|
readToken
:: [(((Int,Int),(Int,Int)),Token)] -> (Token,[(((Int,Int),(Int,Int)),Token)])
|
ensure
:: Bool -> a -> [(((Int,Int),(Int,Int)),Token)] -> (a,[(((Int,Int),(Int,Int)),Token)])
|
tokenSpan
:: Token -> [(((Int,Int),(Int,Int)),Token)] -> (((Int,Int),(Int,Int)),[(((Int,Int),(Int,Int)),Token)])
|
getTokenSpan
:: [(((Int,Int),(Int,Int)),Token)] -> ((((Int,Int),(Int,Int)),Token),[(((Int,Int),(Int,Int)),Token)])
|
tokenSpanOneOf
:: Token -> Token -> [(((Int,Int),(Int,Int)),Token)] -> (((Int,Int),(Int,Int)),[(((Int,Int),(Int,Int)),Token)])
|
sepBy
:: (a -> [(((Int,Int),(Int,Int)),Token)] -> (b,[(((Int,Int),(Int,Int)),Token)])) -> ([(((Int,Int),(Int,Int)),Token)] -> (((Int,Int),(Int,Int)),[(((Int,Int),(Int,Int)),Token)])) -> [a] -> [(((Int,Int),(Int,Int)),Token)] -> (([b],[((Int,Int),(Int,Int))]),[(((Int,Int),(Int,Int)),Token)])
|
between
:: ([(((Int,Int),(Int,Int)),Token)] -> (a,[(((Int,Int),(Int,Int)),Token)])) -> ([(((Int,Int),(Int,Int)),Token)] -> (b,[(((Int,Int),(Int,Int)),Token)])) -> ([(((Int,Int),(Int,Int)),Token)] -> (c,[(((Int,Int),(Int,Int)),Token)])) -> [(((Int,Int),(Int,Int)),Token)] -> ((a,b,c),[(((Int,Int),(Int,Int)),Token)])
|
parens
:: ([(((Int,Int),(Int,Int)),Token)] -> (a,[(((Int,Int),(Int,Int)),Token)])) -> [(((Int,Int),(Int,Int)),Token)] -> ((((Int,Int),(Int,Int)),a,((Int,Int),(Int,Int))),[(((Int,Int),(Int,Int)),Token)])
|
brackets
:: ([(((Int,Int),(Int,Int)),Token)] -> (a,[(((Int,Int),(Int,Int)),Token)])) -> [(((Int,Int),(Int,Int)),Token)] -> ((((Int,Int),(Int,Int)),a,((Int,Int),(Int,Int))),[(((Int,Int),(Int,Int)),Token)])
|
braces
:: ([(((Int,Int),(Int,Int)),Token)] -> (a,[(((Int,Int),(Int,Int)),Token)])) -> [(((Int,Int),(Int,Int)),Token)] -> ((((Int,Int),(Int,Int)),a,((Int,Int),(Int,Int))),[(((Int,Int),(Int,Int)),Token)])
|
optional
:: (a -> [(((Int,Int),(Int,Int)),Token)] -> (b,[(((Int,Int),(Int,Int)),Token)])) -> Maybe a -> [(((Int,Int),(Int,Int)),Token)] -> (Maybe b,[(((Int,Int),(Int,Int)),Token)])
|
maybeOneOf
:: Token -> Token -> [(((Int,Int),(Int,Int)),Token)] -> (Maybe ((Int,Int),(Int,Int)),[(((Int,Int),(Int,Int)),Token)])
|
maybeTokenSpan
:: Token -> [(((Int,Int),(Int,Int)),Token)] -> (Maybe ((Int,Int),(Int,Int)),[(((Int,Int),(Int,Int)),Token)])
|
maybeEnclosedBy
:: [(Token,Token)] -> ([(((Int,Int),(Int,Int)),Token)] -> (a,[(((Int,Int),(Int,Int)),Token)])) -> [(((Int,Int),(Int,Int)),Token)] -> ((Maybe ((Int,Int),(Int,Int)),a,Maybe ((Int,Int),(Int,Int))),[(((Int,Int),(Int,Int)),Token)])
|
maybeParens
:: ([(((Int,Int),(Int,Int)),Token)] -> (a,[(((Int,Int),(Int,Int)),Token)])) -> [(((Int,Int),(Int,Int)),Token)] -> ((Maybe ((Int,Int),(Int,Int)),a,Maybe ((Int,Int),(Int,Int))),[(((Int,Int),(Int,Int)),Token)])
|
Type synonym: SpanTokens = [(Span,Token)]
Type synonym: ASM a = SpanTokens -> (a,SpanTokens)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|