Ok, I managed it by using a
modified sepBy / sepBy1:
" ... xs <- many (sep
>> p)
... " changed to " ... xs <- many (try
(sep >>
p)) ..."
Regards,
Tobias
On 10/12/2012 07:20 PM, Tobias
wrote:
Hello,
I would like to parse the input "word1 word2 word3 ." into
["word1","word2","word3"] using Parsec.
My code below fails with:
> unexpected "."
> expecting letter or digit
I guess the problem is that the blank before
the dot is considered as belonging to the "sepBy word blank"
parsing and therefore a next word is expected, and it is
missing.
I would like the "sepBy word blank" parsing to stop after "word3".
How can I do this?
sentence :: Parser [String]
sentence = do words <- word `sepBy` blank
blank
oneOf ".?!"
return words
word :: Parser String
word = many1 (letter <|> digit)
blank :: Parser String
blank = string " "
Regards,
Tobias
_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners