@@ -81,64 +81,84 @@ import qualified Streamly.Internal.Data.Parser as Parser
81#define CHAR_PARSER_SIG(NAME) NAME :: MonadCatch m => Parser m Char Char
81#define CHAR_PARSER_SIG(NAME) NAME :: MonadCatch m => Parser m Char Char
82-- XXX Need to use the predicates from Unicode.Char module/unicode-data package
82-- XXX Need to use the predicates from Unicode.Char module/unicode-data package
83#define CHAR_PARSER(NAME, PREDICATE) NAME = Parser.satisfy Char.PREDICATE
83#define CHAR_PARSER(NAME, PREDICATE) NAME = Parser.satisfy Char.PREDICATE
84+#define CHAR_PARSER_DOC(PREDICATE) -- | Match any character that satisfies 'Char.PREDICATE'
85-- XXX Add haddock documentation
86-- XXX Add haddock documentation
86-- XXX Add INLINE pragmas
87-- XXX Add INLINE pragmas
89+CHAR_PARSER_DOC(isSpace)
88CHAR_PARSER_SIG(space)
90CHAR_PARSER_SIG(space)
89CHAR_PARSER(space,isSpace)
91CHAR_PARSER(space,isSpace)
93+CHAR_PARSER_DOC(isLower)
91CHAR_PARSER_SIG(lower)
94CHAR_PARSER_SIG(lower)
92CHAR_PARSER(lower,isLower)
95CHAR_PARSER(lower,isLower)
97+CHAR_PARSER_DOC(isUpper)
94CHAR_PARSER_SIG(upper)
98CHAR_PARSER_SIG(upper)
95CHAR_PARSER(upper,isUpper)
99CHAR_PARSER(upper,isUpper)
101+CHAR_PARSER_DOC(isAlpha)
97CHAR_PARSER_SIG(alpha)
102CHAR_PARSER_SIG(alpha)
98CHAR_PARSER(alpha,isAlpha)
103CHAR_PARSER(alpha,isAlpha)
105+CHAR_PARSER_DOC(isAlphaNum)
100CHAR_PARSER_SIG(alphaNum)
106CHAR_PARSER_SIG(alphaNum)
101CHAR_PARSER(alphaNum,isAlphaNum)
107CHAR_PARSER(alphaNum,isAlphaNum)
109+CHAR_PARSER_DOC(isPrint)
103CHAR_PARSER_SIG(printable)
110CHAR_PARSER_SIG(printable)
104CHAR_PARSER(printable,isPrint)
111CHAR_PARSER(printable,isPrint)
113+CHAR_PARSER_DOC(isDigit)
106CHAR_PARSER_SIG(digit)
114CHAR_PARSER_SIG(digit)
107CHAR_PARSER(digit,isDigit)
115CHAR_PARSER(digit,isDigit)
117+CHAR_PARSER_DOC(isOctDigit)
109CHAR_PARSER_SIG(octDigit)
118CHAR_PARSER_SIG(octDigit)
110CHAR_PARSER(octDigit,isOctDigit)
119CHAR_PARSER(octDigit,isOctDigit)
121+CHAR_PARSER_DOC(isHexDigit)
112CHAR_PARSER_SIG(hexDigit)
122CHAR_PARSER_SIG(hexDigit)
113CHAR_PARSER(hexDigit,isHexDigit)
123CHAR_PARSER(hexDigit,isHexDigit)
125+CHAR_PARSER_DOC(isLetter)
115CHAR_PARSER_SIG(letter)
126CHAR_PARSER_SIG(letter)
116CHAR_PARSER(letter,isLetter)
127CHAR_PARSER(letter,isLetter)
129+CHAR_PARSER_DOC(isMark)
118CHAR_PARSER_SIG(mark)
130CHAR_PARSER_SIG(mark)
119CHAR_PARSER(mark,isMark)
131CHAR_PARSER(mark,isMark)
133+CHAR_PARSER_DOC(isNumber)
121CHAR_PARSER_SIG(numeric)
134CHAR_PARSER_SIG(numeric)
122CHAR_PARSER(numeric,isNumber)
135CHAR_PARSER(numeric,isNumber)
137+CHAR_PARSER_DOC(isPunctuation)
124CHAR_PARSER_SIG(punctuation)
138CHAR_PARSER_SIG(punctuation)
125CHAR_PARSER(punctuation,isPunctuation)
139CHAR_PARSER(punctuation,isPunctuation)
141+CHAR_PARSER_DOC(isSymbol)
127CHAR_PARSER_SIG(symbol)
142CHAR_PARSER_SIG(symbol)
128CHAR_PARSER(symbol,isSymbol)
143CHAR_PARSER(symbol,isSymbol)
145+CHAR_PARSER_DOC(isSeparator)
130CHAR_PARSER_SIG(separator)
146CHAR_PARSER_SIG(separator)
131CHAR_PARSER(separator,isSeparator)
147CHAR_PARSER(separator,isSeparator)
149+CHAR_PARSER_DOC(isAscii)
133CHAR_PARSER_SIG(ascii)
150CHAR_PARSER_SIG(ascii)
134CHAR_PARSER(ascii,isAscii)
151CHAR_PARSER(ascii,isAscii)
153+CHAR_PARSER_DOC(isLatin1)
136CHAR_PARSER_SIG(latin1)
154CHAR_PARSER_SIG(latin1)
137CHAR_PARSER(latin1,isLatin1)
155CHAR_PARSER(latin1,isLatin1)
157+CHAR_PARSER_DOC(isAsciiUpper)
139CHAR_PARSER_SIG(asciiUpper)
158CHAR_PARSER_SIG(asciiUpper)
140CHAR_PARSER(asciiUpper,isAsciiUpper)
159CHAR_PARSER(asciiUpper,isAsciiUpper)
161+CHAR_PARSER_DOC(isAsciiLower)
142CHAR_PARSER_SIG(asciiLower)
162CHAR_PARSER_SIG(asciiLower)
143CHAR_PARSER(asciiLower,isAsciiLower)
163CHAR_PARSER(asciiLower,isAsciiLower)