home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / MacMETH 3.2.1 / Sources / MacC2.6 / M2CM.DEF < prev    next >
Encoding:
Modula Definition  |  1992-05-29  |  1.7 KB  |  46 lines  |  [TEXT/MEDT]

  1. DEFINITION MODULE M2CM; (* HS 19.4.85; WH 9.5.85 *)
  2.  
  3.  
  4.   FROM M2DM IMPORT ObjPtr, ParPtr;
  5.   FROM M2HM IMPORT Item;
  6.  
  7.   CONST MaxExit = 15;  (* number of EXITs-1 per block *)
  8.  
  9.   TYPE LabelRange = RECORD low, high: INTEGER; label: CARDINAL END;
  10.        ExitTable  = ARRAY [0..MaxExit] OF CARDINAL;
  11.  
  12.   VAR curPrio: CARDINAL;
  13.  
  14.   PROCEDURE GenAssign(VAR x, y: Item);
  15.  
  16.   PROCEDURE GenFJ(VAR loc: CARDINAL);  (* forward jump; loc := pc *)
  17.   PROCEDURE GenCFJ(VAR x: Item; VAR loc: CARDINAL);
  18.   PROCEDURE GenBJ(loc: CARDINAL);      (* backward jump to loc *)
  19.   PROCEDURE GenCBJ(VAR x: Item; loc: CARDINAL);
  20.  
  21.   PROCEDURE PrepCall(VAR x: Item; VAR fp: ParPtr; VAR regs: LONGINT);
  22.   PROCEDURE GenParam(VAR ap: Item; f: ParPtr);
  23.   PROCEDURE GenCall(VAR x: Item; regs: LONGINT);
  24.   PROCEDURE GenEnter(VAR l: CARDINAL; lev: CARDINAL);
  25.   PROCEDURE GenResult(VAR x: Item; proc: ObjPtr; VAR l: CARDINAL);
  26.   PROCEDURE GenReturn(proc: ObjPtr; l: CARDINAL);
  27.  
  28.   PROCEDURE GenCase1(VAR x: Item; VAR l0: CARDINAL);
  29.   PROCEDURE GenCase2;
  30.   PROCEDURE GenCase3(VAR x: Item; l0, l1, n: CARDINAL;
  31.                      VAR tab: ARRAY OF LabelRange);
  32.  
  33.   PROCEDURE GenFor1(v: Item; VAR e1: Item);
  34.   PROCEDURE GenFor2(v: Item; VAR e1, e2: Item);
  35.   PROCEDURE GenFor3(v: Item; VAR e2, e3: Item; VAR l0, l1: CARDINAL);
  36.   PROCEDURE GenFor4(v: Item; VAR e2, e3: Item; l0, l1: CARDINAL);
  37.  
  38.   PROCEDURE GenLoop1(VAR s, m: CARDINAL; n: CARDINAL);
  39.   PROCEDURE GenLoop2(s, m: CARDINAL; VAR n: CARDINAL; VAR tab: ExitTable);
  40.   PROCEDURE GenExit(VAR n: CARDINAL; VAR tab: ExitTable);
  41.  
  42.   PROCEDURE GenEnterMod(modList: ObjPtr; mno, pno: CARDINAL);
  43.   PROCEDURE GenExitMod;
  44.  
  45. END M2CM. (* Copyright Departement Informatik, ETH Zuerich, Switzerland, 1992 *)
  46.