<> <> <> DIRECTORY Commander, IO, Rope; StdCorpse1: CEDAR PROGRAM IMPORTS Commander, IO, Rope= BEGIN ROPE: TYPE ~ Rope.ROPE; rgv1: ROPE _ "rgv1"; rgv2: ROPE _ "rgv 2"; rag1: REF ANY _ $AnAtom; ag1: ATOM _ $AnotherAtom; rSeven: REF INT _ NEW [INT _ 7]; rEight: REF INT _ NEW [INT _ 8]; int16a: INT16 _ 32767; int16b: INT16 _ -32768; int16c: INT16 _ 5; int16d: INT16 _ 20; int16e: INT16 _ -10; Die: Commander.CommandProc = { rlv: ROPE _ cmd.commandLine; out: IO.STREAM _ cmd.out; five: INT _ 5; rSix: REF INT _ NEW [INT _ 6]; out.PutRope["Deth here.\n"]; ERROR; }; Die2: Commander.CommandProc = { rlv: ROPE _ cmd.commandLine; out: IO.STREAM _ cmd.out; five: INT _ 5; rSix: REF INT _ NEW [INT _ 6]; out.PutRope["Deth2 here.\n"]; ERROR; }; Die3: Commander.CommandProc = { rlv: ROPE _ cmd.commandLine; out: IO.STREAM _ cmd.out; five: INT _ 5; rSix: REF INT _ NEW [INT _ 6]; sum: INT _ IntAdd[five, rSix^]; out.PutRope["Deth2 here.\n"]; ERROR; }; IntAdd: PROC [a, b: INT] RETURNS [c: INT] ~ { c _ a + b; RETURN; }; Cat: PROC [r1, r2: ROPE] RETURNS [ROPE] ~ {RETURN r1.Concat[r2]}; AnaRope: PROC [r: ROPE] RETURNS [len: INT, chars: ARRAY [0 .. 9] OF CHAR _ ALL[' ]] ~ { len _ r.Length[]; FOR i: INT IN [0 .. MIN[len, 10]) DO chars[i] _ r.Fetch[i] ENDLOOP; RETURN}; FromChar: PROC [CHAR] RETURNS [ROPE] _ Rope.FromChar; Commander.Register["StdCorpse1.Die", Die, "Raise the unnamed ERROR"]; Commander.Register["StdCorpse1.Die2", Die2, "Raise the unnamed ERROR"]; Commander.Register["StdCorpse1.Die3", Die3, "Raise the unnamed ERROR"]; END.