
23 Sep
2011
23 Sep
'11
11:04 p.m.
Suppose we want to parse a 24-bit hex color value: input :: ByteString input = "af093c blah blah blah" type Color = (Word8, Word8, Word8) Attoparsec.Char8 exports a nice hexadecimal parser, but it consumes all available hex-flavored input. I'd like to make it consume exactly two bytes, so I could write my color parser like this: color :: Parser Color color = do r <- hex2 g <- hex2 b <- hex2 return $ Color (r, g, b) hex2 :: Parser Word8 hex2 = ??? So my question is "how do I write hex2?" I could easily rewrite hexadecimal, but it would be nicer to reuse its hex-handling logic. Best, Mike S Craig (908) 328 8030