我正在使用GHC在Windows上编译。这是我的参考代码http://hpaste.org/86539
问题是以下表达式无法解析:
3+2 < 1+-4 <= -3 << 1
。它应解析为:
..然而,当它显然是最高的运算符时,我会得到意外的-
。我怀疑这是因为我在第55行使用了try
,但没有<
和<<
,并且重复一个符号的运算符无法正确解析。
我正在寻求建议或提示。
答案 0 :(得分:6)
问题出在第56行:
P.lexeme <$ string s
应阅读:
P.lexeme gmlLexer $ string s
前一个构造匹配s
,然后返回函数P.lexeme
作为解析的结果!随后的>>
将结果抛弃,因此选中了类型。
您要做的是后一行:将语言P.lexeme
的{{1}}应用于解析器以匹配gmlLexer
。