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