toolbus.process
Class Iteration
java.lang.Object
  
toolbus.process.ProcessExpression
      
toolbus.process.Iteration
public class Iteration
- extends ProcessExpression
 
Iteration implements the process expression P1 * P2. The current implementation does not handle
 the following case correctly: if Test1 then P1 * if Test2 then A . B . C fi else ... fi Problem:
 Test1 will be attached to A, but the first iteration of P1 may have modified local variables in
 such a way that Test1 has become false. We solve this in TscriptParser by prefixing every
 iteration with an extra tau so the test is always executed in an unmodified environment. So the
 above example becomes: if Test1 then tau. P1 * if Test2 then A . B . C fi else ... fi and Test1
 will be attached to tau (and is guaranteed to be still true when this branch is taken).
 
 
 
 
 
| Methods inherited from class java.lang.Object | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | 
 
left
private final ProcessExpression left
right
private final ProcessExpression right
Iteration
public Iteration(ProcessExpression left,
                 ProcessExpression right,
                 TBTermFactory tbfactory,
                 PositionInformation posInfo)
copy
protected ProcessExpression copy()
- Specified by:
 copy in class ProcessExpression
 
 
toString
public java.lang.String toString()
- Overrides:
 toString in class java.lang.Object
 
 
computeFirst
protected void computeFirst()
- Specified by:
 computeFirst in class ProcessExpression
 
 
compile
protected void compile(ProcessInstance P,
                       java.util.Stack<java.lang.String> calls,
                       State follow)
                throws ToolBusException
- Specified by:
 compile in class ProcessExpression
 
- Throws:
 ToolBusException
 
replaceFormals
protected void replaceFormals(Environment env)
                       throws ToolBusException
- Specified by:
 replaceFormals in class ProcessExpression
 
- Throws:
 ToolBusException
 
getAtoms
public AtomList getAtoms()
- Specified by:
 getAtoms in class ProcessExpression