CPN工具-使用异常中止的分析引发异常编译

时间:2018-12-07 18:04:50

标签: ml petri-net cpn-tools

我正在为模型生成消息序列图(MSC)。在转换过程中,我有以下代码可以正常工作:

input (p_id, p_cert, v_id, v_cert);
action
MSC.addEvent(msc, p, i, func_to_concat(p_id, p_cert));
if v_cred(p_id, p_cert, v_id, v_cert) then
   MSC.addEvent(msc, i, p, "Some message here.")
else
   MSC.addEvent(msc, i, p, "Some other message.")

我测试了这段代码,它运行良好。然后,我决定将其放入一个函数,该函数的代码如下:

fun a(msc, e, i, id, cert, v_id, v_cert) =
    MSC.addEvent(msc, i, e, func_to_concat(id, cert));
    if v_cred(id, cert, v_id, v_cert) then
       MSC.addEvent(msc, i, e, "Some message here.")
    else
       MSC.addEvent(msc, i, e, "Some other message.")

但是我收到此错误消息:

  

错误:错误:异常中止分析会引发异常编译

有人可以提出解决该问题的建议吗?

1 个答案:

答案 0 :(得分:0)

问题解决了。为了用ML语言指定命令块,我们必须将代码放在括号内:

fun a(msc, e, i, id, cert, v_id, v_cert) = (
    MSC.addEvent(msc, e, i, func_to_concat(id, cert));
    if v_cred(id, cert, v_id, v_cert) then
       MSC.addEvent(msc, i, e, "Some message here.")
    else
       MSC.addEvent(msc, i, e, "Some other message.")
)