Class DeadCodeRemoval
- java.lang.Object
-
- org.apache.sling.scripting.sightly.impl.compiler.visitor.UniformVisitor
-
- org.apache.sling.scripting.sightly.impl.compiler.visitor.TrackingVisitor<Boolean>
-
- org.apache.sling.scripting.sightly.impl.compiler.optimization.DeadCodeRemoval
-
- All Implemented Interfaces:
CommandVisitor,EmitterVisitor
public class DeadCodeRemoval extends TrackingVisitor<Boolean> implements EmitterVisitor
Removes code under conditionals which are proven to fail. It is probably a good idea to run this optimization after runningConstantFolding
-
-
Field Summary
-
Fields inherited from class org.apache.sling.scripting.sightly.impl.compiler.visitor.TrackingVisitor
tracker
-
-
Constructor Summary
Constructors Constructor Description DeadCodeRemoval(StatefulVisitor.StateControl stateControl)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected BooleanassignDefault(Command command)PushStreamgetOutputStream()Get the output streamprotected voidonCommand(Command command)static StreamTransformertransformer()voidvisit(Conditional.End conditionalEnd)Process aConditional.Endcommand.voidvisit(Conditional.Start conditionalStart)Process aConditional.Startcommand.voidvisit(VariableBinding.Start variableBindingStart)Process aVariableBinding.Startcommand.-
Methods inherited from class org.apache.sling.scripting.sightly.impl.compiler.visitor.TrackingVisitor
visit, visit, visit
-
Methods inherited from class org.apache.sling.scripting.sightly.impl.compiler.visitor.UniformVisitor
visit, visit, visit, visit, visit, visit
-
-
-
-
Constructor Detail
-
DeadCodeRemoval
public DeadCodeRemoval(StatefulVisitor.StateControl stateControl)
-
-
Method Detail
-
transformer
public static StreamTransformer transformer()
-
visit
public void visit(VariableBinding.Start variableBindingStart)
Description copied from interface:CommandVisitorProcess aVariableBinding.Startcommand.- Specified by:
visitin interfaceCommandVisitor- Overrides:
visitin classTrackingVisitor<Boolean>- Parameters:
variableBindingStart- the command
-
visit
public void visit(Conditional.Start conditionalStart)
Description copied from interface:CommandVisitorProcess aConditional.Startcommand.- Specified by:
visitin interfaceCommandVisitor- Overrides:
visitin classUniformVisitor- Parameters:
conditionalStart- the command
-
visit
public void visit(Conditional.End conditionalEnd)
Description copied from interface:CommandVisitorProcess aConditional.Endcommand.- Specified by:
visitin interfaceCommandVisitor- Overrides:
visitin classUniformVisitor- Parameters:
conditionalEnd- the command
-
getOutputStream
public PushStream getOutputStream()
Description copied from interface:EmitterVisitorGet the output stream- Specified by:
getOutputStreamin interfaceEmitterVisitor- Returns:
- the output stream of this visitor
-
assignDefault
protected Boolean assignDefault(Command command)
- Specified by:
assignDefaultin classTrackingVisitor<Boolean>
-
onCommand
protected void onCommand(Command command)
- Specified by:
onCommandin classUniformVisitor
-
-