-- JaMExecDefs.mesa -- Written by John Warnock, January, 1978. -- Last changed by Doug Wyatt, September 29, 1980 11:50 AM DIRECTORY JaMMasterDefs: FROM "JaMMasterDefs" USING [Object]; JaMExecDefs: DEFINITIONS = BEGIN OPEN JaMMasterDefs; JaMExec: PROGRAM; -- The following routines provide for the control of execution. It is -- assumed that the current stack is the execution stack. --"Execute" executes the undiscriminated object. Execute: PUBLIC PROCEDURE; --"If" is the implementation of the testing instruction. --Two operands are required: an Object and a Boolean. If the --Boolean is TRUE then the object is executed otherwise the --object is popped. If: PUBLIC PROCEDURE; --"IfElse" is the implementation of the two way conditional execution --instruction. Three operands are required: Object1,Object2, and a Boolean. -- If the Boolean is TRUE then Object2 is executed otherwise Object1 is --executed. IfElse: PUBLIC PROCEDURE; --"Rept" is the "loop for count" instruction. Two operands are required: -- an IntegerType and an Object. The Object is executed for the number -- of times indicated by the Integer. (0 for Negative). Rept: PUBLIC PROCEDURE; --"For" is based on the Algol "for i _ i step j until k do" instruction. -- Four operands are required: three IntegerTypes and an Object. -- The Object is executed for each iteration, with the current loop index on -- the operand stack. For: PUBLIC PROCEDURE; --"Loop" is the "loop forever" instruction. One operand is required: -- The Object is executed until an ".exit" command is executed. Loop: PUBLIC PROCEDURE; --"Exit" procedure pops the executionstack until the inner most loop is --terminated. (until a mark is encountered). Exit: PUBLIC PROCEDURE; --"Stop" procedure pops the executionstack and checkpoints the VM. Stop: PUBLIC PROCEDURE; --"JaMError" is an error that is caught by execution control. The -- restore parameter is used to indicate to execution control if it -- is safe to restore the operand stack. execute is the StringType Object -- that will be pushed onto the execution stack. JaMError: PUBLIC ERROR [execute:StringType Object,restore:BOOLEAN]; SetWakeUp: PUBLIC PROCEDURE[BOOLEAN]; GetWakeUp: PUBLIC PROCEDURE RETURNS[BOOLEAN]; END. DKW March 27, 1980 6:15 PM added JaMExec: PROGRAM; DKW September 29, 1980 11:49 AM changed WakeUp to SetWakeUp, added GetWakeUp(1792)\242b7B190b7B220b2B253b6B221b4B260b3B154b4B139b4B88b4B280b8B62b9B29b9B