--File: IPTypeDict.mesa
Last Edited by: CSChow, February 2, 1985 2:21:48 am PST
DIRECTORY
SymTab,
Rope,
IP;
IPTypeDict: CEDAR DEFINITIONS = BEGIN
-- Intro: This is the module that parses the <name>.typ file
Ref: TYPE = REF Rep;
Rep: TYPE = RECORD[types: SymTab.Ref];
TypeEntryRep: TYPE = RECORD [
origin: IP.IntVector ← [0,0],
pins: LIST OF REF IP.PinRep ← NIL, --name, physicalPin, auxInfo
shape: REF IP.ShapeRep ← NIL, --width, height and the sizes of the four corners
shapeFn: REFNIL, --Function for shape determintaion
restriction: REFNIL -- Restriction on shape (and orientation)
];
CreateFailure: ERROR[why: Reason, what: ATOM];
Reason: TYPE = {syntaxError, noBegin, badToken};
EachTypeEntryAction: TYPE = PROC[type: Rope.ROPE, entry: REF TypeEntryRep] RETURNS [quit: BOOLFALSE];
Create: PROC[file: Rope.ROPE] RETURNS [Ref];
LookUp: PROC[r: Ref, type: Rope.ROPE] RETURNS [found: BOOL, val: REF TypeEntryRep];
TypeEntries: PROC[r: Ref, action: EachTypeEntryAction];
END.