DIRECTORY Commander, IO, Rope; StdCorpse2: CEDAR PROGRAM IMPORTS Commander, IO, Rope= BEGIN ROPE: TYPE ~ Rope.ROPE; Recrd: TYPE ~ RECORD [ i: INT _ 1, x: REAL _ 1.0]; rgv1: ROPE _ "rgv1"; rgv2: ROPE _ "rgv 2"; ag1: ATOM _ $AnotherAtom; rSeven: REF INT _ NEW [INT _ 7]; rEight: REF INT _ NEW [INT _ 8]; dz8: DREAL _ 8.0; din3: DINT _ -3; dc7: DCARD _ 7; rag1: REF ANY _ $AnAtom; rag2: REF ANY _ rSeven; rag3: REF ANY _ rgv1; rag4: REF ANY _ NEW[Recrd _ []]; rag5: REF ANY _ NEW[BOOL _ TRUE]; Die: Commander.CommandProc = { rlv: ROPE _ cmd.commandLine; out: IO.STREAM _ cmd.out; ral1: REF ANY _ cmd.out; five: INT _ 5; deth: CHAR ~ rlv.Fetch[0]; Mapper: PROC [c: CHAR] RETURNS [quit: BOOL _ FALSE] ~ {IF c=deth THEN ERROR ELSE RETURN[]}; rSix: REF INT _ NEW [INT _ 6]; subj: ROPE _ rlv.Substr[1]; out.PutF["Erring at [%g].\n", [character[deth]] ]; [] _ subj.Map[action: Mapper]; RETURN}; Die2: Commander.CommandProc = { rlv: ROPE _ cmd.commandLine; out: IO.STREAM _ cmd.out; five: INT _ 5; Mapper2: PROC [c: CHAR] RETURNS [quit: BOOL _ FALSE] ~ {deth: CHAR ~ rlv.Fetch[0]; IF c=deth THEN ERROR ELSE RETURN[]}; rSix: REF INT _ NEW [INT _ 6]; subj: ROPE _ rlv.Substr[1]; out.PutF["Erring at [%g].\n", [character[rlv.Fetch[0]]] ]; [] _ subj.Map[action: Mapper2]; RETURN}; Die3: Commander.CommandProc = { rlv: ROPE _ cmd.commandLine; out: IO.STREAM _ cmd.out; five: INT _ 5; Mapper3: PROC [c: CHAR] RETURNS [quit: BOOL _ FALSE] ~ {IF c='x THEN ERROR ELSE RETURN[]}; rSix: REF INT _ NEW [INT _ 6]; subj: ROPE _ rlv.Substr[1]; out.PutF["Erring at [x].\n" ]; [] _ subj.Map[action: Mapper3]; RETURN}; Die4: Commander.CommandProc = { rlv: ROPE _ cmd.commandLine; out: IO.STREAM _ cmd.out; five: INT _ 5; rSix: REF INT _ NEW [INT _ 6]; subj: ROPE _ rlv.Substr[1]; out.PutF["Deth4 here.\n" ]; {ENABLE IO.Error => CONTINUE; z: REAL _ 3.141592653589793; four: CARD _ five-1; Mapper4: PROC [c: CHAR] RETURNS [quit: BOOL _ FALSE] ~ { deth: CHAR ~ rlv.Fetch[0]; IF c=deth OR four=CARD[five] THEN ERROR ELSE RETURN[]}; IF cmd#NIL THEN { x: ROPE ~ subj; [] _ x.Map[action: Mapper4]; }; }; RETURN}; Die5: Commander.CommandProc = { ENABLE IO.Error => {result _ $Failure; CONTINUE}; rlv: ROPE _ cmd.commandLine; out: IO.STREAM _ cmd.out; five: INT _ 5; deth: CHAR ~ rlv.Fetch[0]; Mapper5: PROC [c: CHAR] RETURNS [quit: BOOL _ FALSE] ~ {IF c=deth THEN ERROR ELSE RETURN[]}; rSix: REF INT _ NEW [INT _ 6]; subj: ROPE _ rlv.Substr[1]; out.PutF["Erring at [%g].\n", [character[deth]] ]; [] _ subj.Map[action: Mapper5]; RETURN}; Croak: PROC ~ {ERROR}; ExternalNames: PROC = TRUSTED MACHINE CODE { "^ExternalNames\n"; "Croak Croak\n"; }; ExternalNames[]; Commander.Register["StdCorpse2.Die", Die, "Raise the unnamed ERROR"]; Commander.Register["StdCorpse2.Die2", Die2, "Raise the unnamed ERROR"]; Commander.Register["StdCorpse2.Die3", Die3, "Raise the unnamed ERROR"]; Commander.Register["StdCorpse2.Die4", Die4, "Raise the unnamed ERROR"]; Commander.Register["StdCorpse2.Die5", Die5, "Raise the unnamed ERROR"]; END. |StdCorpse2.mesa Copyright Σ 1991 by Xerox Corporation. All rights reserved. Spreitze, December 22, 1991 9:05 pm PST Κΐ•NewlineDelimiter – "cedar" style˜codešœ™K™