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 Boolean
assignDefault(Command command)
PushStream
getOutputStream()
Get the output streamprotected void
onCommand(Command command)
static StreamTransformer
transformer()
void
visit(Conditional.End conditionalEnd)
Process aConditional.End
command.void
visit(Conditional.Start conditionalStart)
Process aConditional.Start
command.void
visit(VariableBinding.Start variableBindingStart)
Process aVariableBinding.Start
command.-
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:CommandVisitor
Process aVariableBinding.Start
command.- Specified by:
visit
in interfaceCommandVisitor
- Overrides:
visit
in classTrackingVisitor<Boolean>
- Parameters:
variableBindingStart
- the command
-
visit
public void visit(Conditional.Start conditionalStart)
Description copied from interface:CommandVisitor
Process aConditional.Start
command.- Specified by:
visit
in interfaceCommandVisitor
- Overrides:
visit
in classUniformVisitor
- Parameters:
conditionalStart
- the command
-
visit
public void visit(Conditional.End conditionalEnd)
Description copied from interface:CommandVisitor
Process aConditional.End
command.- Specified by:
visit
in interfaceCommandVisitor
- Overrides:
visit
in classUniformVisitor
- Parameters:
conditionalEnd
- the command
-
getOutputStream
public PushStream getOutputStream()
Description copied from interface:EmitterVisitor
Get the output stream- Specified by:
getOutputStream
in interfaceEmitterVisitor
- Returns:
- the output stream of this visitor
-
assignDefault
protected Boolean assignDefault(Command command)
- Specified by:
assignDefault
in classTrackingVisitor<Boolean>
-
onCommand
protected void onCommand(Command command)
- Specified by:
onCommand
in classUniformVisitor
-
-