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
~
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"];