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: REF ← NIL, --Function for shape determintaion
restriction: REF ← NIL -- 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: BOOL ← FALSE];
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.