---- Module Tester ----
EXTENDS Whatever
CONSTANTS Things
VARIABLES A, B
INSTANCE Core WITH VarA <- A, VarB <- B
(*--algorithm maketest
\* Reference to A or B in here result in a PCal Translator Error:
\* "Assignment to undeclared variable <variablename>"
end algorithm; *)
\* BEGIN TRANSLATION
====
--
You received this message because you are subscribed to the Google Groups "tlaplus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tlaplus+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/2523b313-25da-417d-90b8-6dbac319798d%40googlegroups.com.
You can move the INSTANCE to a define block:
variables
A = 1;
VarB = 2;
define
Foo == INSTANCE Core WITH VarA <- A
end define;
I defined VarB implicitly due to what might be a bug in
the PlusCal translator, where it does not recognize INSTANCE
Core WITH VarA <- A, VarB <- B as valid. I think it's
the comma being a problem.
---- Module Tester ----
EXTENDS Whatever
CONSTANTS Things
(*--algorithm maketest
variables A = {}, B = {}; \* A and B implicitly substitute same-named variables from Core module.
define TestCore == INSTANCE Core \* Instantiate Core within PlusCal context.
end define;
\* A and B can now be used in rest of PlusCal algorithm.\* Other operators from Core can be used with TestCore!OperatorName .
end algorithm; *)
\* BEGIN
TRANSLATION
\* ...
====