StdCorpse6.mesa
Copyright Ó 1991, 1992 by Xerox Corporation. All rights reserved.
Michael Plass, June 3, 1991 12:32 pm PDT
Spreitze, January 10, 1992 7:00 am PST
Laurie Horton, January 31, 1992 1:44 pm PST
DIRECTORY Basics, Commander, IO, Rope;
StdCorpse6: CEDAR PROGRAM
IMPORTS Commander
~ BEGIN
ROPE: TYPE ~ Rope.ROPE;
ESub: TYPE ~ Basics.PartialComparison;
TagdVRT: TYPE ~ RECORD [
f1: REAL,
r1: ROPE,
vnt: SELECT tag: ESub FROM
greater => [i: INT],
incomparable => [c: CHAR]
ENDCASE];
BoundTagdVRT: TYPE ~ TagdVRT[greater];
tvr: TagdVRT ← [1.2, "hi", incomparable['i]];
btvr: BoundTagdVRT ← [1.3, "lo", greater[12]];
CmpdVRT: TYPE ~ RECORD [SELECT COMPUTED ESub FROM
greater => [i: INT],
incomparable => [c: CHAR]
ENDCASE];
BoundCmpdVRT: TYPE ~ CmpdVRT[greater];
OvldVRT: TYPE ~ RECORD [SELECT OVERLAID ESub FROM
greater => [i: INT],
incomparable => [c: CHAR]
ENDCASE];
BoundOvldVRT: TYPE ~ OvldVRT[greater];
Cmd: Commander.CommandProc ~ {
OPEN tvr, x:btvr;
y: TagdVRT ← [0.1, "next", incomparable['d]];
TRUSTED {WITH yy: y SELECT FROM
incomparable => {
IF x.f1 + yy.f1 = f1 THEN ERROR;
};
ENDCASE => ERROR};
};
Commander.Register["StdCorpse6.Test", Cmd, "test OPEN & SELECT"];
END.