-- 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]; }.