-- TestSML.model -- last edited by Satterthwaite, August 2, 1983 3:10 pm LET @OSBasics.model!H IN LET @CedarBasics.model!H IN LET @ViewersBasics.model!H IN LET [ BcdDefs: TYPE~@BcdDefs.bcd[], BcdOps: TYPE~@BcdOps.bcd[], --CedarExporterImpl: TYPE~@CedarExporterImpl.bcd[]; CedarLinkerOps: TYPE~@CedarLinkerOps.bcd[], CompilerOps: TYPE~@CompilerOps.bcd[], FileSegment: TYPE~@FileSegment.bcd[], FileParms: TYPE~@FileParms.bcd[], Frame: TYPE~@Frame.bcd[], Loader: TYPE~@Loader.bcd[], LoaderPrivate: TYPE~@LoaderPrivate.bcd[], MiscAlpha: TYPE~@MiscAlpha.bcd[], Mopcodes: TYPE~@Mopcodes.bcd[], PilotLoaderOps: TYPE~@PilotLoaderOps.bcd[], PilotLoadStateFormat: TYPE~@PilotLoadStateFormat.bcd[], PilotLoadStateOps: TYPE~@PilotLoadStateOps.bcd[], PrincOpsRuntime: TYPE~@PrincOpsRuntime.bcd[], RTLoader: TYPE~@RTLoader.bcd[], RTOS: TYPE~@RTOS.bcd[], RuntimeInternal: TYPE~@RuntimeInternal.bcd[], SDDefs: TYPE~@SDDefs.bcd[], Trap: TYPE~@Trap.bcd[], UECP: TYPE~@UECP.bcd[] ] IN LAMBDA [ AtomImpl: Atom, BcdOpsImpl: BcdOps, CedarExporterImplImpl: @CedarExporterImpl.bcd[NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL], CedarLinkerOpsImpl: CedarLinkerOps, CompilerOpsImpl: CompilerOps, ContainersImpl: Containers, DirectoryImpl: Directory, FileImpl: File, FileIOImpl: FileIO, FileStreamImpl: FileStream, FrameImpl: Frame, HeapImpl: Heap, IOImpl: IO, InlineImpl: Inline, LabelsImpl: Labels, ListImpl: List, LoaderImpl: Loader, LoaderPrivateImpl: LoaderPrivate, MBQueueImpl: MBQueue, MenusImpl: Menus, PilotLoaderOpsImpl: PilotLoaderOps, PilotLoadStateOpsImpl: PilotLoadStateOps, PrincOpsRuntimeImpl: PrincOpsRuntime, ProcessImpl: Process, RopeImpl: Rope, RopeInlineImpl: RopeInline, RTLoaderImpl: RTLoader, RTOSImpl: RTOS, RulesImpl: Rules, RuntimeImpl: Runtime, RuntimeInternalImpl: RuntimeInternal, SafeStorageImpl: SafeStorage, SpaceImpl: Space, StreamImpl: Stream, TimeImpl: Time, TrapImpl: Trap, TypeScriptImpl: TypeScript, UECPImpl: UECP, UserExecImpl: UserExec, ViewerEventsImpl: ViewerEvents, ViewerIOImpl: ViewerIO, ViewerOpsImpl: ViewerOps, ViewerToolsImpl: ViewerTools, WindowManagerImpl: WindowManager ] => [] IN REC [ CS: TYPE~@CS.mesa!2605449547[File,IO,Rope,Stream,TimeStamp,"js"][]; CSImpl: CS~@CSImpl.mesa!2605890644[CS,DCSFileTypes,Directory,Environment, File,FileStream,Inline,IO,Rope,SafeStorage,Stream,TimeStamp,"js"][DirectoryImpl, FileImpl,FileStreamImpl,InlineImpl,IOImpl,RopeImpl,SafeStorageImpl]; SMTree: TYPE Tree~@SMTree.mesa!2604931446[Rope,TimeStamp,"js"][]; SMTreeOps: TYPE~@SMTreeOps.mesa!2603033237[SMTree,"js"][]; SMTreeOpsImpl: SMTreeOps~@SMTreeImpl.mesa!2603033256[SMTree,SMTreeOps,"js"][]; SMLDriver: TYPE~@SMLDriver.mesa!2604941280[IO,SMTree,SMTreeOps,"js"][]; SMCommentTable: TYPE~@SMCommentTable.mesa!2597874636[Rope,"js"][]; SMCommentTableOps: TYPE~@SMCommentTableOps.mesa!2597937680[SMCommentTable, "js"][]; SMCommentTableOpsImpl: SMCommentTableOps~@SMCommentTableImpl.mesa!2597937602 [SMCommentTable,SMCommentTableOps,"js"][]; SMOps: TYPE~@SMOps.mesa!2605460850[IO,SMCommentTableOps,SMLDriver,SMTree, SMTreeOps,"js"][]; SMUtil: TYPE~@SMUtil.mesa!2602164972[IO,SMCommentTableOps,SMOps,SMTree, "js"][]; SMFI: TYPE~@SMFI.mesa!2605552186[File,Rope,TimeStamp,SMTree,"js"][]; ModelParser ~ REC [ ParseTable: TYPE~@SMParseTable.mesa!2604931491["js"][]; [SMParseData: TYPE, SMParseDataImpl: SMParseData]~@SMParseData.bcd[]; SMP1: TYPE~@SMP1.mesa!2605797168[IO,ParseTable,SMCommentTable,SMOps, "js"][]; SMP1Impl: SMP1~ @SMScannerImpl.mesa!2603993346[Ascii,Atom,IO,SMP1,ParseTable, Rope,RopeInline,SMCommentTable,SMCommentTableOps,SMOps,SMTree,"js"][AtomImpl, IOImpl,RopeImpl,RopeInlineImpl,SMCommentTableOpsImpl] + @SMParserImpl.mesa!2605798045[IO,SMP1,ParseTable,SMOps,"js"][IOImpl,SMP1Impl] + @SMTreeBuildImpl.mesa!2604931478[Atom,SMP1,ParseTable,Rope,SMTree,SMTreeOps, SMCommentTable,SMOps,"js"][AtomImpl,RopeImpl,SMTreeOpsImpl]; [SMUtilImpl: SMUtil, SMOpsImpl: SMOps]~@SMReaderImpl.mesa!2605456800[CS, IO,SMP1,Runtime,Rope,SMCommentTable,SMCommentTableOps,SMFI,SMLDriver,SMOps, SMParseData,SMUtil,SMTree,SMTreeOps,"js"][CSImpl,IOImpl,SMP1Impl,RopeImpl, RuntimeImpl,SMCommentTableOpsImpl,SMLDriverImpl,SMTreeOpsImpl,SMParseDataImpl] ]; SMOpsImpl: SMOps ~ ModelParser.SMOpsImpl; SMUtilImpl: SMUtil~ ModelParser.SMUtilImpl + @SMPrettyImpl.mesa!2604959146[Atom,CS,IO,Rope,SMCommentTable, SMCommentTableOps,SMFI,SMUtil,SMTree,SMTreeOps,"js"][AtomImpl,CSImpl,IOImpl, RopeImpl,SMCommentTableOpsImpl,SMTreeOpsImpl]; SMTypeCons: TYPE~@SMTypeCons.mesa!2604854211[Rope,SMTree,SMTreeOps,TimeStamp, "js"][]; SMTypeConsImpl: SMTypeCons~@SMTypeConsImpl.mesa!2604854389[Rope,SMTree, SMTreeOps,SMTypeCons,TimeStamp,"js"][RopeImpl,SMTreeOpsImpl]; SMFIOps: TYPE~@SMFIOps.mesa!2605456938[SMFI,SMTree,SMOps,Rope,TimeStamp, "js"][]; SMEval: TYPE~@SMEval.mesa!2602777539[Rope,SMOps,SMTree,"js"][]; SMBcd: TYPE~@SMBcd.mesa!2601933974[IO,Rope,SMOps,SMTree,"js"][]; FileParser ~ REC [ ParseTable: TYPE~@CtoSParseTable.mesa!2603735838["js"][]; [CtoSParseData: TYPE, CtoSParseDataImpl: CtoSParseData]~@CtoSParseData.bcd[]; CtoSP1: TYPE~@CtoSP1.mesa!2605797159[ParseTable,IO,Rope,SMCommentTable, SMOps,"js"][]; CtoSP1Impl: CtoSP1~ @CtoSScannerImpl.mesa!2605797134[Environment,IO,CtoSP1, ParseTable,Rope,SMOps,"js"][IOImpl,RopeImpl] + @CtoSParserImpl.mesa!2605798035[IO,CtoSP1,ParseTable, SMOps,"js"][IOImpl,CtoSP1Impl] + @CtoSTreeBuildImpl.mesa!2604854510[Atom,CtoSP1,ParseTable,Rope,SMTree, SMTypeCons,SMOps,"js"][AtomImpl,CtoSP1Impl,RopeImpl,SMTypeConsImpl]; SMFIOpsImpl: SMFIOps~@SMFIImpl.mesa!2606057411[Atom,BcdDefs,BcdOps,CS,CtoSP1, CtoSParseData,Directory,File,FileIO,FileSegment,FileStream,IO,Rope,Runtime, SMEval,SMFI,SMFIOps,SMOps,SMTree,SMTreeOps,SMTypeCons,SMUtil,Space,TimeStamp, UECP,UserExec,"js"][AtomImpl,BcdOpsImpl,CSImpl,CtoSP1Impl,CtoSParseDataImpl, DirectoryImpl,FileIOImpl,FileStreamImpl,IOImpl,RopeImpl,RuntimeImpl,SMEvalImpl, SMTreeOpsImpl,SMTypeConsImpl,SMUtilImpl,SpaceImpl,UECPImpl,UserExecImpl]]; SMFIOpsImpl: SMFIOps~FileParser.SMFIOpsImpl; BcdStamps: TYPE~@BcdStamps.mesa!2605456626[CompilerOps,Environment,TimeStamp, "js"][]; BcdStampsImpl: BcdStamps~@BcdStampsImpl.mesa!2605890442[BcdStamps,CompilerOps, Environment,Inline,TimeStamp,"js"][]; SMEvalImpl: SMEval~@SMEvalImpl.mesa!2606058828[Atom,CS,FileIO,IO,Rope,SMBcd, SMEval,SMFI,SMFIOps,SMOps,SMUtil,SMTree,SMTreeOps,"js"][AtomImpl,CSImpl, FileIOImpl,IOImpl,RopeImpl,SMBcdImpl,SMFIOpsImpl,SMOpsImpl, SMUtilImpl,SMTreeOpsImpl]; SMProj: TYPE~@SMProj.mesa!2605458043[CompilerOps,File,FileSegment,Rope, TimeStamp,"js"][]; SMLoad: TYPE~@SMLoad.mesa!2605460046[BcdDefs,BcdOps,File,IO,MiscAlpha, Mopcodes,PilotLoaderOps,PilotLoadStateOps,PrincOps,Rope,TimeStamp,"js"][]; SMVal: TYPE~@SMVal.mesa!2606058523[SMLoad,SMOps,SMProj,SMTree,SMTreeOps, "js"][]; SMValImpl: SMVal~@SMValImpl.mesa!2606058723[SMOps,SMTree,SMTreeOps,SMVal, "js"][SMTreeOpsImpl]; ParticularTable: TYPE~@SMParticularTable.mesa!2603813739[Environment,SMProj, TimeStamp,"js"][]; OrderedSymbolTable: TYPE~@OrderedSymbolTable.mesa!2583283111[Environment, ParticularTable,"js"][ParticularTableImpl]; OrderedSymbolTableImpl: OrderedSymbolTable~@RedBlackTreeImpl.mesa!2583283170 [Environment,OrderedSymbolTable,"js"][OrderedSymbolTableImpl]; [ParticularTableImpl: ParticularTable, SMProjImpl: SMProj]~@SMProjImpl.mesa!2605460751 [BcdDefs,BcdOps,BcdStamps,CompilerOps,CS,Directory,Environment,File,FileSegment, OrderedSymbolTable,ParticularTable,Rope,SMProj,Space,TimeStamp,"js"][BcdStampsImpl, CSImpl,DirectoryImpl,OrderedSymbolTableImpl,RopeImpl,SpaceImpl]; SMComp: TYPE~@SMComp.mesa!2605102706[IO,SMOps,SMTree,"js"][]; SMCompImpl: SMComp~@SMCompImpl.mesa!2605888394[Atom,BcdStamps,CompilerOps, CS,Directory,File,FileParms,FileStream,Heap,IO,Loader,LongString,Rope,Runtime, SMComp,SMFI,SMOps,SMProj,SMTree,SMTreeOps,SMVal,Stream,Time,TimeStamp, ViewerClasses,ViewerOps,WindowManager,"js"][AtomImpl,BcdStampsImpl, CompilerOpsImpl,CSImpl, DirectoryImpl,FileStreamImpl,HeapImpl,IOImpl,LoaderImpl, RopeImpl,RuntimeImpl,SMProjImpl,SMTreeOpsImpl,SMValImpl,StreamImpl, TimeImpl,ViewerOpsImpl,WindowManagerImpl]; SMLDriverImpl: SMLDriver ~ REC [ SMLoadImpl: SMLoad~@SMLoadImpl.mesa!2605479509[Atom,BcdDefs,BcdOps, CedarLinkerOps,Directory,Environment,File,Frame,Inline,IO,LoaderPrivate, PilotLoaderOps,PilotLoadStateOps,PrincOps,PrincOpsRuntime,Rope,RTOS, Runtime,RuntimeInternal,SDDefs,SMLoad,Space,TimeStamp,Trap,"js"] [AtomImpl,BcdOpsImpl,CedarLinkerOpsImpl,DirectoryImpl,FrameImpl,InlineImpl, IOImpl,LoaderPrivateImpl,PilotLoaderOpsImpl,PrincOpsRuntimeImpl, RopeImpl,RTOSImpl,RuntimeImpl,RuntimeInternalImpl,SpaceImpl,TrapImpl]; SMFakeBcd: TYPE~@SMFakeBcd.mesa!2600630636[IO,PilotLoadStateFormat,Rope, SMTree,Space,"js"][]; SMFakeBcdImpl: SMFakeBcd~@SMFakeBcdImpl.mesa!2605456023[BcdDefs,BcdOps, Directory,Environment,File,IO,CS,PilotLoadStateFormat,PilotLoadStateOps, PrincOps,Rope,RopeInline,SMFakeBcd,SMLoad,SMTree,SMTreeOps,SMVal,Space, "js"][BcdOpsImpl,CSImpl,DirectoryImpl,SMLoadImpl,SMTreeOpsImpl,SMValImpl, IOImpl,PilotLoadStateOpsImpl,RopeInlineImpl,SpaceImpl]; SMLDriverImpl: SMLDriver~@SMLDriverImpl.mesa!2606058693[Atom,BcdDefs,BcdOps, CedarLinkerOps,CS,Directory,File,IO,List,Loader,LoaderPrivate,PilotLoaderOps, PilotLoadStateFormat,PilotLoadStateOps,PrincOps,Process,Rope,RTLoader,Runtime, RuntimeInternal,SMFakeBcd,SMFI,SMLDriver,SMLoad,SMProj,SMTree,SMTreeOps, SMVal,Space,Time,TimeStamp,"js"][AtomImpl,BcdOpsImpl,CedarLinkerOpsImpl, CSImpl,DirectoryImpl,IOImpl,ListImpl,LoaderImpl,LoaderPrivateImpl,PilotLoaderOpsImpl, PilotLoadStateOpsImpl,ProcessImpl,RTLoaderImpl,RuntimeImpl,RuntimeInternalImpl, SMFakeBcdImpl,SMLoadImpl,SMProjImpl,SMTreeOpsImpl,SMValImpl,SpaceImpl,TimeImpl] ].SMLDriverImpl; SMBcdImpl: SMBcd~@SMBcdImpl.mesa!2605549306[CS,FileIO,IO,Rope,SMBcd, SMCommentTableOps,SMEval,SMFI,SMFIOps,SMOps,SMProj,SMTree,SMTreeOps, SMUtil,TimeStamp,"js"][CSImpl,FileIOImpl,IOImpl,RopeImpl,SMEvalImpl, SMFIOpsImpl,SMProjImpl,SMTreeOpsImpl,SMUtilImpl]; SMDF: TYPE~@SMDF.mesa!2600697937[SMOps,SMTree,"js"][]; SMDFImpl: SMDF~@DummySMDFImpl.mesa!2600701844[SMDF,SMOps,SMTree,"js"][]; SML: CONTROL~@SMIntImpl.mesa!2606057368[Buttons,Containers,CS,Directory, FileIO,IO,Labels,List,MBQueue,Menus,Rope,Rules,SMBcd,SMComp,SMDF,SMEval, SMFI,SMFIOps,SMLDriver,SMOps,SMProj,SMUtil,SMVal,SMTree,SMTreeOps,TypeScript, ViewerClasses,ViewerEvents,ViewerIO,ViewerOps,ViewerTools,"js"][ContainersImpl, CSImpl,DirectoryImpl,FileIOImpl,MBQueueImpl,IOImpl,LabelsImpl,ListImpl, MenusImpl,RopeImpl,RulesImpl,SMBcdImpl,SMCompImpl,SMDFImpl, SMEvalImpl,SMFIOpsImpl,SMLDriverImpl,SMOpsImpl,SMProjImpl, SMUtilImpl,SMValImpl,SMTreeOpsImpl,TypeScriptImpl, ViewerEventsImpl,ViewerOpsImpl,ViewerIOImpl,ViewerToolsImpl] ] JX,D,g