uk.ac.man.cs.rainbow.rapa
Class ProcessTerm
java.lang.Object
|
+--uk.ac.man.cs.rainbow.rapa.ProcessTerm
- All Implemented Interfaces:
- Serializable
- Direct Known Subclasses:
- Alpha, Assign, Call, Choice, Guard, Hide, Loop, Out, Parallel, RegDef, Sequence, Skip, Synch, VarDef, Zero
- public abstract class ProcessTerm
- extends Object
- implements Serializable
RAPA process term superclass.
- See Also:
- Serialized Form
ProcessTerm
public ProcessTerm()
equals
public abstract boolean equals(Object o)
- Overrides:
equals
in class Object
toString
public String toString()
- Overrides:
toString
in class Object
subst
public abstract ProcessTerm subst(Substitution s)
- Apply a substitution to all expressions in the process term.
subst
public abstract ProcessTerm subst(GeneralSubstitution s)
- Apply a substitution to all arguments in the process term.
- See Also:
Argument
getSequenceHead
protected ProcessTerm getSequenceHead()
- 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...
getGCL
protected abstract 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.
- 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.
getGCL
public Rules getGCL(boolean selfContained)
- Get the GCL rules for this process term.
- Parameters:
selfContained
- Indicates whether to strip rules whose actions contain
variables; should be true when processing closed RAPA
programs, and false when processing RAPA fragments.- See Also:
Rules.expand(boolean)
getGCL
public Rules getGCL()
- Get the GCL rules for this process term. Assumes that this
process term represents a complete program with no external
channels.