2013-04-25 31 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