CDSimpleRulesBackdoor.mesa (part of ChipNDale)
Copyright © 1985, 1986, 1987 by Xerox Corporation. All rights reserved.
Created by Christian Jacobi, July 5, 1985 4:58:37 pm PDT
Last edited by: Christian Jacobi, April 13, 1987 7:01:22 pm PDT
DIRECTORY
CD, CDSimpleRules;
CDSimpleRulesBackdoor: CEDAR DEFINITIONS =
BEGIN
Rules: TYPE = REF;
--UNION of ATOM and REF ImplementationRulesRep
IRules: TYPE = REF RulesRep;
RulesRep: TYPE = RECORD [
key: ATOMNIL,
technology: CD.Technology←NIL,
properties: CD.PropRef←NIL,
minWidth: LProc←NIL,
minDist: LLProc←NIL,
maxWidth: LProc←NIL,
contact: ContactProc←NIL,
largeContact: LargeContactProc←NIL,
inherit: Rules←NIL --at registration time
];
LProc: TYPE = PROC [layer: CD.Layer, rules: IRules] RETURNS [CD.Number];
LLProc: TYPE = PROC [l1, l2: CD.Layer, rules: IRules] RETURNS [CD.Number];
ContactProc: TYPE = PROC [l1, l2: CD.Layer, rules: IRules] RETURNS [CD.Object];
LargeContactProc: TYPE = PROC [design: CD.Design, size: CD.Position, l1, l2: CD.Layer, rules: IRules] RETURNS [CD.Object];
GetRulesRep: PROC [rules: Rules] RETURNS [IRules];
-- Useful to convert atom into REF ImplementationRulesRep
-- raises NotKnown if rules are not implemented
RegisterRules: PROC [r: RulesRep];
--Registrations can be repeated and features can be registered separately
--but technology must not contradict.
RegisterLayerName: PROC [name: REF, layer: CD.Layer, technology: CD.Technology←NIL];
--Registers more names for a layer
RegisterTechnologyName: PROC [name: REF, technology: CD.Technology];
--Registers more names for a technology
END.