The error message can be improved in your examples by using "count 5" instead of "many1".

C.

Am 08.08.2012 21:24, schrieb silly8888:
I am trying to create a parsec parser that parses an integer and then
checks if that integer has the right size. If not, it generates an
error.
I tried the following:

8<---------------------------------------------------------------
import Text.Parsec
import Text.Parsec.String

integer :: Parser Int
integer  = do s <- many1 digit
               let n = read s
               if n > 65535 then
                   parserFail "integer overflow"
               else
                   return n
8<---------------------------------------------------------------

The problem is that when I try this

parse integer "" "70000"

I get the following error:

Left (line 1, column 6):
unexpected end of input
expecting digit
integer overflow

ie there are three error messages but I only want the last one. Is
there something I can do about this?


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to