2
我現在使用的是Parsec和示例版本的boolExpr http://hpaste.org/86299。我正在通過GHC在Windows上編譯。Haskell parsec match if(3)as if(3> 0)
上面的代碼將匹配一個布爾表達式像3 < 4
或a not 3
但是它不會匹配像3
,true
或(((3 < 1)))
的表達式。任何人都可以給我建議如何匹配3
和(((3 < 1)))
等3 > 0
和(((3 < 1))) > 0
相同的表達式,其中> 0是假定/自動添加在RHS-less表達式上嗎?
澄清:你想把字符串'「3」'解析成與'「3> 0」'相同的結構? – 2013-04-22 06:51:35
ie:'3> 0'導致表達式驗證if(expr)expr;然而'(3> 0)'導致(expr),因此,如果沒有RHS,我必須能夠解析括號內的任何單個項大於0。 (((3))) - >(((3> 0)> 0)> 0)> 0,除非你知道一個更好的方法來做這個表達式,例如'while(1)','while 1))'和'while((x> 2))'是有效的。 – kvanberendonck 2013-04-22 06:54:44