Help needed with Data.Version

Hi All, I have found a bug in Data.Version. The expression: readP_to_S parseVersion "1.0" produces: [(Version {versionBranch = [1], versionTags = []},".0"),(Version {versionBranch= [1,0], versionTags = []},"")] With other words the parser is ambiguous. Could someone with more experience with ReadP parser combinators fix that? Cheers, Krasimir

On Wed, Mar 23, 2005 at 02:55:47PM +0000, Krasimir Angelov wrote:
I have found a bug in Data.Version. The expression:
readP_to_S parseVersion "1.0"
produces:
[(Version {versionBranch = [1], versionTags = []},".0"),(Version {versionBranch= [1,0], versionTags = []},"")]
With other words the parser is ambiguous.
It's no more ambiguous than readP_to_S (many1 (satisfy isDigit)) "1234" [("1","234"),("12","34"),("123","4"),("1234","")] It just needs to be used in context.

What I need is to have simple function of type (String -> Version).
How I can do that with the current implementataion?
On Wed, 23 Mar 2005 15:16:09 +0000, Ross Paterson
On Wed, Mar 23, 2005 at 02:55:47PM +0000, Krasimir Angelov wrote:
I have found a bug in Data.Version. The expression:
readP_to_S parseVersion "1.0"
produces:
[(Version {versionBranch = [1], versionTags = []},".0"),(Version {versionBranch= [1,0], versionTags = []},"")]
With other words the parser is ambiguous.
It's no more ambiguous than
readP_to_S (many1 (satisfy isDigit)) "1234" [("1","234"),("12","34"),("123","4"),("1234","")]
It just needs to be used in context.
participants (2)
-
Krasimir Angelov
-
Ross Paterson