-- 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]
]