-- CompilerServer.model
-- Copyright (c) 1986 by Xerox Corporation.  All rights reserved.
-- last edit by Satterthwaite, June 7, 1986 10:06:55 am PDT

LET @///SML/OSBasics.modelBcd!581021414 IN 
LET @///SML/CedarBasics.modelBcd!581021540 IN 
LET [
    ComputeServerServer: TYPE~
      @/Cedar/Cedar6.0/ComputeServerUser/ComputeServerServer.bcd!548206815, 
    ConvertUnsafe: TYPE~@/Cedar/Cedar6.0/Rope/ConvertUnsafe.bcd!541570785, 
    Loader: TYPE~@/Cedar/Cedar6.0/Loader/Loader.bcd!541582731, 
    ProcessorFace: TYPE~@/Cedar/Cedar6.0/Heads/ProcessorFace.bcd!541571125, 
    RuntimeError: TYPE~@/Cedar/Cedar6.0/MesaRuntime/RuntimeError.bcd!541570482, 
    TimeStamp: TYPE~@/Cedar/Cedar6.0/BasicLoadState/TimeStamp.bcd!541573143, 
    UnsafeStorage: TYPE~
      @/Cedar/Cedar6.0/SafeStorage/UnsafeStorage.bcd!541573222] IN 

LAMBDA [
    AsciiImpl: Ascii, 
    BasicsImpl: Basics, 
    BasicTimeImpl: BasicTime, 
    CommanderImpl: Commander, 
    ComputeServerServerImpl: ComputeServerServer, 
    ConvertUnsafeImpl: ConvertUnsafe, 
    FileNamesImpl: FileNames, 
    FSImpl: FS, 
    IOImpl: IO, 
    LoaderImpl: Loader, 
    PrincOpsUtilsImpl: PrincOpsUtils, 
    ProcessImpl: Process, 
    ProcessorFaceImpl: ProcessorFace, 
    RefTextImpl: RefText, 
    RopeImpl: Rope, 
    RuntimeErrorImpl: RuntimeError, 
    UnsafeStorageImpl: UnsafeStorage, 
    VMImpl: VM] IN 
  
  REC [
    
    &options: STRING~"j-b-ns"; 
    
    -- these come from BasicLoadState.df
    Table: TYPE~@Table.mesa!581378325*[]; 
    BcdDefs: TYPE~@BcdDefs.mesa!581363106*[]; 
    Bcd:~
      [Alloc:~@Alloc.mesa!581983338, AllocImpl:~@AllocImpl.mesa!581983332, 
       CBinary:~@CBinary.mesa!350974958, 
       FileSegment:~@FileSegment.mesa!539212121, 
       Literals:~@Literals.mesa!581965446, 
       PackageSymbols:~@PackageSymbols.mesa!581378630, 
       RCMap:~@RCMap.mesa!577304916, RCMapOps:~@RCMapOps.mesa!577827292, 
       RCMapBuilderImpl:~@RCMapBuilderImpl.mesa!581532467, 
       RTBcd:~@RTBcd.mesa!581363862, RTSD:~@RTSD.mesa!539210962, 
       SymbolOps:~@SymbolOps.mesa!581631583, 
       SymbolPack:~@SymbolPack.mesa!581984111, 
       SymbolPackExt:~@SymbolPackExt.mesa!581984099, 
       Symbols:~@Symbols.mesa!581967164, 
       SymbolSegment:~@SymbolSegment.mesa!581983414, 
       SymbolTable:~@SymbolTable.mesa!539212225, Tree:~@Tree.mesa!581965794, 
       TypeStrings:~@TypeStrings.mesa!539212399, 
       TypeStringsImpl:~@TypeStringsImpl.mesa!581966986, 
       TypePack:~@TypePack.mesa!581445862, Types:~@Types.mesa!559240918]; 
    SymbolCache:~@SymbolCache.mesa!581985042; 
    
    -- this comes from AMTypes.df
    
    FileSegment: TYPE~Bcd.FileSegment*["s-z"]; 
    Symbols: TYPE~Bcd.Symbols*[]; 
    Literals: TYPE~Bcd.Literals*[]; 
    Tree: TYPE~Bcd.Tree*[]; 
    SymbolSegment: TYPE~Bcd.SymbolSegment*[]; 
    PackageSymbols: TYPE~Bcd.PackageSymbols*[]; 
    Alloc: TYPE~Bcd.Alloc*[]; 
    SymbolOps: TYPE~Bcd.SymbolOps*[]; 
    RCMap: TYPE~Bcd.RCMap*[]; 
    RTBcd: TYPE~Bcd.RTBcd*[]; 
    
    [SymbolPack: TYPE, SymbolPackImplA: SymbolPack, SymbolOpsImpl1: SymbolOps]~
      Bcd.SymbolPack*[]*[]; 
    SymbolTable: TYPE~Bcd.SymbolTable*[]; 
    SymbolOpsImpl: SymbolOps~
      SymbolOpsImpl1 + Bcd.SymbolPackExt*[]*[own:~SymbolPackImplA]; 
    SymbolTableImpl: SymbolTable~
      REC [
        [SymbolPack: TYPE, SymbolPackImplB: SymbolPack]~Bcd.SymbolPack*[]*[]; 
        SymbolTableImpl: SymbolTable~SymbolCache*[]*[initial:~SymbolPackImplB]].SymbolTableImpl; 
    
    TreeOps: TYPE~@ProtoTreeOps.mesa!581631502*[]; 
    TreeOpsImpl: TreeOps~@TreePack.mesa!581643393*[]*[]; 
    
    LiteralOps: TYPE~@LiteralOps.mesa!581533235*[]; 
    LiteralOpsImpl: LiteralOps~@LiteralPack.mesa!581965696*[]*[]; 
    
    Types: TYPE~Bcd.Types*[]; 
    TypesImpl: Types~Bcd.TypePack*[]*[]; 
    
    SourceMap: TYPE~@SourceMap.mesa!581536182*[]; 
    
    FileParms: TYPE~@FileParms.mesa!542182141*["j-b-ns-z"]; 
    Copier: TYPE~@Copier.mesa!581550788*[]; 
    CopierImpl: Copier~
      @SymbolCopier.mesa!581966605*[]*[ownSymbols:~SymbolPackImplA] 
        + @FilePack.mesa!581965101*[]*[own:~SymbolPackImplA]; 
    
    [ComData: TYPE, dataPtr: ComData]~@ComData.mesa!581706197*[]*[]; 
    
    SymLiteralOps: TYPE~@SymLiteralOps.mesa!581878672*[]; 
    SymLiteralOpsImpl: SymLiteralOps~@SymLiteralPack.mesa!581967556*[]*[]; 
    
    Real: TYPE~@IeeeFloat.mesa!577235028*[]; 
    RealImpl: Real~@IeeePack.mesa!577235448*[]*[]; 
    
    CompilerOps: TYPE~@CompilerOps.mesa!542182211*["j-b-ns-z"]; 
    CompilerUtil: TYPE~@CompilerUtil.mesa!581972195*[]; 
    
    Log: TYPE~@Log.mesa!576616016*[]; 
    ErrorTable: TYPE~@ErrorTable.mesa!567375969*[]; 
    [LogImpl: Log, SourceMapImpl: SourceMap]~@LogPack.mesa!581538071*[]*[]; 
    
    Pass1: CompilerUtil~
      REC [
        ParseTable: TYPE~@ParseTable.mesa!581644532*[]; 
        P1: TYPE~@P1.mesa!581547658*[]; 
        [Control: CompilerUtil, Driver: P1]~@Pass1.mesa!581875674*[]*[]; 
        P1Impl: P1~
          Driver + @Scanner.mesa!580154837*[]*[] 
            + @ProtoParser.mesa!580755205*[]*[] + @Pass1T.mesa!581644491*[]*[]].Control; 
    
    Pass2: CompilerUtil~@Pass2.mesa!581631713*[]*[]; 
    
    Pass3: CompilerUtil~
      REC [
        A3: TYPE~@A3.mesa!577058476*[]; 
        P3: TYPE~@P3.mesa!576526077*[]; 
        P3S: TYPE~@P3S.mesa!576177918*[]; 
        A3Impl: A3~@Attr3a.mesa!581633473*[]*[] + @Attr3b.mesa!581641853*[]*[]; 
        [Pass3: TYPE, passPtr: Pass3, Control: CompilerUtil]~
          @Pass3.mesa!581633340*[]*[]; 
        Pass3B: P3~@Pass3B.mesa!581642462*[]*[]; 
        Pass3D: P3~@Pass3D.mesa!581642147*[]*[]; 
        Pass3I: P3~@Pass3I.mesa!581642359*[]*[]; 
        Pass3M: P3~@Pass3M.mesa!581966222*[]*[]; 
        [Pass3S: P3, P3SImpl1: P3S]~@Pass3S.mesa!581639751*[]*[]; 
        Pass3V: P3~@Pass3V.mesa!581641782*[]*[]; 
        [Pass3Xa: P3, P3SImpl2: P3S]~@Pass3Xa.mesa!581641341*[]*[]; 
        [Pass3Xb: P3, P3SImpl3: P3S]~@Pass3Xb.mesa!581968722*[]*[]; 
        Pass3Xc: P3~@Pass3Xc.mesa!581640532*[]*[]; 
        P3Impl: P3~
          Pass3B + Pass3D + Pass3I + Pass3M + Pass3S + Pass3V + Pass3Xa 
            + Pass3Xb + Pass3Xc; 
        P3SImpl: P3S~P3SImpl1 + P3SImpl2 + P3SImpl3].Control; 
    
    Pass3P: CompilerUtil~@Pass3P.mesa!581706359*[]*[]; 
    
    Pass4: CompilerUtil~
      LET [P4: TYPE~@P4.mesa!576785507*[]] IN 
      REC [
        [Pass4: TYPE, passPtr: Pass4, Control: CompilerUtil]~
          @Pass4.mesa!581706834*[]*[]; 
        P4Impl: P4~
          @Pass4B.mesa!581982670*[]*[] + @Pass4D.mesa!581887421*[]*[] 
            + @Pass4L.mesa!581887136*[]*[] + @Pass4S.mesa!581710059*[]*[] 
            + @Pass4Ops.mesa!581966339*[]*[] + @Pass4Xa.mesa!581887295*[]*[] 
            + @Pass4Xb.mesa!581884261*[]*[] + @Pass4Xc.mesa!581884422*[]*[]].Control; 
    
    Pass5: CompilerUtil~@Dummy5.mesa!581984179*[]*[]; 
    
    BcdOutput: CompilerUtil~
      REC [
        TypeStrings: TYPE~Bcd.TypeStrings*[]; 
        TypeStringsImpl: TypeStrings~Bcd.TypeStringsImpl*[]*[]; 
        RCMapOps: TYPE~Bcd.RCMapOps*[]; 
        RCMapOpsImpl: RCMapOps~Bcd.RCMapBuilderImpl*[]*[]; 
        ObjectOut: CompilerUtil~@ObjectOut.mesa!581972186*[]*[]].ObjectOut; 
    
    AllocImpl: Alloc~Bcd.AllocImpl*[]*[]; 
    CBinary: TYPE~Bcd.CBinary*[]; 
    CBinaryImpl: CBinary~
      @MesaTab.bcd!581644530*[] + @ErrorTab.bcd!581468366*[] 
        + @DebugTab.bcd!581468367*[]; 
    CommandUtil: TYPE~@CommandUtil.mesa!542181810*[]; 
    CommandUtilImpl: CommandUtil~@CommandPack.mesa!542204761*[]*[]; 
    FileParmOps: TYPE~@FileParmOps.mesa!542182616*[]; 
    FileParmOpsImpl: FileParmOps~@FileParmPack.mesa!581364820*[]*[]; 
    DebugTable: TYPE~@DebugTable.mesa!542182360*[]; 
    Debug: CompilerUtil~@Debug.mesa!581965024*[]*[]; 
    
    OSMiscOps: TYPE~@OSMiscOps.mesa!563132423*[]; 
    OSMiscOpsImpl: OSMiscOps~@OSMiscOpsImpl.mesa!577672349*[]*[]; 
    
    [CompilerOpsImpl: CompilerOps, Sequencer: CompilerUtil]~
      @CompilerSequencer.mesa!581983453*[]*[ownSymbols:~SymbolPackImplA]; 
    
    CompilerUtilImpl: CompilerUtil~
      Pass1 + Pass2 + Pass3 + Pass3P + Pass4 + Pass5 + BcdOutput + Debug 
        + Sequencer; 
    
    --Compiler: CONTROL~@CompilerServerCommandImpl.mesa!581540490*[]*[]].CompilerOpsImpl
    Compiler: CONTROL~@TestInterface.mesa!577675259*[]*[]].CompilerOpsImpl
