com.ibm.wala.cast.js.translator
Class JSAstTranslator
java.lang.Object
com.ibm.wala.cast.tree.visit.CAstVisitor
com.ibm.wala.cast.ir.translator.AstTranslator
com.ibm.wala.cast.js.translator.JSAstTranslator
public class JSAstTranslator
- extends AstTranslator
| Fields inherited from class com.ibm.wala.cast.ir.translator.AstTranslator |
DEBUG_ALL, DEBUG_CFG, DEBUG_LEXICAL, DEBUG_NAMES, DEBUG_TOP, loader, TYPE_FUNCTION, TYPE_GLOBAL, TYPE_LOCAL, TYPE_SCRIPT, TYPE_TYPE |
|
Method Summary |
protected java.lang.String |
composeEntityName(AstTranslator.WalkContext parent,
CAstEntity f)
|
protected void |
declareFunction(CAstEntity N,
AstTranslator.WalkContext context)
|
protected TypeReference |
defaultCatchType()
|
protected void |
defineField(CAstEntity topEntity,
AstTranslator.WalkContext wc,
CAstEntity n)
|
protected void |
defineFunction(CAstEntity N,
AstTranslator.WalkContext definingContext,
AbstractCFG cfg,
SymbolTable symtab,
boolean hasCatchBlock,
TypeReference[][] caughtTypes,
AstMethod.LexicalInformation LI,
AstMethod.DebuggingInformation debugInfo)
|
protected void |
defineType(CAstEntity type,
AstTranslator.WalkContext wc)
|
protected void |
doArrayRead(AstTranslator.WalkContext context,
int result,
int arrayValue,
CAstNode arrayRef,
int[] dimValues)
|
protected void |
doArrayWrite(AstTranslator.WalkContext context,
int arrayValue,
CAstNode arrayRef,
int[] dimValues,
int rval)
|
protected void |
doCall(AstTranslator.WalkContext context,
CAstNode call,
int result,
int exception,
CAstNode name,
int receiver,
int[] arguments)
|
protected void |
doFieldRead(AstTranslator.WalkContext context,
int result,
int receiver,
CAstNode elt,
CAstNode parent)
|
protected void |
doFieldWrite(AstTranslator.WalkContext context,
int receiver,
CAstNode elt,
CAstNode parent,
int rval)
|
protected void |
doIsFieldDefined(AstTranslator.WalkContext context,
int result,
int ref,
CAstNode f)
|
protected void |
doMaterializeFunction(AstTranslator.WalkContext context,
int result,
int exception,
CAstEntity fn)
|
protected void |
doNewObject(AstTranslator.WalkContext context,
CAstNode newNode,
int result,
java.lang.Object type,
int[] arguments)
|
protected void |
doPrimitive(int resultVal,
AstTranslator.WalkContext context,
CAstNode primitiveCall)
|
protected void |
doPrologue(AstTranslator.WalkContext context)
|
protected void |
doThrow(AstTranslator.WalkContext context,
int exception)
|
protected boolean |
doVisit(CAstNode n,
CAstVisitor.Context cntxt,
CAstVisitor visitor)
Node processing hook; sub-classes are expected to override if they
introduce new node types. |
protected boolean |
hasImplicitGlobals()
If this returns true, new global declarations get created for any attempt
to access a non-existent variable (believe it or not, JavaScript actually
does this!) |
protected TypeReference |
makeType(CAstType type)
|
protected boolean |
treatGlobalsAsLexicallyScoped()
|
protected boolean |
useDefaultInitValues()
|
protected boolean |
useLocalValuesForLexicalVars()
|
| Methods inherited from class com.ibm.wala.cast.ir.translator.AstTranslator |
closeFunctionEntity, doGlobalRead, doGlobalWrite, doLexicallyScopedRead, doLexicallyScopedWrite, doLocalRead, doLocalWrite, enterEntity, enterNode, getGlobalScope, getTypeForNode, getValue, handleUnspecifiedLiteralKey, hasSpecialUndeclaredVariables, hasValue, initFunctionEntity, isExceptionLabel, leaveArrayLength, leaveArrayLiteral, leaveArrayLiteralInitElement, leaveArrayLiteralObject, leaveArrayRef, leaveArrayRefAssign, leaveArrayRefAssignOp, leaveAssert, leaveAssign, leaveBinaryExpr, leaveBlockExpr, leaveBlockExprAssign, leaveBlockExprAssignOp, leaveBlockStmt, leaveCall, leaveCatch, leaveConstant, leaveDeclStmt, leaveEachElementGet, leaveEachElementHasNext, leaveEmpty, leaveFieldEntity, leaveFileEntity, leaveFunctionEntity, leaveFunctionExpr, leaveFunctionStmt, leaveGetCaughtException, leaveGoto, leaveIfExpr, leaveIfExprCondition, leaveIfExprTrueClause, leaveIfgoto, leaveIfStmt, leaveIfStmtCondition, leaveIfStmtTrueClause, leaveIsDefinedExpr, leaveLabelStmt, leaveLocalScope, leaveLoop, leaveLoopHeader, leaveNew, leaveObjectLiteral, leaveObjectLiteralFieldInit, leaveObjectRef, leaveObjectRefAssign, leaveObjectRefAssignOp, leavePrimitive, leaveReturn, leaveScriptEntity, leaveSuper, leaveSwitch, leaveSwitchValue, leaveThis, leaveThrow, leaveTry, leaveTryBlock, leaveTypeEntity, leaveTypeLiteralExpr, leaveUnaryExpr, leaveUnwind, leaveVar, leaveVarAssign, leaveVarAssignOp, leaveVoid, makeCodeContext, makeFileContext, makeGlobalRef, makeLocalContext, makeTypeContext, makeTypeScope, makeUnwindContext, postProcessNode, processAssignOp, processFunctionExpr, processIf, processObjectRefAssignOp, setValue, translate, translateBinaryOpcode, translateConditionOpcode, translateUnaryOpcode, visitArrayLength, visitArrayLiteral, visitArrayRef, visitArrayRefAssign, visitArrayRefAssignOp, visitAssert, visitAssign, visitBinaryExpr, visitBlockExpr, visitBlockExprAssign, visitBlockExprAssignOp, visitBlockStmt, visitCall, visitCatch, visitConstant, visitDeclStmt, visitEachElementGet, visitEachElementHasNext, visitEmpty, visitFieldEntity, visitFileEntity, visitFunctionEntity, visitFunctionExpr, visitFunctionStmt, visitGetCaughtException, visitGoto, visitIfExpr, visitIfgoto, visitIfStmt, visitIsDefinedExpr, visitLabelStmt, visitLocalScope, visitLoop, visitNew, visitObjectLiteral, visitObjectRef, visitObjectRefAssign, visitObjectRefAssignOp, visitPrimitive, visitReturn, visitScriptEntity, visitSuper, visitSwitch, visitThis, visitThrow, visitTry, visitTypeEntity, visitTypeLiteralExpr, visitUnaryExpr, visitUnwind, visitVar, visitVarAssign, visitVarAssignOp, visitVoid, walkEntities, walkNodes |
| Methods inherited from class com.ibm.wala.cast.tree.visit.CAstVisitor |
doVisitAssignNodes, doVisitEntity, getParent, leaveCast, leaveEntity, leaveInstanceOf, leaveNode, postProcessEntity, setParent, visit, visitAllChildren, visitAssignNodes, visitCast, visitChildren, visitEntities, visitEntity, visitInstanceOf, visitNode, visitScopedEntities, visitScopedEntities |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
JSAstTranslator
public JSAstTranslator(JavaScriptLoader loader)
useDefaultInitValues
protected boolean useDefaultInitValues()
- Specified by:
useDefaultInitValues in class AstTranslator
hasImplicitGlobals
protected boolean hasImplicitGlobals()
- Description copied from class:
AstTranslator
- If this returns true, new global declarations get created for any attempt
to access a non-existent variable (believe it or not, JavaScript actually
does this!)
- Overrides:
hasImplicitGlobals in class AstTranslator
treatGlobalsAsLexicallyScoped
protected boolean treatGlobalsAsLexicallyScoped()
- Specified by:
treatGlobalsAsLexicallyScoped in class AstTranslator
useLocalValuesForLexicalVars
protected boolean useLocalValuesForLexicalVars()
- Specified by:
useLocalValuesForLexicalVars in class AstTranslator
defaultCatchType
protected TypeReference defaultCatchType()
- Specified by:
defaultCatchType in class AstTranslator
makeType
protected TypeReference makeType(CAstType type)
- Specified by:
makeType in class AstTranslator
defineType
protected void defineType(CAstEntity type,
AstTranslator.WalkContext wc)
- Specified by:
defineType in class AstTranslator
defineField
protected void defineField(CAstEntity topEntity,
AstTranslator.WalkContext wc,
CAstEntity n)
- Specified by:
defineField in class AstTranslator
composeEntityName
protected java.lang.String composeEntityName(AstTranslator.WalkContext parent,
CAstEntity f)
- Specified by:
composeEntityName in class AstTranslator
declareFunction
protected void declareFunction(CAstEntity N,
AstTranslator.WalkContext context)
- Specified by:
declareFunction in class AstTranslator
defineFunction
protected void defineFunction(CAstEntity N,
AstTranslator.WalkContext definingContext,
AbstractCFG cfg,
SymbolTable symtab,
boolean hasCatchBlock,
TypeReference[][] caughtTypes,
AstMethod.LexicalInformation LI,
AstMethod.DebuggingInformation debugInfo)
- Specified by:
defineFunction in class AstTranslator
doThrow
protected void doThrow(AstTranslator.WalkContext context,
int exception)
- Specified by:
doThrow in class AstTranslator
doCall
protected void doCall(AstTranslator.WalkContext context,
CAstNode call,
int result,
int exception,
CAstNode name,
int receiver,
int[] arguments)
- Specified by:
doCall in class AstTranslator
doNewObject
protected void doNewObject(AstTranslator.WalkContext context,
CAstNode newNode,
int result,
java.lang.Object type,
int[] arguments)
- Specified by:
doNewObject in class AstTranslator
doMaterializeFunction
protected void doMaterializeFunction(AstTranslator.WalkContext context,
int result,
int exception,
CAstEntity fn)
- Specified by:
doMaterializeFunction in class AstTranslator
doArrayRead
protected void doArrayRead(AstTranslator.WalkContext context,
int result,
int arrayValue,
CAstNode arrayRef,
int[] dimValues)
- Specified by:
doArrayRead in class AstTranslator
doArrayWrite
protected void doArrayWrite(AstTranslator.WalkContext context,
int arrayValue,
CAstNode arrayRef,
int[] dimValues,
int rval)
- Specified by:
doArrayWrite in class AstTranslator
doFieldRead
protected void doFieldRead(AstTranslator.WalkContext context,
int result,
int receiver,
CAstNode elt,
CAstNode parent)
- Specified by:
doFieldRead in class AstTranslator
doFieldWrite
protected void doFieldWrite(AstTranslator.WalkContext context,
int receiver,
CAstNode elt,
CAstNode parent,
int rval)
- Specified by:
doFieldWrite in class AstTranslator
doPrimitive
protected void doPrimitive(int resultVal,
AstTranslator.WalkContext context,
CAstNode primitiveCall)
- Specified by:
doPrimitive in class AstTranslator
doIsFieldDefined
protected void doIsFieldDefined(AstTranslator.WalkContext context,
int result,
int ref,
CAstNode f)
- Overrides:
doIsFieldDefined in class AstTranslator
doPrologue
protected void doPrologue(AstTranslator.WalkContext context)
- Overrides:
doPrologue in class AstTranslator
doVisit
protected boolean doVisit(CAstNode n,
CAstVisitor.Context cntxt,
CAstVisitor visitor)
- Description copied from class:
CAstVisitor
- Node processing hook; sub-classes are expected to override if they
introduce new node types.
(Should invoke super.doVisit() for unprocessed nodes.)
- Overrides:
doVisit in class CAstVisitor
- Returns:
- true if node was handled