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