home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d5xx / d512 / m2pascal.lha / M2Pascal / src / errors.mod < prev    next >
Text File  |  1991-07-20  |  4KB  |  136 lines

  1. IMPLEMENTATION  MODULE errors;
  2.  
  3.  
  4.  
  5.  
  6. (*
  7.    by : Greg Mumm
  8.  
  9. *)
  10.  
  11. FROM InOut      IMPORT WriteString, WriteCard;
  12.  
  13. FROM Heap       IMPORT FreeHeap;
  14.  
  15. FROM scan       IMPORT CloseAllFiles,  STRING, NameString;
  16.  
  17. FROM FileSystem IMPORT File, Close;
  18.  
  19.  
  20. PROCEDURE PrintMessage ( message : ErrorType );
  21. BEGIN
  22.      CASE message OF 
  23.             FileError               :   
  24.                        WriteString("File Error");
  25.                                     |
  26.             Scan_DataPastEndOfLine  :
  27.                        WriteString("Data encountered past the last column"); 
  28.                                     |
  29.             FileClose               :
  30.                        WriteString("Error while attempting to close file");
  31.                                     |
  32.             FileNotOpened           :
  33.                        WriteString("File not opened");
  34.                                     |
  35.             OutOfMemory             :
  36.                        WriteString("Out of memory");
  37.                                     |
  38.             MultipleModule          :
  39.                        WriteString("Sorry, modules within source code not");
  40.                        WriteString(" allowed in this version");
  41.                                     |
  42.             UserHalt                :
  43.                        WriteString("^C -> user halted execution");
  44.                                     |
  45.             CliHelp                 :
  46.                        WriteString("m2pascal  source[.mod] [object[.p]]");
  47.                                     |
  48.             WorkBench               :
  49.                        WriteString("Sorry, this version of m2pascal cannot");
  50.                        WriteString(" be executed from workbench.");
  51.                                     |
  52.             NoProgramName           :
  53.                        WriteString("There's no program name!");
  54.                                     |
  55.             NoSupportDEFINITION     :
  56.                        WriteString("Can't translate definition module");
  57.                                     |
  58.             NoSupportIMPLEMENTATION :
  59.                        WriteString("Can't translate implementation module");
  60.                                     |
  61.             NoSupportFiles          :
  62.                        WriteString("File manipulation unsupported ");
  63.                        WriteString("in this version");
  64.                                     |
  65.             NoSupportGeneric        :
  66.                        WriteString("Unsupported feature detected");
  67.                                     |
  68.             WriteStatement          :
  69.                        WriteString("Error in a Write statement");
  70.                                     |
  71.             UndeterminedProcedure   :
  72.                        WriteString("Unsure if this is a procedure or ");
  73.                        WriteString("function. Not enough look-ahead spc");
  74.                                     | 
  75.      ELSE
  76.             WriteString("ErrorMessage not documented yet");
  77.      END;
  78.      WriteString("\n");
  79. END PrintMessage;
  80.  
  81.  
  82.  
  83.  
  84. PROCEDURE ErrorMessage ( message : ErrorType );
  85. BEGIN
  86.    WriteString(" ");    (* keep away from line numbers on left *)
  87.    PrintMessage ( message );
  88. END ErrorMessage;
  89.  
  90.  (* Line number are ALREADY on the screen at the left ( don't
  91.     re-print them here. ( update for new version )
  92.   *)
  93. PROCEDURE ErrorFileMessage ( message : ErrorType;
  94.                              name    : NameString;
  95.                              line    : CARDINAL   );
  96. BEGIN
  97.    WriteString ("Error in FILE : "); WriteString ( name ); WriteString ("  ->");
  98.    PrintMessage ( message );
  99. END ErrorFileMessage;
  100.  
  101.  
  102.  
  103.  
  104. PROCEDURE FatalError   ( message : ErrorType );
  105. BEGIN
  106.    WriteString("\n\n");
  107.    PrintMessage ( message );
  108.    WriteString("\n\n");
  109.  
  110.    CloseAllFiles;
  111.  
  112.    FreeHeap;   (* free up ALL memory allocated *)
  113.  
  114.    HALT;
  115. END FatalError;
  116.  
  117.  
  118.  
  119. PROCEDURE internal ( AlertString : STRING );
  120. BEGIN
  121.     WriteString(" * INTERNAL ERROR! *   =>");
  122.     WriteString( AlertString ); WriteString("\n");
  123.     CleanUp();
  124.     HALT;
  125. END internal;
  126.  
  127.  
  128. PROCEDURE CleanUp ();
  129. BEGIN
  130.     CloseAllFiles;    (* Close Any Files That Are Left Opened *)
  131.     FreeHeap;
  132. END CleanUp;
  133.  
  134. BEGIN
  135. END errors.
  136.