SourceMap.mesa
Copyright Ó 1985, 1986, 1988, 1991 by Xerox Corporation. All rights reserved.
Satterthwaite, June 5, 1986 10:49:41 am PDT
Sweet, October 10, 1985 12:00:10 pm PDT
Russ Atkinson (RRA) March 1, 1988 6:35:50 pm PST
SourceMap:
DEFINITIONS = {
Loc:
TYPE[
SIZE[
CARD]];
nullLoc: Loc = LOOPHOLE[CARD.LAST];
Init, Reset: PROC;
Cons: PROC [index: INT] RETURNS [Loc];
Val: PROC [loc: Loc] RETURNS [INT];
Down:
PROC [loc: Loc]
RETURNS [
CARD] =
INLINE {
RETURN [LOOPHOLE[loc, CARD]];
};
Up:
PROC [code:
CARD]
RETURNS [Loc] =
INLINE {
RETURN [LOOPHOLE[code, Loc]];
};
Delta:
PROC [loc1, loc2: Loc]
RETURNS [
CARD] =
INLINE {
RETURN [Down[loc1] - Down[loc2]];
};
Incr:
PROC [loc: Loc, delta:
CARD]
RETURNS [Loc] =
INLINE {
RETURN [Up[Down[loc]+delta]];
};