Haskell parsec运算符尝试问题

时间:2013-04-25 05:43:48

标签: haskell parsec

我正在使用GHC在Windows上编译。这是我的参考代码http://hpaste.org/86539

问题是以下表达式无法解析: 3+2 < 1+-4 <= -3 << 1。它应解析为:

enter image description here

..然而,当它显然是最高的运算符时,我会得到意外的-。我怀疑这是因为我在第55行使用了try,但没有<<<,并且重复一个符号的运算符无法正确解析。

我正在寻求建议或提示。

1 个答案:

答案 0 :(得分:6)

问题出在第56行:

P.lexeme <$ string s

应阅读:

P.lexeme gmlLexer $ string s

前一个构造匹配s,然后返回函数P.lexeme作为解析的结果!随后的>>将结果抛弃,因此选中了类型。

您要做的是后一行:将语言P.lexeme的{​​{1}}应用于解析器以匹配gmlLexer