Package com.ibm.wala.cast.ir.translator
Class AstTranslator
- java.lang.Object
-
- com.ibm.wala.cast.tree.visit.CAstVisitor<AstTranslator.WalkContext>
-
- com.ibm.wala.cast.ir.translator.AstTranslator
-
- All Implemented Interfaces:
ArrayOpHandler,TranslatorToIR
public abstract class AstTranslator extends CAstVisitor<AstTranslator.WalkContext> implements ArrayOpHandler, TranslatorToIR
Common code to translate CAst to IR. Must be specialized by each language to handle semantics appropriately.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classAstTranslator.AbstractScopestatic classAstTranslator.AbstractSymbolprotected static classAstTranslator.AstCFGdata structure for the final CFG for a method, based on the information in anAstTranslator.IncipientCFGstatic classAstTranslator.AstLexicalInformationlexical access information for some entity scope.classAstTranslator.CodeEntityContextprotected classAstTranslator.FinalCAstSymbolclassAstTranslator.IncipientCFGholds the control-flow graph as it is being constructed.static classAstTranslator.InternalCAstSymbolprotected static classAstTranslator.PreBasicBlockbasic block implementation used in the CFGs constructed during the IR-generating AST traversalclassAstTranslator.RootContextstatic interfaceAstTranslator.Scopea scope in the symbol table built during AST traversalstatic classAstTranslator.ScopeTypeprotected static interfaceAstTranslator.Symbolinterface for name information stored in a symbol table.protected classAstTranslator.UnwindStatestatic interfaceAstTranslator.WalkContext-
Nested classes/interfaces inherited from class com.ibm.wala.cast.tree.visit.CAstVisitor
CAstVisitor.Context
-
-
Field Summary
Fields Modifier and Type Field Description static booleanDEBUG_ALLstatic booleanDEBUG_CFGstatic booleanDEBUG_LEXICALstatic booleanDEBUG_NAMESstatic booleanDEBUG_TOPprotected Map<CAstEntity,Set<String>>entity2ExposedNamesprotected SSAInstructionFactoryinstsprotected IClassLoaderloaderprotected MapnamedEntityResolverfor handling languages that let you include other source files named statically (e.g., ABAP)-
Fields inherited from class com.ibm.wala.cast.tree.visit.CAstVisitor
currentPosition
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAstTranslator(IClassLoader loader)protectedAstTranslator(IClassLoader loader, Map namedEntityResolver)protectedAstTranslator(IClassLoader loader, Map namedEntityResolver, ArrayOpHandler arrayOpHandler)
-
Method Summary
-
Methods inherited from class com.ibm.wala.cast.tree.visit.CAstVisitor
doVisit, doVisitArrayRefNode, doVisitAssignNodes, doVisitEntity, enterNode, getCurrentPosition, getParent, leaveCast, leaveEntity, leaveForIn, leaveInstanceOf, leaveMacroEntity, leaveMacroVar, leaveNode, postProcessEntity, postProcessNode, setParent, visit, visitAllChildren, visitAssignNodes, visitCast, visitChildren, visitEntities, visitEntity, visitForIn, visitInclude, visitInstanceOf, visitMacroVar, visitNode, visitScopedEntities, visitScopedEntities
-
-
-
-
Field Detail
-
loader
protected final IClassLoader loader
-
namedEntityResolver
protected final Map namedEntityResolver
for handling languages that let you include other source files named statically (e.g., ABAP)
-
insts
protected final SSAInstructionFactory insts
-
DEBUG_ALL
public static final boolean DEBUG_ALL
- See Also:
- Constant Field Values
-
DEBUG_TOP
public static final boolean DEBUG_TOP
- See Also:
- Constant Field Values
-
DEBUG_CFG
public static final boolean DEBUG_CFG
- See Also:
- Constant Field Values
-
DEBUG_NAMES
public static final boolean DEBUG_NAMES
- See Also:
- Constant Field Values
-
DEBUG_LEXICAL
public static final boolean DEBUG_LEXICAL
- See Also:
- Constant Field Values
-
entity2ExposedNames
protected Map<CAstEntity,Set<String>> entity2ExposedNames
-
-
Constructor Detail
-
AstTranslator
protected AstTranslator(IClassLoader loader, Map namedEntityResolver, ArrayOpHandler arrayOpHandler)
-
AstTranslator
protected AstTranslator(IClassLoader loader, Map namedEntityResolver)
-
AstTranslator
protected AstTranslator(IClassLoader loader)
-
-
Method Detail
-
useDefaultInitValues
protected abstract boolean useDefaultInitValues()
does the language care about using type-appropriate default values? For Java, the answer is yes (ints should get a default value of 0, null for pointers, etc.). For JavaScript, the answer is no, as any variable can hold the value 'undefined'.
-
treatGlobalsAsLexicallyScoped
protected abstract boolean treatGlobalsAsLexicallyScoped()
can lexical reads / writes access globals?
-
topLevelFunctionsInGlobalScope
protected boolean topLevelFunctionsInGlobalScope()
-
defaultCatchType
protected abstract TypeReference defaultCatchType()
for a block that catches all exceptions, what is the root exception type that it can catch? E.g., for Java, java.lang.Throwable
-
makeType
protected abstract TypeReference makeType(CAstType type)
-
defineType
protected abstract boolean defineType(CAstEntity type, AstTranslator.WalkContext wc)
define a new (presumably nested) type. return true if type was successfully defined, false otherwise
-
declareFunction
protected abstract void declareFunction(CAstEntity N, AstTranslator.WalkContext context)
declare a new function, represented by N
-
defineFunction
protected abstract void defineFunction(CAstEntity N, AstTranslator.WalkContext definingContext, AbstractCFG cfg, SymbolTable symtab, boolean hasCatchBlock, Map<IBasicBlock,TypeReference[]> catchTypes, boolean hasMonitorOp, AstTranslator.AstLexicalInformation lexicalInfo, AstMethod.DebuggingInformation debugInfo)
fully define a function. invoked after all the code of the function has been processed
-
defineField
protected abstract void defineField(CAstEntity topEntity, AstTranslator.WalkContext context, CAstEntity fieldEntity)
define a new field fieldEntity within topEntity
-
composeEntityName
protected abstract String composeEntityName(AstTranslator.WalkContext parent, CAstEntity f)
create the language-appropriate name for f
-
doThrow
protected abstract void doThrow(AstTranslator.WalkContext context, int exception)
generate IR for a CAst throw expression, updating context.cfg()
-
doArrayRead
public abstract void doArrayRead(AstTranslator.WalkContext context, int result, int arrayValue, CAstNode arrayRef, int[] dimValues)
generate IR for a CAst array read, updating context.cfg()- Specified by:
doArrayReadin interfaceArrayOpHandler
-
doArrayWrite
public abstract void doArrayWrite(AstTranslator.WalkContext context, int arrayValue, CAstNode arrayRef, int[] dimValues, int rval)
generate IR for a CAst array write, updating context.cfg()- Specified by:
doArrayWritein interfaceArrayOpHandler
-
doFieldRead
protected abstract void doFieldRead(AstTranslator.WalkContext context, int result, int receiver, CAstNode elt, CAstNode parent)
generate IR for a CAst field read, updating context.cfg()
-
doFieldWrite
protected abstract void doFieldWrite(AstTranslator.WalkContext context, int receiver, CAstNode elt, CAstNode parent, int rval)
generate IR for a CAst field write, updating context.cfg()
-
doMaterializeFunction
protected abstract void doMaterializeFunction(CAstNode node, AstTranslator.WalkContext context, int result, int exception, CAstEntity fn)
generate IR for a CAst function expression, updating context.cfg()
-
doNewObject
protected abstract void doNewObject(AstTranslator.WalkContext context, CAstNode newNode, int result, Object type, int[] arguments)
generate IR for a CAst new expression, updating context.cfg()
-
doCall
protected abstract void doCall(AstTranslator.WalkContext context, CAstNode call, int result, int exception, CAstNode name, int receiver, int[] arguments)
generate IR for a CAst method call expression, updating context.cfg()
-
topType
protected abstract CAstType topType()
the most-general type for the language being translated
-
exceptionType
protected abstract CAstType exceptionType()
the most-general exception type for the language being translated
-
isExceptionLabel
protected boolean isExceptionLabel(Object label)
-
hasImplicitGlobals
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!)
-
hasSpecialUndeclaredVariables
protected boolean hasSpecialUndeclaredVariables()
If this returns true, then attempts to lookup non-existent names return `null' rather than tripping an assertion. This can be used when special handling is needed for built-in names. (PHP does this)
-
handleUnspecifiedLiteralKey
protected void handleUnspecifiedLiteralKey(AstTranslator.WalkContext context, CAstNode objectLiteralNode, int unspecifiedLiteralIndex, CAstVisitor<AstTranslator.WalkContext> visitor)
some languages let you omit initialization of certain fields when writing an object literal (e.g., PHP). This method should be overridden to handle such cases.
-
doPrologue
protected void doPrologue(AstTranslator.WalkContext context)
generate prologue code for each function body
-
doPrimitive
protected abstract void doPrimitive(int resultVal, AstTranslator.WalkContext context, CAstNode primitiveCall)generate IR for call modeling creation of primitive value, updating context.cfg()
-
doLocalRead
protected int doLocalRead(AstTranslator.WalkContext context, String name, TypeReference type)
get the value number for a name defined locally (i.e., within the current method) by looking up the name in context.currentScope(). Note that the caller is responsible for ensuring that name is defined in the local scope.
-
doLocalWrite
protected void doLocalWrite(AstTranslator.WalkContext context, String nm, TypeReference type, int rval)
add anAssignInstructionto context.cfg() that copies rval to the value number of local nm. Note that the caller is responsible for ensuring that nm is defined in the local scope.
-
doLexicallyScopedRead
protected int doLexicallyScopedRead(CAstNode node, AstTranslator.WalkContext context, String name, TypeReference type)
Note that the caller is responsible for ensuring that name is defined in a lexical scope.- Parameters:
node- the AST node representing the readcontext-name-- Returns:
-
ignoreName
protected boolean ignoreName(String name)
- Parameters:
name- A variable name- Returns:
- is this name safe to overwrite, i.e. it's synthetic from the translator?
-
doLexicallyScopedWrite
protected void doLexicallyScopedWrite(AstTranslator.WalkContext context, String name, TypeReference type, int rval)
Note that the caller is responsible for ensuring that name is defined in a lexical scope.
-
doGlobalRead
protected int doGlobalRead(CAstNode node, AstTranslator.WalkContext context, String name, TypeReference type)
generate instructions for a read of a global
-
doGlobalWrite
protected void doGlobalWrite(AstTranslator.WalkContext context, String name, TypeReference type, int rval)
generate instructions for a write of a global
-
doIsFieldDefined
protected void doIsFieldDefined(AstTranslator.WalkContext context, int result, int ref, CAstNode field)
generate instructions to check if ref has field, storing answer in result
-
makeGlobalRef
protected FieldReference makeGlobalRef(String globalName)
creates a reference to a global named globalName. the declaring type and type of the global are both the root type.
-
makeScriptScope
protected AstTranslator.AbstractScope makeScriptScope(CAstEntity s, AstTranslator.Scope parent)
-
getArgumentCount
protected int getArgumentCount(CAstEntity f)
-
getArgumentNames
protected String[] getArgumentNames(CAstEntity f)
-
makeTypeScope
protected AstTranslator.Scope makeTypeScope(CAstEntity type, AstTranslator.Scope parent)
-
setDefaultValue
public void setDefaultValue(SymbolTable symtab, int vn, Object value)
-
translateUnaryOpcode
protected IUnaryOpInstruction.IOperator translateUnaryOpcode(CAstNode op)
-
translateBinaryOpcode
protected IBinaryOpInstruction.IOperator translateBinaryOpcode(CAstNode op)
-
translateConditionOpcode
protected IConditionalBranchInstruction.IOperator translateConditionOpcode(CAstNode op)
-
makeNameMap
protected String[] makeNameMap(CAstEntity n, Set<AstTranslator.Scope> scopes, SSAInstruction[] insts)
-
getTypeForNode
protected final CAstType getTypeForNode(AstTranslator.WalkContext context, CAstNode node)
-
makeFileContext
protected AstTranslator.WalkContext makeFileContext(AstTranslator.WalkContext c, CAstEntity n)
Description copied from class:CAstVisitorConstruct a context for a File entity.- Overrides:
makeFileContextin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
c- a visitor-specific context in which this file was visitedn- the file entity
-
makeTypeContext
protected AstTranslator.WalkContext makeTypeContext(AstTranslator.WalkContext c, CAstEntity n)
Description copied from class:CAstVisitorConstruct a context for a Type entity.- Overrides:
makeTypeContextin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
c- a visitor-specific context in which this type was visitedn- the type entity
-
makeCodeContext
protected AstTranslator.WalkContext makeCodeContext(AstTranslator.WalkContext context, CAstEntity n)
Description copied from class:CAstVisitorConstruct a context for a Code entity.- Overrides:
makeCodeContextin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
context- a visitor-specific context in which the code was visitedn- the code entity
-
enterEntity
protected boolean enterEntity(CAstEntity n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorEnter the entity visitor.- Overrides:
enterEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific context- Returns:
- true if no further processing is needed
-
visitFileEntity
protected boolean visitFileEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext fileContext, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a File entity.- Overrides:
visitFileEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific contextfileContext- a visitor-specific context for this file- Returns:
- true if no further processing is needed
-
leaveFileEntity
protected void leaveFileEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext fileContext, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a File entity.- Overrides:
leaveFileEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific contextfileContext- a visitor-specific context for this file
-
visitFieldEntity
protected boolean visitFieldEntity(CAstEntity n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Field entity.- Overrides:
visitFieldEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveFieldEntity
protected void leaveFieldEntity(CAstEntity n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Field entity.- Overrides:
leaveFieldEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific context
-
visitGlobalEntity
protected boolean visitGlobalEntity(CAstEntity n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Field entity.- Overrides:
visitGlobalEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveGlobalEntity
protected void leaveGlobalEntity(CAstEntity n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Field entity.- Overrides:
leaveGlobalEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific context
-
visitTypeEntity
protected boolean visitTypeEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext typeContext, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Type entity.- Overrides:
visitTypeEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific contexttypeContext- a visitor-specific context for this type- Returns:
- true if no further processing is needed
-
leaveTypeEntity
protected void leaveTypeEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext typeContext, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Type entity.- Overrides:
leaveTypeEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific contexttypeContext- a visitor-specific context for this type
-
visitFunctionEntity
protected boolean visitFunctionEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext codeContext, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Function entity.- Overrides:
visitFunctionEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific contextcodeContext- a visitor-specific context for this function- Returns:
- true if no further processing is needed
-
leaveFunctionEntity
protected void leaveFunctionEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext codeContext, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Function entity.- Overrides:
leaveFunctionEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific contextcodeContext- a visitor-specific context for this function
-
visitMacroEntity
protected boolean visitMacroEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext codeContext, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Macro entity.- Overrides:
visitMacroEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific contextcodeContext- a visitor-specific context for this macro- Returns:
- true if no further processing is needed
-
visitScriptEntity
protected boolean visitScriptEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext codeContext, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Script entity.- Overrides:
visitScriptEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific contextcodeContext- a visitor-specific context for this script- Returns:
- true if no further processing is needed
-
leaveScriptEntity
protected void leaveScriptEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext codeContext, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Script entity.- Overrides:
leaveScriptEntityin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the entity to processcontext- a visitor-specific contextcodeContext- a visitor-specific context for this script
-
initFunctionEntity
public void initFunctionEntity(CAstEntity n, AstTranslator.WalkContext parentContext, AstTranslator.WalkContext functionContext)
-
closeFunctionEntity
public void closeFunctionEntity(CAstEntity n, AstTranslator.WalkContext parentContext, AstTranslator.WalkContext functionContext)
-
makeLocalContext
protected AstTranslator.WalkContext makeLocalContext(AstTranslator.WalkContext context, CAstNode n)
Description copied from class:CAstVisitorConstruct a context for a LocalScope node.- Overrides:
makeLocalContextin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
context- a visitor-specific context in which the local scope was visitedn- the local scope node
-
makeSpecialParentContext
protected AstTranslator.WalkContext makeSpecialParentContext(AstTranslator.WalkContext context, CAstNode n)
- Overrides:
makeSpecialParentContextin classCAstVisitor<AstTranslator.WalkContext>
-
makeUnwindContext
protected AstTranslator.WalkContext makeUnwindContext(AstTranslator.WalkContext context, CAstNode n, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorConstruct a context for an Unwind node.- Overrides:
makeUnwindContextin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
context- a visitor-specific context in which the unwind was visitedn- the unwind node
-
processFunctionExpr
protected int processFunctionExpr(CAstNode n, AstTranslator.WalkContext context)
-
visitFunctionExpr
protected boolean visitFunctionExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a FunctionExpr node.- Overrides:
visitFunctionExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveFunctionExpr
protected void leaveFunctionExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a FunctionExpr node.- Overrides:
leaveFunctionExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitFunctionStmt
protected boolean visitFunctionStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a FunctionStmt node.- Overrides:
visitFunctionStmtin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveFunctionStmt
protected void leaveFunctionStmt(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a FunctionStmt node.- Overrides:
leaveFunctionStmtin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- a visitor-specific context
-
visitLocalScope
protected boolean visitLocalScope(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a LocalScope node.- Overrides:
visitLocalScopein classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
visitSpecialParentScope
protected boolean visitSpecialParentScope(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
- Overrides:
visitSpecialParentScopein classCAstVisitor<AstTranslator.WalkContext>
-
leaveLocalScope
protected void leaveLocalScope(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a LocalScope node.- Overrides:
leaveLocalScopein classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
leaveSpecialParentScope
protected void leaveSpecialParentScope(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
- Overrides:
leaveSpecialParentScopein classCAstVisitor<AstTranslator.WalkContext>
-
visitBlockExpr
protected boolean visitBlockExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a BlockExpr node.- Overrides:
visitBlockExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveBlockExpr
protected void leaveBlockExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a BlockExpr node.- Overrides:
leaveBlockExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitBlockStmt
protected boolean visitBlockStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a BlockStmt node.- Overrides:
visitBlockStmtin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveBlockStmt
protected void leaveBlockStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a BlockStmt node.- Overrides:
leaveBlockStmtin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitLoop
protected boolean visitLoop(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Loop node.- Overrides:
visitLoopin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveLoopHeader
protected final void leaveLoopHeader(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Loop node after processing the loop header.- Overrides:
leaveLoopHeaderin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
leaveLoop
protected final void leaveLoop(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Loop node.- Overrides:
leaveLoopin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitGetCaughtException
protected boolean visitGetCaughtException(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a GetCaughtException node.- Overrides:
visitGetCaughtExceptionin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveGetCaughtException
protected void leaveGetCaughtException(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a GetCaughtException node.- Overrides:
leaveGetCaughtExceptionin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitThis
protected boolean visitThis(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a This node.- Overrides:
visitThisin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveThis
protected void leaveThis(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a This node.- Overrides:
leaveThisin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitSuper
protected boolean visitSuper(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Super node.- Overrides:
visitSuperin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveSuper
protected void leaveSuper(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Super node.- Overrides:
leaveSuperin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitCall
protected boolean visitCall(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Call node.- Overrides:
visitCallin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveCall
protected void leaveCall(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Call node.- Overrides:
leaveCallin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitVar
protected boolean visitVar(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Var node.- Overrides:
visitVarin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveVar
protected void leaveVar(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Var node.- Overrides:
leaveVarin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitConstant
protected boolean visitConstant(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Constant node.- Overrides:
visitConstantin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveConstant
protected void leaveConstant(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Constant node.- Overrides:
leaveConstantin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitBinaryExpr
protected boolean visitBinaryExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a BinaryExpr node.- Overrides:
visitBinaryExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveBinaryExpr
protected void leaveBinaryExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a BinaryExpr node.- Overrides:
leaveBinaryExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitUnaryExpr
protected boolean visitUnaryExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a UnaryExpr node.- Overrides:
visitUnaryExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveUnaryExpr
protected void leaveUnaryExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a UnaryExpr node.- Overrides:
leaveUnaryExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitArrayLength
protected boolean visitArrayLength(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ArrayLength node.- Overrides:
visitArrayLengthin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveArrayLength
protected void leaveArrayLength(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an ArrayLength node.- Overrides:
leaveArrayLengthin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitArrayRef
protected boolean visitArrayRef(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ArrayRef node.- Overrides:
visitArrayRefin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveArrayRef
protected void leaveArrayRef(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an ArrayRef node.- Overrides:
leaveArrayRefin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitDeclStmt
protected boolean visitDeclStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a DeclStmt node.- Overrides:
visitDeclStmtin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveDeclStmt
protected void leaveDeclStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a DeclStmt node.- Overrides:
leaveDeclStmtin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitReturn
protected boolean visitReturn(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Return node.- Overrides:
visitReturnin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveReturn
protected void leaveReturn(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Return node.- Overrides:
leaveReturnin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitIfgoto
protected boolean visitIfgoto(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an Ifgoto node.- Overrides:
visitIfgotoin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveIfgoto
protected void leaveIfgoto(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an Ifgoto node.- Overrides:
leaveIfgotoin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitGoto
protected boolean visitGoto(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Goto node.- Overrides:
visitGotoin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveGoto
protected void leaveGoto(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Goto node.- Overrides:
leaveGotoin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitLabelStmt
protected boolean visitLabelStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a LabelStmt node.- Overrides:
visitLabelStmtin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveLabelStmt
protected void leaveLabelStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a LabelStmt node.- Overrides:
leaveLabelStmtin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
processIf
protected void processIf(CAstNode n, boolean isExpr, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
-
leaveIfStmtCondition
protected final void leaveIfStmtCondition(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an IfStmt node after processing the condition.- Overrides:
leaveIfStmtConditionin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
leaveIfStmtTrueClause
protected final void leaveIfStmtTrueClause(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an IfStmt node after processing the true clause.- Overrides:
leaveIfStmtTrueClausein classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
leaveIfStmt
protected final void leaveIfStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an IfStmt node.- Overrides:
leaveIfStmtin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
leaveIfExprCondition
protected final void leaveIfExprCondition(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an IfExpr node after processing the condition.- Overrides:
leaveIfExprConditionin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
leaveIfExprTrueClause
protected final void leaveIfExprTrueClause(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an IfExpr node after processing the true clause.- Overrides:
leaveIfExprTrueClausein classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
leaveIfExpr
protected final void leaveIfExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an IfExpr node.- Overrides:
leaveIfExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitIfStmt
protected boolean visitIfStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an IfStmt node.- Overrides:
visitIfStmtin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
visitIfExpr
protected boolean visitIfExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an IfExpr node.- Overrides:
visitIfExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
visitNew
protected boolean visitNew(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a New node.- Overrides:
visitNewin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveNew
protected void leaveNew(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a New node.- Overrides:
leaveNewin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitObjectLiteral
protected boolean visitObjectLiteral(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ObjectLiteral node.- Overrides:
visitObjectLiteralin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveObjectLiteralFieldInit
protected void leaveObjectLiteralFieldInit(CAstNode n, int i, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ObjectLiteral node after processing the {i}th field initializer.- Overrides:
leaveObjectLiteralFieldInitin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processi- the field position that was initializedc- a visitor-specific context
-
leaveObjectLiteral
protected void leaveObjectLiteral(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an ObjectLiteral node.- Overrides:
leaveObjectLiteralin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitArrayLiteral
protected boolean visitArrayLiteral(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ArrayLiteral node.- Overrides:
visitArrayLiteralin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveArrayLiteralObject
protected void leaveArrayLiteralObject(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ArrayLiteral node after processing the array object.- Overrides:
leaveArrayLiteralObjectin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
leaveArrayLiteralInitElement
protected void leaveArrayLiteralInitElement(CAstNode n, int i, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ArrayLiteral node after processing the {i}th element initializer.- Overrides:
leaveArrayLiteralInitElementin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processi- the index that was initializedc- a visitor-specific context
-
leaveArrayLiteral
protected void leaveArrayLiteral(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a ArrayLiteral node.- Overrides:
leaveArrayLiteralin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitObjectRef
protected boolean visitObjectRef(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ObjectRef node.- Overrides:
visitObjectRefin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveObjectRef
protected void leaveObjectRef(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an ObjectRef node.- Overrides:
leaveObjectRefin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitAssign
public boolean visitAssign(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an Assign node. Override only this to change behavior for all assignment nodes.- Overrides:
visitAssignin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveAssign
public void leaveAssign(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an Assign node. Override only this to change behavior for all assignment nodes.- Overrides:
leaveAssignin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
processAssignOp
protected int processAssignOp(CAstNode n, CAstNode v, CAstNode a, int temp, boolean post, AstTranslator.WalkContext c)
-
visitArrayRefAssign
protected boolean visitArrayRefAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ArrayRef Assignment node after visiting the RHS.- Overrides:
visitArrayRefAssignin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveArrayRefAssign
protected void leaveArrayRefAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ArrayRef Assignment node after visiting the LHS.- Overrides:
leaveArrayRefAssignin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processc- a visitor-specific context
-
visitArrayRefAssignOp
protected boolean visitArrayRefAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ArrayRef Op/Assignment node after visiting the RHS.- Overrides:
visitArrayRefAssignOpin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processpre- whether the value before the operation should be usedc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveArrayRefAssignOp
protected void leaveArrayRefAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ArrayRef Op/Assignment node after visiting the LHS.- Overrides:
leaveArrayRefAssignOpin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processpre- whether the value before the operation should be usedc- a visitor-specific context
-
visitObjectRefAssign
protected boolean visitObjectRefAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ObjectRef Assignment node after visiting the RHS.- Overrides:
visitObjectRefAssignin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveObjectRefAssign
protected void leaveObjectRefAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ObjectRef Assignment node after visiting the LHS.- Overrides:
leaveObjectRefAssignin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processc- a visitor-specific context
-
processObjectRefAssignOp
protected void processObjectRefAssignOp(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext c)
-
visitObjectRefAssignOp
protected boolean visitObjectRefAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ObjectRef Op/Assignment node after visiting the RHS.- Overrides:
visitObjectRefAssignOpin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processpre- whether the value before the operation should be usedc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveObjectRefAssignOp
protected void leaveObjectRefAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an ObjectRef Op/Assignment node after visiting the LHS.- Overrides:
leaveObjectRefAssignOpin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processpre- whether the value before the operation should be usedc- a visitor-specific context
-
visitBlockExprAssign
protected boolean visitBlockExprAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a BlockExpr Assignment node after visiting the RHS.- Overrides:
visitBlockExprAssignin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveBlockExprAssign
protected void leaveBlockExprAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a BlockExpr Assignment node after visiting the LHS.- Overrides:
leaveBlockExprAssignin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processc- a visitor-specific context
-
visitBlockExprAssignOp
protected boolean visitBlockExprAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a BlockExpr Op/Assignment node after visiting the RHS.- Overrides:
visitBlockExprAssignOpin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processpre- whether the value before the operation should be usedc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveBlockExprAssignOp
protected void leaveBlockExprAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a BlockExpr Op/Assignment node after visiting the LHS.- Overrides:
leaveBlockExprAssignOpin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processpre- whether the value before the operation should be usedc- a visitor-specific context
-
visitVarAssign
protected boolean visitVarAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Var Assignment node after visiting the RHS.- Overrides:
visitVarAssignin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
assignValue
protected void assignValue(CAstNode n, AstTranslator.WalkContext context, AstTranslator.Symbol ls, String nm, int rval)
assign rval to nm as appropriate, depending on the scope of ls
-
leaveVarAssign
protected void leaveVarAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Var Assignment node after visiting the LHS.- Overrides:
leaveVarAssignin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processc- a visitor-specific context
-
visitVarAssignOp
protected boolean visitVarAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Var Op/Assignment node after visiting the RHS.- Overrides:
visitVarAssignOpin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processpre- whether the value before the operation should be usedc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveVarAssignOp
protected void leaveVarAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Var Op/Assignment node after visiting the LHS.- Overrides:
leaveVarAssignOpin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the LHS node to processv- the RHS node to processa- the assignment node to processpre- whether the value before the operation should be usedc- a visitor-specific context
-
visitSwitch
protected boolean visitSwitch(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Switch node.- Overrides:
visitSwitchin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveSwitchValue
protected final void leaveSwitchValue(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Switch node after processing the switch value.- Overrides:
leaveSwitchValuein classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
leaveSwitch
protected final void leaveSwitch(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Switch node.- Overrides:
leaveSwitchin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitThrow
protected boolean visitThrow(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Throw node.- Overrides:
visitThrowin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveThrow
protected void leaveThrow(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Throw node.- Overrides:
leaveThrowin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitCatch
protected boolean visitCatch(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Catch node.- Overrides:
visitCatchin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveCatch
protected void leaveCatch(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Catch node.- Overrides:
leaveCatchin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitUnwind
protected boolean visitUnwind(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an Unwind node.- Overrides:
visitUnwindin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveUnwind
protected void leaveUnwind(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an Unwind node.- Overrides:
leaveUnwindin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitTry
protected boolean visitTry(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Try node.- Overrides:
visitTryin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveTryBlock
protected final void leaveTryBlock(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Try node after processing the try block.- Overrides:
leaveTryBlockin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
leaveTry
protected final void leaveTry(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Try node.- Overrides:
leaveTryin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitEmpty
protected boolean visitEmpty(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an Empty node.- Overrides:
visitEmptyin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveEmpty
protected void leaveEmpty(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an Empty node.- Overrides:
leaveEmptyin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitPrimitive
protected boolean visitPrimitive(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Primitive node.- Overrides:
visitPrimitivein classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leavePrimitive
protected void leavePrimitive(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Primitive node.- Overrides:
leavePrimitivein classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitVoid
protected boolean visitVoid(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit a Void node.- Overrides:
visitVoidin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveVoid
protected void leaveVoid(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave a Void node.- Overrides:
leaveVoidin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitAssert
protected boolean visitAssert(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
- Overrides:
visitAssertin classCAstVisitor<AstTranslator.WalkContext>
-
leaveAssert
protected void leaveAssert(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an InstanceOf node.- Overrides:
leaveAssertin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitEachElementGet
protected boolean visitEachElementGet(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an InstanceOf node.- Overrides:
visitEachElementGetin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveEachElementGet
protected void leaveEachElementGet(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an FOR_EACH_ELEMENT_GET node.- Overrides:
leaveEachElementGetin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitEachElementHasNext
protected boolean visitEachElementHasNext(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an InstanceOf node.- Overrides:
visitEachElementHasNextin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
leaveEachElementHasNext
protected void leaveEachElementHasNext(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
- Overrides:
leaveEachElementHasNextin classCAstVisitor<AstTranslator.WalkContext>
-
visitTypeLiteralExpr
protected boolean visitTypeLiteralExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorVisit an TYPE_LITERAL_EXPR node.- Overrides:
visitTypeLiteralExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveTypeLiteralExpr
protected void leaveTypeLiteralExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an TYPE_LITERAL_EXPR node.- Overrides:
leaveTypeLiteralExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitIsDefinedExpr
protected boolean visitIsDefinedExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
- Overrides:
visitIsDefinedExprin classCAstVisitor<AstTranslator.WalkContext>
-
leaveIsDefinedExpr
protected void leaveIsDefinedExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an IS_DEFINED_EXPR node.- Overrides:
leaveIsDefinedExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
visitEcho
protected boolean visitEcho(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
- Overrides:
visitEchoin classCAstVisitor<AstTranslator.WalkContext>
-
leaveEcho
protected void leaveEcho(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an ECHO node.- Overrides:
leaveEchoin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
getIncludedEntity
public CAstEntity getIncludedEntity(CAstNode n)
-
leaveInclude
protected void leaveInclude(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor)
Description copied from class:CAstVisitorLeave an INCLUDE node.- Overrides:
leaveIncludein classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context
-
walkEntities
protected final void walkEntities(CAstEntity N, AstTranslator.WalkContext c)
-
translate
public void translate(CAstEntity N, ModuleEntry module)
translate module, represented byCAstEntityN- Specified by:
translatein interfaceTranslatorToIR
-
translate
public void translate(CAstEntity N, AstTranslator.WalkContext context)
-
-