-- CT.Mesa, last edit March 22, 1983 2:08 pm DIRECTORY Buttons: TYPE USING[Button], CedarLinkerOps: TYPE USING[Pending], CompilerOps: TYPE USING[LetterSwitches], Containers: TYPE USING[Container], CTLoad: TYPE USING[LoadInfoSeq, InterfaceSeq], File: TYPE USING[Capability, nullCapability], FileParms: TYPE USING[ActualId, nullActual, nullSymbolSpace, SymbolSpace], IO: TYPE USING[Handle], MBQueue: TYPE USING[Queue], PilotLoadStateFormat: TYPE USING [ConfigIndex, NullConfig], Rope: TYPE USING[ROPE, Text], Space: TYPE USING [Handle], TimeStamp: TYPE USING[Null, Stamp], ViewerClasses: TYPE USING[Viewer]; CT: CEDAR DEFINITIONS = { ModuleList: TYPE = LIST OF MI; MI: TYPE = REF MIRecord; MIRecord: TYPE = RECORD[ srcFileName: Rope.Text ← NIL, -- if NIL then only load srcCreate: LONG CARDINAL ← 0, srcCap: File.Capability ← File.nullCapability, switches: CompilerOps.LetterSwitches ← NULL, explicitSortSwitch: BOOL ← FALSE, controlModule: BOOL ← FALSE, exportedInterface: BOOL ← FALSE, definitions: BOOL ← FALSE, -- bcdFileName: Rope.Text ← NIL, bcdCap: File.Capability ← File.nullCapability, bcdVers: TimeStamp.Stamp ← TimeStamp.Null, bcdValid: BOOL ← TRUE, -- this bcd is ok possiblyBad: BOOL ← FALSE, -- file we depend on changed dependencyBad: BOOL ← FALSE, -- file we depend on failed to compile loadInfoSeq: CTLoad.LoadInfoSeq ← NIL, dependedBy: LIST OF Rope.Text -- modules that depend on this one ]; Global: TYPE = REF GlobalRecord; GlobalRecord: TYPE = RECORD[ -- viewers data container: Containers.Container ← NIL, msgout: IO.Handle ← NIL, dout: IO.Handle ← NIL, -- for debugging purposes ttyin: IO.Handle ← NIL, ttyout: IO.Handle ← NIL, -- fields compileButton: Buttons.Button ← NIL, compileViewer: ViewerClasses.Viewer ← NIL, confirmButton: Buttons.Button ← NIL, confirmViewer: ViewerClasses.Viewer ← NIL, attachEditorButton: Buttons.Button ← NIL, attachEditorLabel: ViewerClasses.Viewer ← NIL, -- other objects q: MBQueue.Queue ← NIL, noticeList: LIST OF Rope.Text ← NIL, -- files that have been noticed confirmCompiles: BOOL ← FALSE, attachEditor: BOOL ← TRUE, moduleList: ModuleList ← NIL, moduleExports: LIST OF CTLoad.InterfaceSeq ← NIL, outsideImports: LIST OF OutsideImports ← NIL, compiledOk: BOOL ← FALSE, loadedOk: BOOL ← FALSE, bcdTabList: LIST OF BcdTab ← NIL, fakebcdspace: Space.Handle, -- the bcdbase for a fake config fakeBcdFileName: Rope.Text ← NIL, -- name of backing file configindex: PilotLoadStateFormat.ConfigIndex ← PilotLoadStateFormat.NullConfig, frameInterfaces: LIST OF REF FrameListRecord ← NIL, attachEditorRef: REF ANY ← NIL, toBeProcessed: LIST OF CedarLinkerOps.Pending ]; OutsideImports: TYPE = REF OutsideImportsRecord; OutsideImportsRecord: TYPE = RECORD[ name: Rope.Text ← NIL, bcdVers: TimeStamp.Stamp ← TimeStamp.Null, interfaceseq: CTLoad.InterfaceSeq ← NIL ]; BcdTab: TYPE = REF BcdTabRecord; BcdTabRecord: TYPE = RECORD[ bcdFileName: Rope.Text ← NIL, bcdCap: File.Capability ← File.nullCapability, bcdVers: TimeStamp.Stamp ← TimeStamp.Null, bcdActual: FileParms.ActualId ← FileParms.nullActual, symbolSpace: FileParms.SymbolSpace ← FileParms.nullSymbolSpace ]; FrameListRecord: TYPE = RECORD[ name: Rope.Text ← NIL, version: TimeStamp.Stamp ← TimeStamp.Null, interfaceseq: CTLoad.InterfaceSeq ← NIL ]; -- exported by CTCompImpl DetermineCompilation: PROC[gToUse: Global, modRepl: BOOL] RETURNS[errors: BOOL]; GenUniqueBcdName: PROC[bcdFileName: Rope.Text] RETURNS[newName: Rope.Text]; AppendExtension: PROC[name: Rope.ROPE, ext: LONG STRING] RETURNS[r: Rope.Text]; SetPossiblyBadAndValid: PROC[MI]; -- exported by CTLDriverImpl LoadBcdsAndResolveImports: PROC[g: Global, tryreplacement: BOOL] RETURNS[errors: BOOL]; StartAllControlBcds: PROC[g: Global]; UnLoad: PROC[g: Global, unloadthebcd: BOOL]; }.