Haskell 用Happy解析switch语句
所以,我试图解析包含如下switch语句的代码Haskell 用Happy解析switch语句,haskell,happy,Haskell,Happy,所以,我试图解析包含如下switch语句的代码 function (a : Boolean) equals (b : Boolean) : Boolean { switch (a) { case true: switch (b) { case true: return (true); case false:
function (a : Boolean) equals (b : Boolean) : Boolean {
switch (a) {
case true:
switch (b) {
case true:
return (true);
case false:
return (false);
}
case false:
switch (b) {
case true:
return (false);
case false:
return (true);
}
}
};
与
但我一直得到:
certa: user error (../examples/Certa/BooleanLogic.certa:16: Parse error at token 'case')
当我运行生成的解析器时。奇怪的是,它在“case”关键字的第二个实例上失败了,但在第一个实例上却没有。为什么会这样?您的非递归case语句段不应该包含分号吗 i、 e
如果您发布一个可运行的代码段(但要尽可能小),帮助会更容易。
certa: user error (../examples/Certa/BooleanLogic.certa:16: Parse error at token 'case')
caseStatements
: caseStatement ";" caseStatements {
($1 : $3)
}
| caseStatement ";" {
[$1]
}
;