CPN Tools - Исключительная компиляция поднимается с прерванным анализом - PullRequest
0 голосов
/ 07 декабря 2018

Я генерирую таблицу последовательности сообщений (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 голосов
/ 08 декабря 2018

Проблема решена.Чтобы указать командный блок на языке 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.")
)
...