avrora.core.isdl.gen
Class ConstantPropagator
java.lang.Object
avrora.core.isdl.ast.CodeRebuilder.DepthFirst
avrora.core.isdl.ast.StmtRebuilder.DepthFirst
avrora.core.isdl.gen.ConstantPropagator
- All Implemented Interfaces:
- CodeRebuilder, StmtRebuilder
- public class ConstantPropagator
- extends StmtRebuilder.DepthFirst
Method Summary |
ConstantPropagator.ConstantEnvironment |
createEnvironment()
|
java.util.LinkedList |
process(java.util.LinkedList stmts)
|
Expr |
visit(Arith.AddExpr e,
java.lang.Object env)
|
Expr |
visit(Arith.AndExpr e,
java.lang.Object env)
|
Expr |
visit(Arith.CompExpr e,
java.lang.Object env)
|
Expr |
visit(Arith.DivExpr e,
java.lang.Object env)
|
Expr |
visit(Arith.MulExpr e,
java.lang.Object env)
|
Expr |
visit(Arith.NegExpr e,
java.lang.Object env)
|
Expr |
visit(Arith.OrExpr e,
java.lang.Object env)
|
Expr |
visit(Arith.ShiftLeftExpr e,
java.lang.Object env)
|
Expr |
visit(Arith.ShiftRightExpr e,
java.lang.Object env)
|
Expr |
visit(Arith.SubExpr e,
java.lang.Object env)
|
Expr |
visit(Arith.XorExpr e,
java.lang.Object env)
|
Expr |
visit(BitExpr e,
java.lang.Object env)
|
Expr |
visit(BitRangeExpr e,
java.lang.Object env)
|
Stmt |
visit(DeclStmt s,
java.lang.Object env)
|
Expr |
visit(Literal.BoolExpr e,
java.lang.Object env)
|
Expr |
visit(Literal.IntExpr e,
java.lang.Object env)
|
Expr |
visit(Logical.AndExpr e,
java.lang.Object env)
|
Expr |
visit(Logical.EquExpr e,
java.lang.Object env)
|
Expr |
visit(Logical.GreaterEquExpr e,
java.lang.Object env)
|
Expr |
visit(Logical.GreaterExpr e,
java.lang.Object env)
|
Expr |
visit(Logical.LessEquExpr e,
java.lang.Object env)
|
Expr |
visit(Logical.LessExpr e,
java.lang.Object env)
|
Expr |
visit(Logical.NequExpr e,
java.lang.Object env)
|
Expr |
visit(Logical.NotExpr e,
java.lang.Object env)
|
Expr |
visit(Logical.OrExpr e,
java.lang.Object env)
|
Expr |
visit(Logical.XorExpr e,
java.lang.Object env)
|
Stmt |
visit(MapAssignStmt s,
java.lang.Object env)
|
Expr |
visit(MapExpr e,
java.lang.Object env)
|
Stmt |
visit(VarAssignStmt s,
java.lang.Object env)
|
Stmt |
visit(VarBitAssignStmt s,
java.lang.Object env)
|
Stmt |
visit(VarBitRangeAssignStmt s,
java.lang.Object env)
|
Expr |
visit(VarExpr e,
java.lang.Object env)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ZERO
protected static Literal.IntExpr ZERO
ONE
protected static Literal.IntExpr ONE
TRUE
protected static Literal.BoolExpr TRUE
FALSE
protected static Literal.BoolExpr FALSE
trackedMaps
protected static java.util.HashSet trackedMaps
ConstantPropagator
public ConstantPropagator()
createEnvironment
public ConstantPropagator.ConstantEnvironment createEnvironment()
process
public java.util.LinkedList process(java.util.LinkedList stmts)
visit
public Stmt visit(DeclStmt s,
java.lang.Object env)
- Specified by:
visit
in interface StmtRebuilder
- Overrides:
visit
in class StmtRebuilder.DepthFirst
visit
public Stmt visit(VarAssignStmt s,
java.lang.Object env)
- Specified by:
visit
in interface StmtRebuilder
- Overrides:
visit
in class StmtRebuilder.DepthFirst
visit
public Stmt visit(VarBitRangeAssignStmt s,
java.lang.Object env)
- Specified by:
visit
in interface StmtRebuilder
- Overrides:
visit
in class StmtRebuilder.DepthFirst
visit
public Stmt visit(VarBitAssignStmt s,
java.lang.Object env)
- Specified by:
visit
in interface StmtRebuilder
- Overrides:
visit
in class StmtRebuilder.DepthFirst
visit
public Stmt visit(MapAssignStmt s,
java.lang.Object env)
- Specified by:
visit
in interface StmtRebuilder
- Overrides:
visit
in class StmtRebuilder.DepthFirst
visit
public Expr visit(VarExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(BitExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(BitRangeExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Arith.AddExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Arith.AndExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Arith.CompExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Arith.DivExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Arith.MulExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Arith.NegExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Arith.OrExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Arith.ShiftLeftExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Arith.ShiftRightExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Arith.SubExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Arith.XorExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Literal.BoolExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Literal.IntExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Logical.AndExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Logical.EquExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Logical.GreaterEquExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Logical.GreaterExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Logical.LessEquExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Logical.LessExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Logical.NequExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Logical.NotExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Logical.OrExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(Logical.XorExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst
visit
public Expr visit(MapExpr e,
java.lang.Object env)
- Specified by:
visit
in interface CodeRebuilder
- Overrides:
visit
in class CodeRebuilder.DepthFirst