Uses of Interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICElement
Packages that use ICElement
Package
Description
This package and its sub-packages contain the types used to access
gendec, JEB's generic
decompiler.C AST types, used in AST documents provided by the
source units
generated by gendec.Types specific to
gendec's AST optimizers.C simulator types, used to emulate AST statements.
Types used to create and access
gendec's IR (Intermediate Representation).-
Uses of ICElement in com.pnfsoftware.jeb.core.units.code.asm.decompiler
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler that return ICElementModifier and TypeMethodDescriptionINativeSourceUnit.getASTItem()Convenience method to retrieve the root AST element of this decompiled item. -
Uses of ICElement in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast
Subinterfaces of ICElement in com.pnfsoftware.jeb.core.units.code.asm.decompiler.astModifier and TypeInterfaceDescriptioninterfaceC AST interface to represent the element of an array.interfaceC AST interface to represent assignments.interfaceC AST interface to represent a sequence ofstatements.interfaceC AST interface to represent abreakstatement.interfaceC AST interface to represent a routine call.interfaceC AST "class" objects are top-level AST objects that can be retrieved by aICClassFactory.interfaceC AST interface to represent compound statements.interfaceBase class for CAST conditional statements (if, switch).interfaceICConstant<T>Top-level C AST interface to represent a literal or constant value.interfaceGeneric C AST interface used to represent float literals.interfaceC AST interface used to represent single-precision float literals.interfaceC AST interface used to represent double-precision float literals.interfaceGeneric C AST interface used to represent integer literals.interfaceC AST interface used to represent 32-bit integer literals.interfaceC AST interface used to represent 64-bit integer literals.interfaceC AST interface used to represent arbitrary-legth integer literals.interfaceC AST interface used to represent pointer literals.interfaceC AST interface used to represent string literals.interfaceC AST interface to represent acontinuestatement.interfaceC AST interface for flow breaker (break, continue, goto).interfaceA custom C statement.interfaceC AST interface representing the declaration of atypedidentifier.interfaceTop-level C AST interface representing a decompilable element under anICSource.interfaceC AST interface to represent ado-whileloop statement.interfaceHigh-level interface implemented by C AST elements representing expressions.interfaceC AST field objects are top-level objects that can be retrieved by aICFieldFactory.interfaceC AST interface used to represent a standard for loop statement.interfaceSuper interface for C AST breakable compounds (loops, switches).interfaceSuper interface for C AST loops (for, do-while, while).interfaceC AST interface for while-like loops (while, do-while).interfaceC AST interface to represent a "goto" statement.interfaceC AST interface to represent an identifier, or variable.interfaceC AST interface to represent a conditional "if" statement.interfaceAn instance field C AST element represent the field of an instantiated structure or class.interfaceC AST element representing a "long jump".interfaceC AST label interfaces are immutable AST elements created by anICLabelFactory.interfaceHigh-level interface is used to represent C AST expressions that can be assigned to, that is, expressions that can be left members in assignment statements.interfaceC AST method objects are top-level AST objects that can be retrieved by aICMethodFactory.interfaceC AST interface to represent arithmetic and logical expressions.interfaceC AST predicate, wrapper for a C expression that can be evaluated to true or false.interfaceC AST interface to represent return statements of methods.interfaceHighest-level C AST element representing a translation unit, containing classes and/or methods and fields.interfaceTop-level C AST element found in a source code.interfaceBase interface for C AST elements that represent statements in acode block.interfaceC AST interface to representswitchstatements.interfaceHigh-level C AST interface extended by Return and Throw statements.interfaceC AST interface to represent throw statements.interfaceSimple representation of a C AST left-expression tuple.interfaceA C type.interfaceC AST interface to representwhileloop statements.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast that return ICElementModifier and TypeMethodDescriptionCOutputSink.astPeekSafe(int n) COutputSink.astPop()ICElement.duplicate()Deep duplication of the element.static ICElementCUtil.findParent(ICElement root, ICElement elt) Retrieve the parent of an AST element (or first parent, if the element is reusable and has potentially multiple parents - e.g.static ICElementCUtil.getDefinitionInitialValue(ICElement element) Get the initial value of a defined variable, from its definition statement.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast that return types with arguments of type ICElementModifier and TypeMethodDescriptionICCustomStatement.getInputElements()ICCustomStatement.getOutputElements()ICElement.getSubElements()Get the list of AST elements that constitute this AST element.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast with parameters of type ICElementModifier and TypeMethodDescriptionvoidstatic intCUtil.countAllSubElements(ICElement elem) Recursively count the total number of sub-elements in the given element (seegetSubElements()).static ICElementCUtil.findParent(ICElement root, ICElement elt) Retrieve the parent of an AST element (or first parent, if the element is reusable and has potentially multiple parents - e.g.static StringGenerate a simple deep formatting of the provided element.static ICDeclCUtil.getDefinition(ICElement element) Get theICDeclpossibly contained in a statement; either the statement itself, or the left-side of an assignment.static ICElementCUtil.getDefinitionInitialValue(ICElement element) Get the initial value of a defined variable, from its definition statement.static booleanstatic booleanCUtil.hasNoSideEffects(ICElement elem) Check if anICElementcan not possibly modify variables.static booleanCUtil.isClassMethodField(ICElement e) static booleanCUtil.isDeclareAndAssign(ICElement element) booleanICElement.replaceSubElement(ICElement oldElement, ICElement newElement) Replace one element by another one.static intCUtil.replaceSubElementRecurse(ICElement elt, ICExpression oldElement, ICExpression newElement) Recursively replace sub-elements of an element , using equals() equality.static ICExpressionCUtil.resolveNotOperation(ICMethod m, ICOperation e, ICElement parent) booleanICElement.visitDepthPost(ICVisitor visitor, ICElement parent) Depth-first search, post-order visit of an expression tree or sub-tree.booleanICElement.visitDepthPost(ICVisitor visitor, ICElement parent, CVisitResults results) Depth-first search, post-order visit of an expression tree or sub-tree.booleanICElement.visitDepthPre(ICVisitor visitor, ICElement parent) Depth-first search, pre-order visit of an expression tree or sub-tree.booleanICElement.visitDepthPre(ICVisitor visitor, ICElement parent, CVisitResults results) Depth-first search, pre-order visit of an expression tree or sub-tree.Method parameters in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast with type arguments of type ICElementModifier and TypeMethodDescriptionvoidICCustomStatement.setInputElements(List<ICElement> inputElements) voidICCustomStatement.setOutputElements(List<ICElement> outputElements) -
Uses of ICElement in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.opt
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.opt that return ICElementModifier and TypeMethodDescriptionprotected abstract ICElementAbstractCElementOptimizer.optimizeElement(ICElement e, ICElement parent) Optimize an element.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.opt with parameters of type ICElementModifier and TypeMethodDescriptionprotected abstract ICElementAbstractCElementOptimizer.optimizeElement(ICElement e, ICElement parent) Optimize an element. -
Uses of ICElement in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.simulator
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.simulator with parameters of type ICElementModifier and TypeMethodDescriptionstatic LongCMethodSimulatorUtils.getDereferencedAddress(ICElement element, CMethodState state, CEnvironment environment) Get the dereferenced address from an expression, i.e.static ICExpressionCMethodSimulatorUtils.getDereferencedExpression(ICElement element) CMethodState.getIdentifier(ICElement element) CMethodState.getLocalVarValue(ICElement element) voidCMethodState.setValue(ICElement element, Long value, CEnvironment environment) Sets a variable --either local or global-- value. -
Uses of ICElement in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir
Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir that return ICElementModifier and TypeMethodDescriptionIEGeneric.generateC(IERoutineContext ectx, ICMethod cctx) Generate the C abstract syntax tree portion for this expression.IEVar.generateC(IERoutineContext ectx, ICMethod cctx, int position) Specialized C Variable generator, allowing the specification of the variable position within its containing expression.IEVar.generateC(IERoutineContext ectx, ICMethod cctx, int position, boolean deref) Specialized C Variable generator, allowing the specification of the variable position within its containing expression.IEImm.getCustomAST()Retrieve the custom AST element that will be used when generating C code, if one was set.Methods in com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir with parameters of type ICElementModifier and TypeMethodDescriptionbooleanIEImm.setCustomAST(ICElement customAST) Set a custom AST element to be used when generating C code.