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 TypeInterfaceDescriptioninterface
C AST interface to represent the element of an array.interface
C AST interface to represent assignments.interface
C AST interface to represent a sequence ofstatements
.interface
C AST interface to represent abreak
statement.interface
C AST interface to represent a routine call.interface
C AST "class" objects are top-level AST objects that can be retrieved by aICClassFactory
.interface
C AST interface to represent compound statements.interface
Base class for CAST conditional statements (if, switch).interface
ICConstant<T>
Top-level C AST interface to represent a literal or constant value.interface
Generic C AST interface used to represent float literals.interface
C AST interface used to represent single-precision float literals.interface
C AST interface used to represent double-precision float literals.interface
Generic C AST interface used to represent integer literals.interface
C AST interface used to represent 32-bit integer literals.interface
C AST interface used to represent 64-bit integer literals.interface
C AST interface used to represent arbitrary-legth integer literals.interface
C AST interface used to represent pointer literals.interface
C AST interface used to represent string literals.interface
C AST interface to represent acontinue
statement.interface
C AST interface for flow breaker (break, continue, goto).interface
A custom C statement.interface
C AST interface representing the declaration of atyped
identifier
.interface
Top-level C AST interface representing a decompilable element under anICSource
.interface
C AST interface to represent ado-while
loop statement.interface
High-level interface implemented by C AST elements representing expressions.interface
C AST field objects are top-level objects that can be retrieved by aICFieldFactory
.interface
C AST interface used to represent a standard for loop statement.interface
Super interface for C AST breakable compounds (loops, switches).interface
Super interface for C AST loops (for, do-while, while).interface
C AST interface for while-like loops (while, do-while).interface
C AST interface to represent a "goto" statement.interface
C AST interface to represent an identifier, or variable.interface
C AST interface to represent a conditional "if" statement.interface
An instance field C AST element represent the field of an instantiated structure or class.interface
C AST element representing a "long jump".interface
C AST label interfaces are immutable AST elements created by anICLabelFactory
.interface
High-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.interface
C AST method objects are top-level AST objects that can be retrieved by aICMethodFactory
.interface
C AST interface to represent arithmetic and logical expressions.interface
C AST predicate, wrapper for a C expression that can be evaluated to true or false.interface
C AST interface to represent return statements of methods.interface
Highest-level C AST element representing a translation unit, containing classes and/or methods and fields.interface
Top-level C AST element found in a source code.interface
Base interface for C AST elements that represent statements in acode block
.interface
C AST interface to representswitch
statements.interface
High-level C AST interface extended by Return and Throw statements.interface
C AST interface to represent throw statements.interface
Simple representation of a C AST left-expression tuple.interface
A C type.interface
C AST interface to representwhile
loop 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 ICElement
CUtil.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 ICElement
CUtil.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 TypeMethodDescriptionvoid
static int
CUtil.countAllSubElements
(ICElement elem) Recursively count the total number of sub-elements in the given element (seegetSubElements()
).static ICElement
CUtil.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 ICDecl
CUtil.getDefinition
(ICElement element) Get theICDecl
possibly contained in a statement; either the statement itself, or the left-side of an assignment.static ICElement
CUtil.getDefinitionInitialValue
(ICElement element) Get the initial value of a defined variable, from its definition statement.static boolean
static boolean
CUtil.hasNoSideEffects
(ICElement elem) Check if anICElement
can not possibly modify variables.static boolean
CUtil.isClassMethodField
(ICElement e) static boolean
CUtil.isDeclareAndAssign
(ICElement element) boolean
ICElement.replaceSubElement
(ICElement oldElement, ICElement newElement) Replace one element by another one.static int
CUtil.replaceSubElementRecurse
(ICElement elt, ICExpression oldElement, ICExpression newElement) Recursively replace sub-elements of an element , using equals() equality.static ICExpression
CUtil.resolveNotOperation
(ICMethod m, ICOperation e, ICElement parent) boolean
ICElement.visitDepthPost
(ICVisitor visitor, ICElement parent) Depth-first search, post-order visit of an expression tree or sub-tree.boolean
ICElement.visitDepthPost
(ICVisitor visitor, ICElement parent, CVisitResults results) Depth-first search, post-order visit of an expression tree or sub-tree.boolean
ICElement.visitDepthPre
(ICVisitor visitor, ICElement parent) Depth-first search, pre-order visit of an expression tree or sub-tree.boolean
ICElement.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 TypeMethodDescriptionvoid
ICCustomStatement.setInputElements
(List<ICElement> inputElements) void
ICCustomStatement.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 ICElement
AbstractCElementOptimizer.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 ICElement
AbstractCElementOptimizer.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 Long
CMethodSimulatorUtils.getDereferencedAddress
(ICElement element, CMethodState state, CEnvironment environment) Get the dereferenced address from an expression, i.e.static ICExpression
CMethodSimulatorUtils.getDereferencedExpression
(ICElement element) CMethodState.getIdentifier
(ICElement element) CMethodState.getLocalVarValue
(ICElement element) void
CMethodState.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 TypeMethodDescriptionboolean
IEImm.setCustomAST
(ICElement customAST) Set a custom AST element to be used when generating C code.