Bartosz Wójcik wrote:
Hi Everybody (especially Parsec Creator),
is there any reason why float parses only positive numbers?
I find following defition:
float = lexeme floating <?> "float"
floating = do{ n <- decimal
; fractExponent n
}
If floating was defined like
floating = do{ n <- integer ...
or
floating = do{ n <- int ...
instead then it would parse negative ones as well.
Hi Bartek,
I had the same problem. Daan Leijen gave me a similar answer than Malcom
Wallace just gave you:
"Usually the minus sign is treated as an operator in the language and treated as a
separate token"
He also gave me a workaround which finally resulted in this:
myfloat = try (do{ symbol "-"; n <- float; return (negate n) }) <|>
try float <|>
do { i<-integer; return(fromIntegral i) } -- 0 is not
recognized as a float, so recognize it as an integer and then convert it
to float
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe