UncountedAssignHack.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
Russ Atkinson (RRA) May 1, 1986 7:11:22 pm PDT
McCreight, May 7, 1986 11:00:08 am PDT
UncountedAssignHack:
CEDAR
DEFINITIONS
= BEGIN
AssignResult:
TYPE = {
success, -- assignment was successful
typesNE, -- types were not equal
sizesNE, -- sizes were not equal
problem -- some other problem
};
EqualResult:
TYPE = {
equal, -- objects were equal
typesNE, -- types were not equal
sizesNE, -- sizes were not equal
contentsNE, -- contents were not equal
problem -- either not comparable or some other problem
};
ProblemKind:
TYPE = {
noProblem, -- no problem
nilRef, -- ref = NIL
typeIsRC, -- type is REF containing
tooLong, -- object is too long (> Allocator.maxSmallBlockSize words)
tooShort}; -- object is too small (probably damaged)
UncountedSmallAssignProc:
PUBLIC
PROC [dst:
REF, src:
REF]
RETURNS [AssignResult];
UncountedSmallAssignPlease: PUBLIC PROC [dst: REF, src: REF];
UncountedSmallNewProc:
PUBLIC
PROC [src:
REF]
RETURNS [dst:
REF ←
NIL];
UncountedSmallEqualProc: PUBLIC PROC [ref1, ref2: REF] RETURNS [EqualResult];
DiagnoseProblemProc: PUBLIC PROC [ref: REF] RETURNS [ProblemKind];
END.