@@ -29,13 +29,13 @@ instance stringLikeString :: StringLike String where
29
29
null = S .null
30
30
31
31
-- | Match end-of-file.
32
- eof :: forall s m . ( StringLike s , Monad m ) => ParserT s m Unit
32
+ eof :: forall s m . StringLike s => Monad m => ParserT s m Unit
33
33
eof = do
34
34
input <- gets \(ParseState input _ _) -> input
35
35
unless (null input) (fail " Expected EOF" )
36
36
37
37
-- | Match the specified string.
38
- string :: forall s m . ( StringLike s , Monad m ) => String -> ParserT s m String
38
+ string :: forall s m . StringLike s => Monad m => String -> ParserT s m String
39
39
string str = do
40
40
input <- gets \(ParseState input _ _) -> input
41
41
case indexOf (wrap str) input of
@@ -48,7 +48,7 @@ string str = do
48
48
_ -> fail (" Expected " <> show str)
49
49
50
50
-- | Match any character.
51
- anyChar :: forall s m . ( StringLike s , Monad m ) => ParserT s m Char
51
+ anyChar :: forall s m . StringLike s => Monad m => ParserT s m Char
52
52
anyChar = do
53
53
input <- gets \(ParseState input _ _) -> input
54
54
case uncons input of
@@ -61,30 +61,30 @@ anyChar = do
61
61
pure head
62
62
63
63
-- | Match a character satisfying the specified predicate.
64
- satisfy :: forall s m . ( StringLike s , Monad m ) => (Char -> Boolean ) -> ParserT s m Char
64
+ satisfy :: forall s m . StringLike s => Monad m => (Char -> Boolean ) -> ParserT s m Char
65
65
satisfy f = try do
66
66
c <- anyChar
67
67
if f c then pure c
68
68
else fail $ " Character '" <> singleton c <> " ' did not satisfy predicate"
69
69
70
70
-- | Match the specified character
71
- char :: forall s m . ( StringLike s , Monad m ) => Char -> ParserT s m Char
71
+ char :: forall s m . StringLike s => Monad m => Char -> ParserT s m Char
72
72
char c = satisfy (_ == c) <?> (" Expected " <> show c)
73
73
74
74
-- | Match a whitespace character.
75
- whiteSpace :: forall s m . ( StringLike s , Monad m ) => ParserT s m String
75
+ whiteSpace :: forall s m . StringLike s => Monad m => ParserT s m String
76
76
whiteSpace = do
77
77
cs <- many $ satisfy \c -> c == ' \n ' || c == ' \r ' || c == ' ' || c == ' \t '
78
78
pure $ fromCharArray cs
79
79
80
80
-- | Skip whitespace characters.
81
- skipSpaces :: forall s m . ( StringLike s , Monad m ) => ParserT s m Unit
81
+ skipSpaces :: forall s m . StringLike s => Monad m => ParserT s m Unit
82
82
skipSpaces = void whiteSpace
83
83
84
84
-- | Match one of the characters in the array.
85
- oneOf :: forall s m . ( StringLike s , Monad m ) => Array Char -> ParserT s m Char
85
+ oneOf :: forall s m . StringLike s => Monad m => Array Char -> ParserT s m Char
86
86
oneOf ss = satisfy (flip elem ss) <?> (" Expected one of " <> show ss)
87
87
88
88
-- | Match any character not in the array.
89
- noneOf :: forall s m . ( StringLike s , Monad m ) => Array Char -> ParserT s m Char
89
+ noneOf :: forall s m . StringLike s => Monad m => Array Char -> ParserT s m Char
90
90
noneOf ss = satisfy (flip notElem ss) <?> (" Expected none of " <> show ss)
0 commit comments