2013-04-25 63 views
4

我正在使用GHC在Windows上编译。这里是我的参考代码http://hpaste.org/86539Haskell parsec运算符试试问题

问题是下面的表达式不解析: 3+2 < 1+-4 <= -3 << 1

enter image description here

。但是,我得到意想不到的-当它显然是最高的运营商:因为它应该解析。我怀疑这是因为我在第55行使用try,但是没有它<<<,而重复一个符号的运算符不能正确解析。

我在寻求建议或提示。

回答

6

的问题是在第56行:

P.lexeme <$ string s 

应改为:

P.lexeme gmlLexer $ string s 

前者构建匹配s,然后返回功能P.lexeme作为解析的结果!随后的>>将结果扔掉,因此它检查了类型。

你想要做的是后面的行:将P.lexeme用于你的语言gmlLexer到解析器以匹配s

+0

我从来没有见过这个 - 谢谢你sooo。 – kvanberendonck 2013-04-25 08:17:32