Rascal 中的 Switch 语句未作为案例或默认值执行
Switch statement in Rascal not executing as cases or default
这是对我在此处发布的问题的扩展
我对 switch 语句查找模式的方式做了一些修改,但似乎有 none 个模式匹配,而默认模式没有执行!
代码:
private str synthesise_f(Core::AST::Exp exp) {
println("START");
switch (exp) {
case Exp e: str t(&T t0, &T t1) {
println("IN CASE");
}
default: println("!DEFAULT!");
}
println("END");
return ret;
}
输出为:
START
END
知道这里会发生什么吗?我做错了什么吗?
谢谢!
Rascal 代码看起来不错,所以我猜你的修改(在解释器的代码中?)干扰了所述解释器中的隐藏假设或优化。最好 post 在 github 上提出拉取请求,以便我们讨论一下?很可能是内部异常导致解释器跳过默认情况。
这是对我在此处发布的问题的扩展
我对 switch 语句查找模式的方式做了一些修改,但似乎有 none 个模式匹配,而默认模式没有执行!
代码:
private str synthesise_f(Core::AST::Exp exp) {
println("START");
switch (exp) {
case Exp e: str t(&T t0, &T t1) {
println("IN CASE");
}
default: println("!DEFAULT!");
}
println("END");
return ret;
}
输出为:
START
END
知道这里会发生什么吗?我做错了什么吗?
谢谢!
Rascal 代码看起来不错,所以我猜你的修改(在解释器的代码中?)干扰了所述解释器中的隐藏假设或优化。最好 post 在 github 上提出拉取请求,以便我们讨论一下?很可能是内部异常导致解释器跳过默认情况。