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