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: ATOM←NIL,
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.