tom.library.sl
Class All

java.lang.Object
  extended by tom.library.sl.AbstractStrategy
      extended by tom.library.sl.AbstractStrategyCombinator
          extended by tom.library.sl.All
All Implemented Interfaces:
Strategy, Visitable

public class All
extends AbstractStrategyCombinator

Strategy combinator with one strategy argument s, that applies this strategy s to all children. If there exists one child for which the strategy s fails, All(s) fails. Applying All combinator to a constant always succeeds and behaves like the Identity() strategy.

All(s)[f(t1,...,tn)]=f(t1',...,tn') if s[t1]=t1', ..., s[tn]=tn'

fails if there exists i such that s[ti] fails.

All(s)[c]=c is c is a constant

Note that this All is parallel in the sense that s is applied to every child before changing the current subject. If you are interested in a sequential behaviour, AllSeq


Field Summary
static int ARG
           
 
Fields inherited from class tom.library.sl.AbstractStrategyCombinator
arguments
 
Fields inherited from class tom.library.sl.AbstractStrategy
environment
 
Constructor Summary
All(Strategy v)
           
 
Method Summary
 int visit(Introspector introspector)
          Visit the current subject (found in the environment) and place its result in the environment.
<T> T
visitLight(T any, Introspector introspector)
          Visit the subject any without managing any environment
 
Methods inherited from class tom.library.sl.AbstractStrategyCombinator
getChildAt, getChildCount, getChildren, getVisitor, getVisitors, initSubterm, initSubterm, initSubterm, initSubterm, initSubterm, setChildAt, setChildren
 
Methods inherited from class tom.library.sl.AbstractStrategy
getAncestor, getEnvironment, getPosition, getRoot, getSubject, init, init, setEnvironment, setRoot, setSubject, visit, visit, visit, visit, visitLight
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ARG

public static final int ARG
See Also:
Constant Field Values
Constructor Detail

All

public All(Strategy v)
Method Detail

visitLight

public final <T> T visitLight(T any,
                              Introspector introspector)
                   throws VisitFailure
Visit the subject any without managing any environment

Parameters:
any - the subject to visit
introspector - the introspector
Returns:
a Visitable
Throws:
VisitFailure - if visitLight fails

visit

public int visit(Introspector introspector)
Visit the current subject (found in the environment) and place its result in the environment. Sets the environment flag to Environment.FAILURE in case of failure

Parameters:
introspector - the introspector
Returns:
0 if success