Mil*_*lzo 4 parsing haskell parsec
我正在尝试使用 Parsec 在 Haskell 中编写一个简单的解析器,但我的输入“Hello World”从未被正确解析。
我的代码如下所示:
parser = p1 <|> p2
p1 = string "Hello"
p2 = string "Hello World"
Run Code Online (Sandbox Code Playgroud)
如果我运行它,我会收到错误unexpected whitespace
p1已经消耗了令牌“Hello”,因此p2立即失败,因为下一个令牌是空格。
您可以使用类似的方法try来重置消耗的令牌。
parser = try p1 <|> p2
p1 = string "Hello"
p2 = string "Hello World"
Run Code Online (Sandbox Code Playgroud)