-- FakeCompiler.mesa; edited by Sandman; July 8, 1980  9:23 AM

DIRECTORY
  CBinary USING [DebugTab],
  CompilerUtil USING [TableId, debug],
  ControlDefs USING [GlobalFrameHandle],
  IODefs USING [],
  MiscDefs USING [DestroyFakeModule],
  OutputDefs USING [PutChar, PutDecimal, PutOctal, PutString],
  SegmentDefs USING [FileSegmentHandle];

FakeCompiler: PROGRAM
  IMPORTS CBinary, MiscDefs, OutputDefs EXPORTS CompilerUtil, IODefs =PUBLIC
  
  BEGIN OPEN OutputDefs;
  
  TableSegment: PROCEDURE [tab: CompilerUtil.TableId]
    RETURNS [seg: SegmentDefs.FileSegmentHandle] =
    BEGIN
    table: ControlDefs.GlobalFrameHandle = LOOPHOLE[CBinary.DebugTab];
    IF tab # CompilerUtil.debug THEN ERROR;
    [seg, ] ← MiscDefs.DestroyFakeModule[table];
    RETURN
    END;
    
  WriteChar: PROCEDURE [c: CHARACTER] = BEGIN PutChar[c] END;
    
  WriteDecimal: PROCEDURE [i: INTEGER] = BEGIN PutDecimal[i] END;
    
  WriteOctal: PROCEDURE [u: UNSPECIFIED] = BEGIN PutOctal[u] END;
    
  WriteString: PROCEDURE [s: STRING] = BEGIN PutString[s] END;
    
  
  END..