<> <> <> DIRECTORY Core, CoreRecordCells; CoreFlatten: CEDAR DEFINITIONS = BEGIN OPEN Core, CoreRecordCells; <> <> <> <> children: ATOM; InstanceList: TYPE = LIST OF Instance; internalWire: ATOM; <> Flatten: PROC [cellType: CellType, control: FlattenControl] RETURNS [root: Instance]; <> <> FlattenControl: TYPE = REF FlattenControlRec; FlattenControlRec: TYPE = RECORD [ Decide: PROC [data: REF ANY, who: Who] RETURNS [ExpandDecision], data: REF ANY]; ExpandDecision: TYPE = {leaf, expand}; Who: TYPE = LIST OF Step; <> Step: TYPE = RECORD [name: ROPE _ NIL, type: CellType]; <> <> ControlByFile: PROC [fileName: ROPE] RETURNS [control: FlattenControl]; END.