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
- Direct Known Subclasses:
JavaCAst2IRTranslator, JSAstTranslator
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 ClassesModifier and TypeClassDescriptionclassstatic classprotected static final classdata structure for the final CFG for a method, based on the information in anAstTranslator.IncipientCFGstatic classlexical access information for some entity scope.classprotected static classfinal classholds the control-flow graph as it is being constructed.static classprotected static final classbasic block implementation used in the CFGs constructed during the IR-generating AST traversalfinal classstatic interfacea scope in the symbol table built during AST traversalstatic enumprotected static interfaceinterface for name information stored in a symbol table.protected final classprotected static final classstatic interfaceNested classes/interfaces inherited from class CAstVisitor
CAstVisitor.Context -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final booleanstatic final booleanstatic final booleanstatic final booleanstatic final booleanprotected Map<CAstEntity, Set<String>> protected Map<CAstEntity, Set<Pair<CAstEntity, String>>> protected final SSAInstructionFactoryprotected final IClassLoaderprotected final Map<Object, CAstEntity> for handling languages that let you include other source files named statically (e.g., ABAP)Fields inherited from class CAstVisitor
currentPosition -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAstTranslator(IClassLoader loader) protectedAstTranslator(IClassLoader loader, Map<Object, CAstEntity> namedEntityResolver) protectedAstTranslator(IClassLoader loader, Map<Object, CAstEntity> namedEntityResolver, ArrayOpHandler arrayOpHandler) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidassignValue(CAstNode n, AstTranslator.WalkContext context, AstTranslator.Symbol ls, String nm, int rval) assign rval to nm as appropriate, depending on the scope of lsvoidcloseFunctionEntity(CAstEntity n, AstTranslator.WalkContext parentContext, AstTranslator.WalkContext functionContext) protected abstract StringcomposeEntityName(AstTranslator.WalkContext parent, CAstEntity f) create the language-appropriate name for fprotected abstract voiddeclareFunction(CAstEntity N, AstTranslator.WalkContext context) declare a new function, represented by Nprotected abstract TypeReferencefor a block that catches all exceptions, what is the root exception type that it can catch? E.g., for Java, java.lang.Throwableprotected abstract voiddefineField(CAstEntity topEntity, AstTranslator.WalkContext context, CAstEntity fieldEntity) define a new field fieldEntity within topEntityprotected abstract voiddefineFunction(CAstEntity N, AstTranslator.WalkContext definingContext, AbstractCFG<SSAInstruction, ? extends IBasicBlock<SSAInstruction>> cfg, SymbolTable symtab, boolean hasCatchBlock, Map<IBasicBlock<SSAInstruction>, TypeReference[]> catchTypes, boolean hasMonitorOp, AstTranslator.AstLexicalInformation lexicalInfo, AstMethod.DebuggingInformation debugInfo) fully define a function.protected abstract booleandefineType(CAstEntity type, AstTranslator.WalkContext wc) define a new (presumably nested) type.abstract voiddoArrayRead(AstTranslator.WalkContext context, int result, int arrayValue, CAstNode arrayRef, int[] dimValues) generate IR for a CAst array read, updating context.cfg()abstract voiddoArrayWrite(AstTranslator.WalkContext context, int arrayValue, CAstNode arrayRef, int[] dimValues, int rval) generate IR for a CAst array write, updating context.cfg()protected abstract voiddoCall(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()protected abstract voiddoFieldRead(AstTranslator.WalkContext context, int result, int receiver, CAstNode elt, CAstNode parent) generate IR for a CAst field read, updating context.cfg()protected abstract voiddoFieldWrite(AstTranslator.WalkContext context, int receiver, CAstNode elt, CAstNode parent, int rval) generate IR for a CAst field write, updating context.cfg()protected intdoGlobalRead(CAstNode node, AstTranslator.WalkContext context, String name, TypeReference type) generate instructions for a read of a globalprotected voiddoGlobalWrite(AstTranslator.WalkContext context, String name, TypeReference type, int rval) generate instructions for a write of a globalprotected voiddoIsFieldDefined(AstTranslator.WalkContext context, int result, int ref, CAstNode f) protected intdoLexicallyScopedRead(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.protected voiddoLexicallyScopedWrite(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.protected intdoLocalRead(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().protected voiddoLocalWrite(AstTranslator.WalkContext context, String nm, TypeReference type, int rval) add anAssignInstructionto context.cfg() that copies rval to the value number of local nm.protected abstract voiddoMaterializeFunction(CAstNode node, AstTranslator.WalkContext context, int result, int exception, CAstEntity fn) generate IR for a CAst function expression, updating context.cfg()protected abstract voiddoNewObject(AstTranslator.WalkContext context, CAstNode newNode, int result, Object type, int[] arguments) generate IR for a CAst new expression, updating context.cfg()protected abstract voiddoPrimitive(int resultVal, AstTranslator.WalkContext context, CAstNode primitiveCall) generate IR for call modeling creation of primitive value, updating context.cfg()protected voiddoPrologue(AstTranslator.WalkContext context) generate prologue code for each function bodyprotected abstract voiddoThrow(AstTranslator.WalkContext context, int exception) generate IR for a CAst throw expression, updating context.cfg()protected booleanenterEntity(CAstEntity n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Enter the entity visitor.protected abstract CAstTypethe most-general exception type for the language being translatedprotected intprotected String[]protected AstTranslator.WalkContextgetCodeContext(AstTranslator.WalkContext context) protected abstract CAstSourcePositionMap.Position[]protected static CAstTypegetTypeForNode(AstTranslator.WalkContext context, CAstNode node) protected voidsome languages let you omit initialization of certain fields when writing an object literal (e.g., PHP).protected booleanIf 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 booleanIf this returns true, then attempts to lookup non-existent names return `null' rather than tripping an assertion.protected booleanignoreName(String name) voidinitFunctionEntity(CAstEntity n, AstTranslator.WalkContext functionContext) protected booleanisExceptionLabel(Object label) protected voidleaveArrayLength(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an ArrayLength node.protected voidleaveArrayLiteral(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a ArrayLiteral node.protected voidleaveArrayLiteralInitElement(CAstNode n, int i, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an ArrayLiteral node after processing the {i}th element initializer.protected voidleaveArrayLiteralObject(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an ArrayLiteral node after processing the array object.protected voidleaveArrayRef(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an ArrayRef node.protected voidleaveArrayRefAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an ArrayRef Assignment node after visiting the LHS.protected voidleaveArrayRefAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an ArrayRef Op/Assignment node after visiting the LHS.protected voidleaveAssert(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an InstanceOf node.voidleaveAssign(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an Assign node.protected voidleaveBinaryExpr(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a BinaryExpr node.protected voidleaveBlockExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a BlockExpr node.protected voidleaveBlockExprAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a BlockExpr Assignment node after visiting the LHS.protected voidleaveBlockExprAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a BlockExpr Op/Assignment node after visiting the LHS.protected voidleaveBlockStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a BlockStmt node.protected voidleaveCall(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Call node.protected voidleaveCatch(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Catch node.protected voidleaveConstant(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Constant node.protected voidleaveDeclStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a DeclStmt node.protected voidleaveEachElementGet(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an FOR_EACH_ELEMENT_GET node.protected voidleaveEachElementHasNext(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) protected voidleaveEcho(CAstNode n, AstTranslator.WalkContext wc, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an ECHO node.protected voidleaveEmpty(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an Empty node.protected voidleaveFieldEntity(CAstEntity n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Field entity.protected voidleaveFileEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext fileContext, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a File entity.protected voidleaveFunctionEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext codeContext, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Function entity.protected voidleaveFunctionExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a FunctionExpr node.protected voidleaveFunctionStmt(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a FunctionStmt node.protected voidleaveGetCaughtException(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a GetCaughtException node.protected voidleaveGlobalEntity(CAstEntity n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Field entity.protected voidleaveGoto(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Goto node.protected final voidleaveIfExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an IfExpr node.protected final voidleaveIfExprCondition(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an IfExpr node after processing the condition.protected final voidleaveIfExprTrueClause(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an IfExpr node after processing the true clause.protected voidleaveIfgoto(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an Ifgoto node.protected final voidleaveIfStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an IfStmt node.protected final voidleaveIfStmtCondition(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an IfStmt node after processing the condition.protected final voidleaveIfStmtTrueClause(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an IfStmt node after processing the true clause.protected voidleaveInclude(CAstNode n, AstTranslator.WalkContext wc, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an INCLUDE node.protected voidleaveIsDefinedExpr(CAstNode n, AstTranslator.WalkContext wc, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an IS_DEFINED_EXPR node.protected voidleaveLabelStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a LabelStmt node.protected voidleaveLocalScope(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a LocalScope node.protected final voidleaveLoop(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Loop node.protected final voidleaveLoopHeader(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Loop node after processing the loop header.protected voidleaveNew(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a New node.protected voidleaveObjectLiteral(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an ObjectLiteral node.protected voidleaveObjectLiteralFieldInit(CAstNode n, int i, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an ObjectLiteral node after processing the {i}th field initializer.protected voidleaveObjectRef(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an ObjectRef node.protected voidleaveObjectRefAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an ObjectRef Assignment node after visiting the LHS.protected voidleaveObjectRefAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an ObjectRef Op/Assignment node after visiting the LHS.protected voidleavePrimitive(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Primitive node.protected voidleaveReturn(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Return node.protected voidleaveScriptEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext codeContext, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Script entity.protected voidleaveSpecialParentScope(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) protected voidleaveSuper(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Super node.protected final voidleaveSwitch(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Switch node.protected final voidleaveSwitchValue(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Switch node after processing the switch value.protected voidleaveThis(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a This node.protected voidleaveThrow(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Throw node.protected final voidleaveTry(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Try node.protected final voidleaveTryBlock(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Try node after processing the try block.protected voidleaveTypeEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext typeContext, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Type entity.protected voidleaveTypeLiteralExpr(CAstNode n, AstTranslator.WalkContext wc, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an TYPE_LITERAL_EXPR node.protected voidleaveUnaryExpr(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a UnaryExpr node.protected voidleaveUnwind(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an Unwind node.protected voidleaveVar(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Var node.protected voidleaveVarAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Var Assignment node after visiting the LHS.protected voidleaveVarAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Var Op/Assignment node after visiting the LHS.protected voidleaveVoid(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Void node.protected voidleaveYield(CAstNode n, AstTranslator.WalkContext wc, CAstVisitor<AstTranslator.WalkContext> visitor) Leave a Return node.protected booleanlift variable declarations for lexical scoping purposes?protected AstTranslator.WalkContextmakeCodeContext(AstTranslator.WalkContext context, CAstEntity n) Construct a context for a Code entity.protected AstTranslator.WalkContextConstruct a context for a File entity.protected FieldReferencemakeGlobalRef(String globalName) creates a reference to a global named globalName.protected AstTranslator.WalkContextmakeLocalContext(AstTranslator.WalkContext context, CAstNode n) Construct a context for a LocalScope node.protected String[]makeNameMap(CAstEntity n, Set<AstTranslator.Scope> scopes, SSAInstruction[] insts) protected AstTranslator.AbstractScopemakeScriptScope(CAstEntity s, AstTranslator.Scope parent) protected AstTranslator.WalkContextprotected abstract TypeReferenceprotected AstTranslator.WalkContextConstruct a context for a Type entity.protected AstTranslator.ScopemakeTypeScope(CAstEntity type, AstTranslator.Scope parent) protected AstTranslator.WalkContextmakeUnwindContext(AstTranslator.WalkContext context, CAstNode n, CAstVisitor<AstTranslator.WalkContext> visitor) Construct a context for an Unwind node.protected intprocessAssignOp(CAstNode v, CAstNode a, int temp, AstTranslator.WalkContext context) protected intprocessFunctionExpr(CAstNode n, AstTranslator.WalkContext context) protected voidprocessIf(CAstNode n, boolean isExpr, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) voidsetDefaultValue(SymbolTable symtab, int vn, Object value) protected booleanprotected abstract CAstTypetopType()the most-general type for the language being translatedvoidtranslate(CAstEntity N, AstTranslator.WalkContext context) voidtranslate(CAstEntity N, ModuleEntry module) translate module, represented byCAstEntityNprotected IBinaryOpInstruction.IOperatorprotected IConditionalBranchInstruction.IOperatorprotected IUnaryOpInstruction.IOperatorprotected abstract booleancan lexical reads / writes access globals?protected abstract booleandoes 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.).protected booleanvisitArrayLength(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an ArrayLength node.protected booleanvisitArrayLiteral(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an ArrayLiteral node.protected booleanvisitArrayRef(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an ArrayRef node.protected booleanvisitAssert(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) booleanvisitAssign(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an Assign node.protected booleanvisitBinaryExpr(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a BinaryExpr node.protected booleanvisitBlockExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a BlockExpr node.protected booleanvisitBlockStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a BlockStmt node.protected booleanvisitCall(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Call node.protected booleanvisitCatch(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Catch node.protected booleanvisitConstant(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Constant node.protected booleanvisitDeclStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a DeclStmt node.protected booleanvisitEachElementGet(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an InstanceOf node.protected booleanvisitEachElementHasNext(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Leave an InstanceOf node.protected booleanvisitEcho(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) protected booleanvisitEmpty(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an Empty node.protected booleanvisitFieldEntity(CAstEntity n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Field entity.protected booleanvisitFileEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext fileContext, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a File entity.protected booleanvisitFunctionEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext codeContext, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Function entity.protected booleanvisitFunctionExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a FunctionExpr node.protected booleanvisitFunctionStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a FunctionStmt node.protected booleanvisitGetCaughtException(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a GetCaughtException node.protected booleanvisitGlobalEntity(CAstEntity n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Field entity.protected booleanvisitGoto(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Goto node.protected booleanvisitIfExpr(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an IfExpr node.protected booleanvisitIfgoto(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an Ifgoto node.protected booleanvisitIfStmt(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an IfStmt node.protected booleanvisitIsDefinedExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) protected booleanvisitLabelStmt(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a LabelStmt node.protected booleanvisitLocalScope(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a LocalScope node.protected booleanvisitLoop(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Loop node.protected booleanvisitMacroEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext codeContext, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Macro entity.protected booleanvisitNew(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a New node.protected booleanvisitObjectLiteral(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an ObjectLiteral node.protected booleanvisitObjectRef(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an ObjectRef node.protected booleanvisitPrimitive(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Primitive node.protected booleanvisitReturn(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Return node.protected booleanvisitScriptEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext codeContext, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Script entity.protected booleanvisitSpecialParentScope(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) protected booleanvisitSuper(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Super node.protected booleanvisitSwitch(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Switch node.protected booleanvisitThis(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a This node.protected booleanvisitThrow(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Throw node.protected booleanvisitTry(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Try node.protected booleanvisitTypeEntity(CAstEntity n, AstTranslator.WalkContext context, AstTranslator.WalkContext typeContext, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Type entity.protected booleanvisitTypeLiteralExpr(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an TYPE_LITERAL_EXPR node.protected booleanvisitUnaryExpr(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a UnaryExpr node.protected booleanvisitUnwind(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit an Unwind node.protected booleanvisitVar(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Var node.protected booleanvisitVoid(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Void node.protected booleanvisitYield(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Visit a Return node.protected final voidMethods inherited from class CAstVisitor
doVisit, doVisitArrayRefNode, doVisitAssignNodes, doVisitEntity, enterNode, getCurrentPosition, getParent, leaveArrayLiteralAssign, leaveCast, leaveClassStmt, leaveEntity, leaveForIn, leaveInstanceOf, leaveMacroEntity, leaveMacroVar, leaveNode, leaveObjectLiteralAssign, postProcessEntity, postProcessNode, setParent, visit, visitAllChildren, visitArrayLiteralAssign, visitArrayRefAssign, visitArrayRefAssignOp, visitAssignNodes, visitBlockExprAssign, visitBlockExprAssignOp, visitCast, visitChildren, visitClassStmt, visitEntities, visitEntity, visitForIn, visitInclude, visitInstanceOf, visitMacroVar, visitNode, visitObjectLiteralAssign, visitObjectRefAssign, visitObjectRefAssignOp, visitScopedEntities, visitScopedEntities, visitVarAssign, visitVarAssignOp
-
Field Details
-
loader
-
namedEntityResolver
for handling languages that let you include other source files named statically (e.g., ABAP) -
insts
-
DEBUG_ALL
public static final boolean DEBUG_ALL- See Also:
-
DEBUG_TOP
public static final boolean DEBUG_TOP- See Also:
-
DEBUG_CFG
public static final boolean DEBUG_CFG- See Also:
-
DEBUG_NAMES
public static final boolean DEBUG_NAMES- See Also:
-
DEBUG_LEXICAL
public static final boolean DEBUG_LEXICAL- See Also:
-
entity2ExposedNames
-
entity2WrittenNames
-
-
Constructor Details
-
AstTranslator
protected AstTranslator(IClassLoader loader, Map<Object, CAstEntity> namedEntityResolver, ArrayOpHandler arrayOpHandler) -
AstTranslator
-
AstTranslator
-
-
Method Details
-
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
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
-
defineType
define a new (presumably nested) type. return true if type was successfully defined, false otherwise -
declareFunction
declare a new function, represented by N -
defineFunction
protected abstract void defineFunction(CAstEntity N, AstTranslator.WalkContext definingContext, AbstractCFG<SSAInstruction, ? extends IBasicBlock<SSAInstruction>> cfg, SymbolTable symtab, boolean hasCatchBlock, Map<IBasicBlock<SSAInstruction>, 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
create the language-appropriate name for f -
doThrow
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
the most-general type for the language being translated -
exceptionType
the most-general exception type for the language being translated -
liftDeclarationsForLexicalScoping
protected boolean liftDeclarationsForLexicalScoping()lift variable declarations for lexical scoping purposes? -
isExceptionLabel
-
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()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
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
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 read
-
ignoreName
- 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 -
makeGlobalRef
creates a reference to a global named globalName. the declaring type and type of the global are both the root type. -
makeScriptScope
-
getArgumentCount
-
getArgumentNames
-
makeTypeScope
-
getCodeContext
- Overrides:
getCodeContextin classCAstVisitor<AstTranslator.WalkContext>
-
setDefaultValue
-
translateUnaryOpcode
-
translateBinaryOpcode
-
translateConditionOpcode
-
makeNameMap
protected String[] makeNameMap(CAstEntity n, Set<AstTranslator.Scope> scopes, SSAInstruction[] insts) -
getTypeForNode
-
makeFileContext
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
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
-
closeFunctionEntity
public void closeFunctionEntity(CAstEntity n, AstTranslator.WalkContext parentContext, AstTranslator.WalkContext functionContext) -
getParameterPositions
-
makeLocalContext
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
-
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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorVisit a Loop node.- Overrides:
visitLoopin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave a GetCaughtException node.- Overrides:
leaveGetCaughtExceptionin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorVisit a Call node.- Overrides:
visitCallin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveCall
protected void leaveCall(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave a Call node.- Overrides:
leaveCallin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave a Var node.- Overrides:
leaveVarin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave a Constant node.- Overrides:
leaveConstantin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- a visitor-specific context
-
visitBinaryExpr
protected boolean visitBinaryExpr(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorVisit a BinaryExpr node.- Overrides:
visitBinaryExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveBinaryExpr
protected void leaveBinaryExpr(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave a BinaryExpr node.- Overrides:
leaveBinaryExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- a visitor-specific context
-
visitUnaryExpr
protected boolean visitUnaryExpr(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorVisit a UnaryExpr node.- Overrides:
visitUnaryExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveUnaryExpr
protected void leaveUnaryExpr(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave a UnaryExpr node.- Overrides:
leaveUnaryExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- a visitor-specific context
-
visitArrayLength
protected boolean visitArrayLength(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorVisit an ArrayLength node.- Overrides:
visitArrayLengthin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveArrayLength
protected void leaveArrayLength(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave an ArrayLength node.- Overrides:
leaveArrayLengthin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave an ArrayRef node.- Overrides:
leaveArrayRefin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave a Return node.- Overrides:
leaveReturnin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave an Ifgoto node.- Overrides:
leaveIfgotoin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave a Goto node.- Overrides:
leaveGotoin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- a visitor-specific context
-
visitLabelStmt
protected boolean visitLabelStmt(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorVisit a LabelStmt node.- Overrides:
visitLabelStmtin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorVisit an IfExpr node.- Overrides:
visitIfExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave a New node.- Overrides:
leaveNewin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, 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 initializedcontext- 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 context, 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 initializedcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorVisit an ObjectRef node.- Overrides:
visitObjectRefin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveObjectRef
protected void leaveObjectRef(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave an ObjectRef node.- Overrides:
leaveObjectRefin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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
-
leaveArrayRefAssign
protected void leaveArrayRefAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext context, 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 processcontext- a visitor-specific context
-
leaveArrayRefAssignOp
protected void leaveArrayRefAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext context, 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 usedcontext- a visitor-specific context
-
leaveObjectRefAssign
protected void leaveObjectRefAssign(CAstNode n, CAstNode v, CAstNode a, AstTranslator.WalkContext context, 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 processcontext- a visitor-specific context
-
leaveObjectRefAssignOp
protected void leaveObjectRefAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext context, 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 usedcontext- a visitor-specific context
-
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
-
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
-
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 context, 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 processcontext- a visitor-specific context
-
leaveVarAssignOp
protected void leaveVarAssignOp(CAstNode n, CAstNode v, CAstNode a, boolean pre, AstTranslator.WalkContext context, 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 usedcontext- a visitor-specific context
-
visitSwitch
protected boolean visitSwitch(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorVisit a Switch node.- Overrides:
visitSwitchin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave a Throw node.- Overrides:
leaveThrowin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- a visitor-specific context
-
visitCatch
protected boolean visitCatch(CAstNode n, AstTranslator.WalkContext context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorVisit a Catch node.- Overrides:
visitCatchin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave an Empty node.- Overrides:
leaveEmptyin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave a Primitive node.- Overrides:
leavePrimitivein classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 context, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorVisit an InstanceOf node.- Overrides:
leaveAssertin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processcontext- 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 wc, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave an TYPE_LITERAL_EXPR node.- Overrides:
leaveTypeLiteralExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processwc- 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 wc, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave an IS_DEFINED_EXPR node.- Overrides:
leaveIsDefinedExprin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processwc- 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 wc, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave an ECHO node.- Overrides:
leaveEchoin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processwc- a visitor-specific context
-
visitYield
protected boolean visitYield(CAstNode n, AstTranslator.WalkContext c, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorVisit a Return node.- Overrides:
visitYieldin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processc- a visitor-specific context- Returns:
- true if no further processing is needed
-
leaveYield
protected void leaveYield(CAstNode n, AstTranslator.WalkContext wc, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave a Return node.- Overrides:
leaveYieldin classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processwc- a visitor-specific context
-
getIncludedEntity
-
leaveInclude
protected void leaveInclude(CAstNode n, AstTranslator.WalkContext wc, CAstVisitor<AstTranslator.WalkContext> visitor) Description copied from class:CAstVisitorLeave an INCLUDE node.- Overrides:
leaveIncludein classCAstVisitor<AstTranslator.WalkContext>- Parameters:
n- the node to processwc- a visitor-specific context
-
walkEntities
-
translate
translate module, represented byCAstEntityN- Specified by:
translatein interfaceTranslatorToIR
-
translate
-
doIsFieldDefined
-