代码之家  ›  专栏  ›  技术社区  ›  Dalton Cézane

CPN工具-异常编译在中止解析的情况下引发

  •  0
  • Dalton Cézane  · 技术社区  · 7 年前

    我正在为我的模型生成一个消息序列图(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 回复  |  直到 7 年前
        1
  •  0
  •   Dalton Cézane    7 年前

    问题解决了。为了用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.")
    )