coins.backend.gen
Class Rule

java.lang.Object
  extended bycoins.backend.gen.Rule

class Rule
extends java.lang.Object

Production rule body.


Field Summary
(package private)  ImList clobber
          Clobber list
(package private)  ImList code
          Object code in S-expression
(package private)  java.lang.String def
          Visible form of production
(package private)  long eqregs
          Register equation.
(package private)  boolean hasDelaySlot
          Has delay slot.
(package private)  int id
          Produciton rule number
(package private)  boolean isChain
          Chain rule flag
(package private)  boolean isDerived
          Derived rule flag
(package private)  int lhs
          Left hand side nonterminal
(package private)  java.lang.String[] regsets
          Register set name for each nonterminal.
(package private)  int[] subgoals
          Nonterminals appear in right hand side (not including ones in subrules).
(package private)  boolean useAfterDef
          Use after def flag.
(package private)  ImList value
          Value code in S-expression
 
Constructor Summary
(package private) Rule(int id, boolean isChain, boolean isDerived, int lhs, java.lang.String def, ImList code, ImList value, ImList clobber, long eqregs, boolean useAfterDef, boolean hasDelaySlot, int[] subgoals, java.lang.String[] regsets)
          Create Rule object.
 
Method Summary
 java.lang.String toString()
          Visualize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

id

final int id
Produciton rule number


def

final java.lang.String def
Visible form of production


code

final ImList code
Object code in S-expression


value

final ImList value
Value code in S-expression


clobber

final ImList clobber
Clobber list


isChain

final boolean isChain
Chain rule flag


isDerived

final boolean isDerived
Derived rule flag


lhs

final int lhs
Left hand side nonterminal


subgoals

final int[] subgoals
Nonterminals appear in right hand side (not including ones in subrules).


regsets

final java.lang.String[] regsets
Register set name for each nonterminal. (including ones in subrules). regset[0] is for lhs.


eqregs

final long eqregs
Register equation. Assign $n to same register as $0 if (((eqregs >> n) & 1) == 1).


useAfterDef

final boolean useAfterDef
Use after def flag.


hasDelaySlot

final boolean hasDelaySlot
Has delay slot.

Constructor Detail

Rule

Rule(int id,
     boolean isChain,
     boolean isDerived,
     int lhs,
     java.lang.String def,
     ImList code,
     ImList value,
     ImList clobber,
     long eqregs,
     boolean useAfterDef,
     boolean hasDelaySlot,
     int[] subgoals,
     java.lang.String[] regsets)
Create Rule object.

Method Detail

toString

public java.lang.String toString()
Visualize