avrora.core.isdl.gen
Class ConstantPropagator

java.lang.Object
  extended byavrora.core.isdl.ast.CodeRebuilder.DepthFirst
      extended byavrora.core.isdl.ast.StmtRebuilder.DepthFirst
          extended byavrora.core.isdl.gen.ConstantPropagator
All Implemented Interfaces:
CodeRebuilder, StmtRebuilder

public class ConstantPropagator
extends StmtRebuilder.DepthFirst


Nested Class Summary
 class ConstantPropagator.ConstantEnvironment
           
 
Nested classes inherited from class avrora.core.isdl.ast.StmtRebuilder
StmtRebuilder.DepthFirst
 
Field Summary
protected static Literal.BoolExpr FALSE
           
protected static Literal.IntExpr ONE
           
protected static java.util.HashSet trackedMaps
           
protected static Literal.BoolExpr TRUE
           
protected static Literal.IntExpr ZERO
           
 
Constructor Summary
ConstantPropagator()
           
 
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 avrora.core.isdl.ast.StmtRebuilder.DepthFirst
addStmt, visit, visit, visit, visit, visit, visit, visitStmtList, visitStmts
 
Methods inherited from class avrora.core.isdl.ast.CodeRebuilder.DepthFirst
visit, visit, visitExprList
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface avrora.core.isdl.ast.CodeRebuilder
visit, visit
 

Field Detail

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
Constructor Detail

ConstantPropagator

public ConstantPropagator()
Method Detail

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