uk.ac.man.cs.rainbow.rapa
Class VarDef

java.lang.Object
  |
  +--uk.ac.man.cs.rainbow.rapa.ProcessTerm
        |
        +--uk.ac.man.cs.rainbow.rapa.VarDef
All Implemented Interfaces:
Serializable

public class VarDef
extends ProcessTerm

RAPA variable binding construct. Used to delimit the part of the program where a variable is bound, which should be a channel synchronisation.

See Also:
Synch, Serialized Form

Constructor Summary
VarDef(Variable.Named var, Type type, ProcessTerm proc)
           
 
Method Summary
 boolean equals(Object o)
           
protected  GINRet getGCL(ProgramCounterFactory factory, int i, int n, int t, Value[] c)
          Get a (g,i,n) triple representing the GCL rules for this process term.
 ProcessTerm getProc()
           
protected  ProcessTerm getSequenceHead()
          Get the process term at the head of the sequence.
 Type getType()
           
 Variable getVar()
           
 ProcessTerm subst(GeneralSubstitution s)
          Apply a substitution to all arguments in the process term.
 ProcessTerm subst(Substitution s)
          Apply a substitution to all expressions in the process term.
 String toString()
           
 
Methods inherited from class uk.ac.man.cs.rainbow.rapa.ProcessTerm
getGCL, getGCL
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VarDef

public VarDef(Variable.Named var,
              Type type,
              ProcessTerm proc)
Method Detail

getVar

public Variable getVar()

getType

public Type getType()

getProc

public ProcessTerm getProc()

toString

public String toString()
Overrides:
toString in class ProcessTerm

equals

public boolean equals(Object o)
Overrides:
equals in class ProcessTerm

subst

public ProcessTerm subst(Substitution s)
Description copied from class: ProcessTerm
Apply a substitution to all expressions in the process term.
Overrides:
subst in class ProcessTerm

subst

public ProcessTerm subst(GeneralSubstitution s)
Description copied from class: ProcessTerm
Apply a substitution to all arguments in the process term.
Overrides:
subst in class ProcessTerm
Following copied from class: uk.ac.man.cs.rainbow.rapa.ProcessTerm
See Also:
Argument

getSequenceHead

protected ProcessTerm getSequenceHead()
Description copied from class: ProcessTerm
Get the process term at the head of the sequence. Note that it is necessary to recurse inside only some process terms to get this information. It all depends on exactly what sort of GCL rules are produced by the term itself...
Overrides:
getSequenceHead in class ProcessTerm

getGCL

protected GINRet getGCL(ProgramCounterFactory factory,
                        int i,
                        int n,
                        int t,
                        Value[] c)
Description copied from class: ProcessTerm
Get a (g,i,n) triple representing the GCL rules for this process term.
Overrides:
getGCL in class ProcessTerm
Following copied from class: uk.ac.man.cs.rainbow.rapa.ProcessTerm
Parameters:
factory - Generator for new program counters.
i - Current thread number.
n - Current PC value.
t - Terminating PC value (-1 for sequence and loop stitching, 0 for thread-end.)
c - Superthread context vector.