|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectsoot.javaToJimple.AbstractJimpleBodyBuilder
soot.javaToJimple.JimpleBodyBuilder
public class JimpleBodyBuilder
Field Summary | |
---|---|
protected List<List<Stmt>> |
afterReturn
|
protected List<List<Stmt>> |
beforeReturn
|
protected Stack<polyglot.ast.Try> |
catchStack
|
protected Stack<Stmt> |
condControlNoop
|
protected Stack<Stmt> |
endControlNoop
|
protected ArrayList<Trap> |
exceptionTable
|
protected Stack<Stmt> |
falseNoop
|
protected HashMap |
getThisMap
|
protected HashMap<String,Stmt> |
labelBreakMap
|
protected HashMap<String,Stmt> |
labelContinueMap
|
protected HashMap<polyglot.ast.Stmt,Stmt> |
labelMap
|
protected LocalGenerator |
lg
|
protected HashMap<polyglot.util.IdentityKey,Local> |
localsMap
|
protected Stack<Value> |
monitorStack
|
protected Local |
outerClassParamLocal
|
protected int |
paramRefCount
|
protected Local |
specialThisLocal
|
protected Stack<Stmt> |
trueNoop
|
protected Stack<polyglot.ast.Try> |
tryStack
|
Fields inherited from class soot.javaToJimple.AbstractJimpleBodyBuilder |
---|
body |
Constructor Summary | |
---|---|
JimpleBodyBuilder()
|
Method Summary | |
---|---|
protected Value |
createAggressiveExpr(polyglot.ast.Expr expr,
boolean reduceAggressively,
boolean reverseCondIfNec)
Aggressive Expression Creation make reduceAggressively true to not reduce all the way to a local |
Constant |
createConstant(polyglot.ast.Expr expr)
|
JimpleBody |
createJimpleBody(polyglot.ast.Block block,
List formals,
SootMethod sootMethod)
Jimple Body Creation |
protected Value |
createLHS(polyglot.ast.Expr expr)
create LHS expressions |
protected void |
createStmt(polyglot.ast.Stmt stmt)
Stmt creation |
protected Local |
generateLocal(polyglot.types.Type polyglotType)
Extra Local Variables Generation |
protected Local |
generateLocal(Type sootType)
|
protected Value |
getAssignLocal(polyglot.ast.Assign assign)
Assign Expression Creation |
protected Value |
getAssignRightLocal(polyglot.ast.Assign assign,
Local leftLocal)
|
protected Value |
getBaseLocal(polyglot.ast.Receiver receiver)
|
protected Constant |
getConstant(Type type,
int val)
Returns a needed constant given a type and val |
protected FieldRef |
getFieldRef(polyglot.ast.Field field)
creates a field ref |
protected Value |
getSimpleAssignRightLocal(polyglot.ast.Assign assign)
|
protected SootMethodRef |
getSootMethodRef(polyglot.ast.Call call)
|
protected Local |
getThis(Type sootType)
|
protected void |
handleFieldInits(ArrayList<polyglot.ast.FieldDecl> fieldInits)
|
protected Local |
handlePrivateFieldAssignSet(polyglot.ast.Assign assign)
|
protected Local |
handlePrivateFieldSet(polyglot.ast.Expr expr,
Value right,
Value base)
|
protected Local |
handlePrivateFieldUnarySet(polyglot.ast.Unary unary)
|
protected void |
handleStaticBlocks(ArrayList<polyglot.ast.Block> initializerBlocks)
|
protected boolean |
needsAccessor(polyglot.ast.Expr expr)
|
protected boolean |
needsAccessor(polyglot.types.MemberInstance inst)
needs accessors: when field or meth is private and in some other class when field or meth is protected and in |
protected boolean |
needsOuterClassRef(polyglot.types.ClassType typeToInvoke)
|
Methods inherited from class soot.javaToJimple.AbstractJimpleBodyBuilder |
---|
base, base, ext, ext |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected List<List<Stmt>> beforeReturn
protected List<List<Stmt>> afterReturn
protected ArrayList<Trap> exceptionTable
protected Stack<Stmt> endControlNoop
protected Stack<Stmt> condControlNoop
protected Stack<Value> monitorStack
protected Stack<polyglot.ast.Try> tryStack
protected Stack<polyglot.ast.Try> catchStack
protected Stack<Stmt> trueNoop
protected Stack<Stmt> falseNoop
protected HashMap<String,Stmt> labelBreakMap
protected HashMap<String,Stmt> labelContinueMap
protected HashMap<polyglot.ast.Stmt,Stmt> labelMap
protected HashMap<polyglot.util.IdentityKey,Local> localsMap
protected HashMap getThisMap
protected Local specialThisLocal
protected Local outerClassParamLocal
protected int paramRefCount
protected LocalGenerator lg
Constructor Detail |
---|
public JimpleBodyBuilder()
Method Detail |
---|
public JimpleBody createJimpleBody(polyglot.ast.Block block, List formals, SootMethod sootMethod)
createJimpleBody
in class AbstractJimpleBodyBuilder
protected void handleFieldInits(ArrayList<polyglot.ast.FieldDecl> fieldInits)
protected void handleStaticBlocks(ArrayList<polyglot.ast.Block> initializerBlocks)
protected void createStmt(polyglot.ast.Stmt stmt)
createStmt
in class AbstractJimpleBodyBuilder
public Constant createConstant(polyglot.ast.Expr expr)
protected Value createAggressiveExpr(polyglot.ast.Expr expr, boolean reduceAggressively, boolean reverseCondIfNec)
createAggressiveExpr
in class AbstractJimpleBodyBuilder
protected Local handlePrivateFieldUnarySet(polyglot.ast.Unary unary)
handlePrivateFieldUnarySet
in class AbstractJimpleBodyBuilder
protected Local handlePrivateFieldAssignSet(polyglot.ast.Assign assign)
handlePrivateFieldAssignSet
in class AbstractJimpleBodyBuilder
protected Local handlePrivateFieldSet(polyglot.ast.Expr expr, Value right, Value base)
handlePrivateFieldSet
in class AbstractJimpleBodyBuilder
protected Value getAssignRightLocal(polyglot.ast.Assign assign, Local leftLocal)
getAssignRightLocal
in class AbstractJimpleBodyBuilder
protected Value getSimpleAssignRightLocal(polyglot.ast.Assign assign)
getSimpleAssignRightLocal
in class AbstractJimpleBodyBuilder
protected Value getAssignLocal(polyglot.ast.Assign assign)
protected boolean needsAccessor(polyglot.ast.Expr expr)
needsAccessor
in class AbstractJimpleBodyBuilder
protected boolean needsAccessor(polyglot.types.MemberInstance inst)
protected FieldRef getFieldRef(polyglot.ast.Field field)
getFieldRef
in class AbstractJimpleBodyBuilder
protected Constant getConstant(Type type, int val)
getConstant
in class AbstractJimpleBodyBuilder
protected Local getThis(Type sootType)
getThis
in class AbstractJimpleBodyBuilder
protected boolean needsOuterClassRef(polyglot.types.ClassType typeToInvoke)
protected SootMethodRef getSootMethodRef(polyglot.ast.Call call)
getSootMethodRef
in class AbstractJimpleBodyBuilder
protected Value getBaseLocal(polyglot.ast.Receiver receiver)
getBaseLocal
in class AbstractJimpleBodyBuilder
protected Value createLHS(polyglot.ast.Expr expr)
createLHS
in class AbstractJimpleBodyBuilder
protected Local generateLocal(polyglot.types.Type polyglotType)
generateLocal
in class AbstractJimpleBodyBuilder
protected Local generateLocal(Type sootType)
generateLocal
in class AbstractJimpleBodyBuilder
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |