我在PlusCal中的基本代码如下。
---- MODULE flags ----
EXTENDS TLC, Integers
(* --algorithm flags
define
IsFive(z) == z = 5
end define
begin
IsFive(5)
end algorithm; *)
====
在工具箱中突出显示了行IsFive(5)
,当我尝试运行模型时,我收到一个错误,指出未定义宏IsFive。
类似地,https://learntla.com/tla/operators/说运算符是函数,然后在下一章中定义函数。
说我需要检查验证参数是否为5的功能。我应该使用什么,运算符或函数?
答案 0 :(得分:0)
PlusCal转换程序希望begin
和end algorithm
之间的文本包含变量值的赋值(例如x := 3
)或PlusCal宏的调用(赋值macro
键盘来定义。
在您的示例代码中,PlusCal转换器没有看到赋值语句,因此它假定IsFive是宏,然后进行抱怨。
如果您定义变量并使用运算符来计算算法中变量的值,则工具箱将能够解析您的代码。
---- MODULE flags ----
EXTENDS TLC, Integers
(* --algorithm flags
variable x;
define
IsFive(z) == z = 5
end define
begin
x := IsFive(5)
end algorithm; *)
====