  (**************************************************************) 
  (*   This module was generated by BEG V1.84        *)
  (*        GMD Forschunsstelle an der Universitaet Karlsruhe   *)
  (*        Vincenz-Priessnitz-Str. 1 76131 Karlsruhe Germany   *)
  (**************************************************************)
 DEFINITION MODULE GcgTab;
 FROM IR IMPORT Register, RegisterSet, Rule, MaxPscArity, NonTerminal, MaxScratch;
 FROM IR      IMPORT OpCode;


 TYPE     

   Path        = CARDINAL;

   RegKind     = (RKRegister, RKAdrmode, RKMemory, RKCalc);

   RuleDescrRec   =  RECORD
      register   : RegKind;
      pscarity   : [0..MaxPscArity];
      resregs    : RegisterSet;
      changeregs : RegisterSet;
      target     : [0..MaxPscArity];
      closuretarget : BOOLEAN;
      result     : [0..MaxPscArity];
      unique     : BOOLEAN;
      commutative: BOOLEAN;
      op         : ARRAY [1..MaxPscArity] OF RECORD
        nt       : NonTerminal;
        path     : Path;
        calc     : BOOLEAN;   (* he 3/91 *)
        regs     : RegisterSet;
      END;
      srcline    : CARDINAL;
      scrnum     : [0..MaxScratch];
      scrrs      : ARRAY [1..MaxScratch] OF RegisterSet;
   END;



   VAR
     RegDestroy   :  ARRAY Register OF RegisterSet;
     (* Constant, RegDestroy [r] contains the registers, which *)
     (* are destroyed, if r is altered                         *)
     
     RuleDescr    :  ARRAY Rule   OF RuleDescrRec;
     (* Constant, contains a description of all rules or       *)
     (* pseudo code statements                                 *)



 END GcgTab.
