RoseRecognizeTransistorsImpl.mesa
Copyright © 1985 by Xerox Corporation. All rights reversed.
Barth, September 5, 1985 6:40:39 pm PDT
Spreitzer, October 1, 1985 1:51:09 pm PDT
DIRECTORY Core, CoreOps, CoreProperties, CoreTransistor, RoseBind, RoseRecognizeTransistors;
RoseRecognizeTransistorsImpl: CEDAR PROGRAM
IMPORTS CoreOps, CoreProperties, CoreTransistor, RoseBind
EXPORTS RoseRecognizeTransistors
=
BEGIN
transistorBC: RoseBind.BehaviorClass;
Recognize: PUBLIC PROC [ct: Core.CellType] RETURNS [bc: RoseBind.BehaviorClass] = {
bc ← NIL;
IF ct.class = CoreTransistor.transistorCellClass THEN {
bc ← transistorBC;
IF CoreProperties.GetProp[ct.properties, RoseBind.argsKey] = NIL
THEN ct.properties ← CoreProperties.PutProp[ct.properties, RoseBind.argsKey, ct.data];
};
};
Start: PROC = {
pw: Core.Wire = CoreOps.CreateRecordWire[
"TransistorPublic",
LIST[
CoreOps.CreateAtomWire["gate"],
CoreOps.CreateAtomWire["ch1"],
CoreOps.CreateAtomWire["ch2"],
CoreOps.CreateAtomWire["back"]
]
];
pw.properties ← CoreProperties.PutProp[pw.properties, RoseBind.switchWire, $T];
transistorBC ← RoseBind.EnsureBehaviorClass["Transistor", pw];
};
Start[];
END.