I'm trying to write a simple parser in Haskell using Parsec but my input "Hello World" is never correctly parsed.
My code looks like this:
parser = p1 <|> p2
p1 = string "Hello"
p2 = string "Hello World"
If I run it I get the error unexpected whitespace
p1 already consumes the tokens "Hello" and therefore p2 instantly fails because the next token is whitespace.
You could use something like try to reset the consumed tokens.
parser = try p1 <|> p2
p1 = string "Hello"
p2 = string "Hello World"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With