DIRECTORY PBasics USING [Comparison]; ConstArith: DEFINITIONS = BEGIN Const: TYPE = RECORD [ sign: ConstSign, low: CARD, high: CARD]; ConstSign: TYPE = {negative, zero, positive}; Overflow: ERROR; DivByZero: ERROR; FromCard: PROC [card: CARD] RETURNS [Const]; FromInt: PROC [int: INT] RETURNS [Const]; ToCard: PROC [const: Const] RETURNS [CARD]; ToInt: PROC [const: Const] RETURNS [INT]; Add: PROC [x,y: Const] RETURNS [Const]; Sub: PROC [x,y: Const] RETURNS [Const]; Div: PROC [x,y: Const] RETURNS [Const]; Mod: PROC [x,y: Const] RETURNS [Const]; DivMod: PROC [x,y: Const] RETURNS [q, r: Const]; Mul: PROC [x,y: Const] RETURNS [Const]; Abs: PROC [c: Const] RETURNS [Const]; Neg: PROC [c: Const] RETURNS [Const]; Compare: PROC [c1,c2: Const] RETURNS [PBasics.Comparison]; END. ΈConstArith.mesa Copyright Σ 1986, 1988 by Xerox Corporation. All rights reserved. Russ Atkinson (RRA) July 25, 1988 9:48:12 pm PDT Exceptions Conversions Arithmetic Comparison ΚΗ˜codešœ™KšœB™BK™0—K˜šΟk ˜ Kšœœ˜K˜—KšΟn œ œ˜K˜šœœœ˜K˜Kšœœ˜ Kšœœ˜ K˜—šœ œ˜-K˜—™ Kšžœœ˜Kšž œœ˜—K˜™ Kšžœœœœ ˜,Kšžœœœœ ˜)Kšžœœœœ˜+Kšžœœœœ˜)—K˜™ Kšžœœœ ˜'Kšžœœœ ˜'Kšžœœœ ˜'Kšžœœœ ˜'Kšžœœœ˜0Kšžœœœ ˜'Kšžœœ œ ˜%Kšžœœ œ ˜%—K˜™ Kšžœœœ˜:—K˜Kšœ˜K˜—…—“