-- CompilerServer.model
-- Copyright (c) 1986 by Xerox Corporation.  All rights reserved.
-- last edit by Satterthwaite, June 16, 1986 11:04:26 am PDT

LET REC [
    Host: TYPE MachineParms~@PrincOpsParms.mesa!583261750[&options:~""]; 
    Target: TYPE MachineParms~@DragonParms.mesa!582574897[&options:~""]] IN 
LET @///SML/OSBasics.modelBcd!581021414 IN 
LET @///SML/CedarBasics.modelBcd!581021540 IN 
LET [
    ComputeServerServer: TYPE~
      @/Cedar/Cedar6.1/ComputeServerUser/ComputeServerServer.bcd!548206815, 
    ConvertUnsafe: TYPE~@/Cedar/Cedar6.1/Rope/ConvertUnsafe.bcd!541570785, 
    Loader: TYPE~@/Cedar/Cedar6.1/Loader/Loader.bcd!541582731, 
    ProcessorFace: TYPE~@/Cedar/Cedar6.1/Heads/ProcessorFace.bcd!541571125, 
    RuntimeError: TYPE~@/Cedar/Cedar6.1/MesaRuntime/RuntimeError.bcd!541570482, 
    TimeStamp: TYPE~@/Cedar/Cedar6.1/BasicLoadState/TimeStamp.bcd!541573143, 
    UnsafeStorage: TYPE~
      @/Cedar/Cedar6.1/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!583259652, 
       PackageSymbols:~@PackageSymbols.mesa!581378630, 
       RCMap:~@RCMap.mesa!582491357, RCMapOps:~@RCMapOps.mesa!577827292, 
       RCMapBuilderImpl:~@RCMapBuilderImpl.mesa!582663357, 
       RTBcd:~@RTBcd.mesa!581363862, RTSD:~@RTSD.mesa!539210962, 
       SymbolOps:~@SymbolOps.mesa!582657155, 
       SymbolPack:~@SymbolPack.mesa!582658138, 
       SymbolPackExt:~@SymbolPackExt.mesa!582247039, 
       Symbols:~@Symbols.mesa!582656813, 
       SymbolSegment:~@SymbolSegment.mesa!581983414, 
       SymbolTable:~@SymbolTable.mesa!539212225, Tree:~@Tree.mesa!582664643, 
       TypeStrings:~@TypeStrings.mesa!539212399, 
       TypeStringsImpl:~@TypeStringsImpl.mesa!582660931, 
       TypePack:~@TypePack.mesa!582659696, Types:~@Types.mesa!582657333]; 
    SymbolCache:~@SymbolCache.mesa!582657590; 
    
    -- 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!582664759*[]*[]; 
    
    LiteralOps: TYPE~@LiteralOps.mesa!582743240*[]; 
    LiteralOpsImpl: LiteralOps~@LiteralPack.mesa!582741928*[]*[]; 
    
    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!582659954*[]; 
    CopierImpl: Copier~
      @SymbolCopier.mesa!582664779*[]*[ownSymbols:~SymbolPackImplA] 
        + @FilePack.mesa!581965101*[]*[own:~SymbolPackImplA]; 
    
    [ComData: TYPE, dataPtr: ComData]~@ComData.mesa!582655832*[]*[]; 
    
    SymLiteralOps: TYPE~@SymLiteralOps.mesa!581878672*[]; 
    SymLiteralOpsImpl: SymLiteralOps~@SymLiteralPack.mesa!582664965*[]*[]; 
    
    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!583260007*[]*[]; 
    
    Pass1: CompilerUtil~
      REC [
        ParseTable: TYPE~@ParseTable.mesa!583268382*[]; 
        P1: TYPE~@P1.mesa!581547658*[]; 
        [Control: CompilerUtil, Driver: P1]~@Pass1.mesa!582664796*[]*[]; 
        P1Impl: P1~
          Driver + @Scanner.mesa!582585997*[]*[] 
            + @ProtoParser.mesa!580755205*[]*[] + @Pass1T.mesa!583268340*[]*[]].Control; 
    
    Pass2: CompilerUtil~@Pass2.mesa!582664858*[]*[]; 
    
    Pass3: CompilerUtil~
      REC [
        A3: TYPE~@A3.mesa!577058476*[]; 
        P3: TYPE~@P3.mesa!582587071*[]; 
        P3S: TYPE~@P3S.mesa!576177918*[]; 
        A3Impl: A3~@Attr3a.mesa!581633473*[]*[] + @Attr3b.mesa!582665015*[]*[]; 
        [Pass3: TYPE, passPtr: Pass3, Control: CompilerUtil]~
          @Pass3.mesa!582664920*[]*[]; 
        Pass3B: P3~@Pass3B.mesa!582664876*[]*[]; 
        Pass3D: P3~@Pass3D.mesa!582664901*[]*[]; 
        Pass3I: P3~@Pass3I.mesa!582664940*[]*[]; 
        Pass3M: P3~@Pass3M.mesa!582665420*[]*[]; 
        [Pass3S: P3, P3SImpl1: P3S]~@Pass3S.mesa!582665393*[]*[]; 
        Pass3V: P3~@Pass3V.mesa!582061958*[]*[]; 
        [Pass3Xa: P3, P3SImpl2: P3S]~@Pass3Xa.mesa!582587481*[]*[]; 
        [Pass3Xb: P3, P3SImpl3: P3S]~@Pass3Xb.mesa!583259360*[]*[]; 
        Pass3Xc: P3~@Pass3Xc.mesa!582589093*[]*[]; 
        P3Impl: P3~
          Pass3B + Pass3D + Pass3I + Pass3M + Pass3S + Pass3V + Pass3Xa 
            + Pass3Xb + Pass3Xc; 
        P3SImpl: P3S~P3SImpl1 + P3SImpl2 + P3SImpl3].Control; 
    
    Pass3P: CompilerUtil~@Pass3P.mesa!582665043*[]*[]; 
    
    Pass4: CompilerUtil~
      LET [P4: TYPE~@P4.mesa!582741079*[]] IN 
      REC [
        [Pass4: TYPE, passPtr: Pass4, Control: CompilerUtil]~
          @Pass4.mesa!582665069*[]*[]; 
        P4Impl: P4~
          @Pass4B.mesa!582665600*[]*[] + @Pass4D.mesa!582662627*[]*[] 
            + @Pass4L.mesa!582665102*[]*[] + @Pass4S.mesa!582665619*[]*[] 
            + @Pass4Ops.mesa!583260375*[]*[] + @Pass4Xa.mesa!582743548*[]*[] 
            + @Pass4Xb.mesa!582591675*[]*[] + @Pass4Xc.mesa!582682256*[]*[]].Control; 
    
    Pass5: CompilerUtil~@Dummy5.mesa!581986884*[]*[]; 
    
    BcdOutput: CompilerUtil~
      REC [
        TypeStrings: TYPE~Bcd.TypeStrings*[]; 
        TypeStringsImpl: TypeStrings~Bcd.TypeStringsImpl*[]*[]; 
        RCMapOps: TYPE~Bcd.RCMapOps*[]; 
        RCMapOpsImpl: RCMapOps~Bcd.RCMapBuilderImpl*[]*[]; 
        ObjectOut: CompilerUtil~@ObjectOut.mesa!583108896*[]*[]].ObjectOut; 
    
    AllocImpl: Alloc~Bcd.AllocImpl*[]*[]; 
    CBinary: TYPE~Bcd.CBinary*[]; 
    CBinaryImpl: CBinary~
      @MesaTab.bcd!583268381*[] + @ErrorTab.bcd!583268386*[] 
        + @DebugTab.bcd!583268388*[]; 
    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!582665175*[]*[]; 
    
    OSMiscOps: TYPE~@OSMiscOps.mesa!563132423*[]; 
    OSMiscOpsImpl: OSMiscOps~@OSMiscOpsImpl.mesa!582655891*[]*[]; 
    
    [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~@CrossInterface.mesa!582243063*[]*[]].CompilerOpsImpl