Uses of Class
com.strobel.decompiler.ast.Node
-
Packages that use Node Package Description com.strobel.decompiler.ast com.strobel.decompiler.languages.java.ast -
-
Uses of Node in com.strobel.decompiler.ast
Subclasses of Node in com.strobel.decompiler.ast Modifier and Type Class Description class
BasicBlock
class
Block
class
CaseBlock
class
CatchBlock
class
Condition
class
Expression
class
Label
class
Lambda
class
Loop
class
Switch
class
TryCatchBlock
Fields in com.strobel.decompiler.ast declared as Node Modifier and Type Field Description static Node
Node. NULL
Fields in com.strobel.decompiler.ast with type parameters of type Node Modifier and Type Field Description private Collection<Node>
BasicBlock. _body
private Collection<Node>
Block. _body
(package private) java.util.Map<Label,Node>
GotoRemoval. labelLookup
(package private) java.util.Map<Node,Label>
GotoRemoval. labels
(package private) java.util.Map<Node,Node>
GotoRemoval. nextSibling
(package private) java.util.Map<Node,Node>
GotoRemoval. nextSibling
private static Predicate<Node>
AstBuilder. NOT_A_LABEL_OR_NOP
(package private) java.util.Map<Node,Node>
GotoRemoval. parentLookup
(package private) java.util.Map<Node,Node>
GotoRemoval. parentLookup
Methods in com.strobel.decompiler.ast with type parameters of type Node Modifier and Type Method Description private <T extends Node>
voidNode. accumulateSelfAndChildrenRecursive(java.util.List<T> list, java.lang.Class<T> type, Predicate<? super T> predicate, boolean childrenFirst, boolean skipChildrenOfFilteredNodes)
<T extends Node>
java.util.List<T>Node. getChildrenAndSelfRecursive(java.lang.Class<T> type)
<T extends Node>
java.util.List<T>Node. getChildrenAndSelfRecursive(java.lang.Class<T> type, Predicate<? super T> predicate)
private <T extends Node>
java.lang.Iterable<T>GotoRemoval. getParents(Node node, java.lang.Class<T> parentType)
<T extends Node>
java.util.List<T>Node. getSelfAndChildrenRecursive(java.lang.Class<T> type)
<T extends Node>
java.util.List<T>Node. getSelfAndChildrenRecursive(java.lang.Class<T> type, Predicate<? super T> predicate)
Methods in com.strobel.decompiler.ast that return Node Modifier and Type Method Description private Node
GotoRemoval. enter(Node node, java.util.Set<Node> visitedNodes)
private Node
GotoRemoval. exit(Node node, java.util.Set<Node> visitedNodes)
Methods in com.strobel.decompiler.ast that return types with arguments of type Node Modifier and Type Method Description static java.util.List<Node>
AstBuilder. build(MethodBody body, boolean optimize, DecompilerContext context)
private java.util.List<Node>
AstBuilder. convertToAst(java.util.List<AstBuilder.ByteCode> body)
private java.util.List<Node>
AstBuilder. convertToAst(java.util.List<AstBuilder.ByteCode> body, java.util.Set<ExceptionHandler> exceptionHandlers, int startIndex, MutableInteger endIndex)
private java.util.List<Node>
LoopsAndConditions. findConditions(java.util.Set<ControlFlowNode> scopeNodes, ControlFlowNode entryNode)
private java.util.List<Node>
LoopsAndConditions. findLoops(java.util.Set<ControlFlowNode> scopeNodes, ControlFlowNode entryPoint, boolean excludeEntryPoint)
java.util.List<Node>
BasicBlock. getBody()
java.util.List<Node>
Block. getBody()
java.util.List<Node>
BasicBlock. getChildren()
java.util.List<Node>
Block. getChildren()
java.util.List<Node>
Condition. getChildren()
java.util.List<Node>
Expression. getChildren()
java.util.List<Node>
Lambda. getChildren()
java.util.List<Node>
Loop. getChildren()
java.util.List<Node>
Node. getChildren()
java.util.List<Node>
Switch. getChildren()
java.util.List<Node>
TryCatchBlock. getChildren()
java.util.List<Node>
Node. getChildrenAndSelfRecursive()
java.util.List<Node>
Node. getChildrenAndSelfRecursive(Predicate<Node> predicate)
java.util.List<Node>
Node. getChildrenAndSelfRecursive(Predicate<Node> predicate, boolean skipChildrenOfFilteredNodes)
private java.lang.Iterable<Node>
GotoRemoval. getParents(Node node)
java.util.List<Node>
Node. getSelfAndChildrenRecursive()
java.util.List<Node>
Node. getSelfAndChildrenRecursive(Predicate<Node> predicate)
java.util.List<Node>
Node. getSelfAndChildrenRecursive(Predicate<Node> predicate, boolean skipChildrenOfFilteredNodes)
Methods in com.strobel.decompiler.ast with parameters of type Node Modifier and Type Method Description (package private) void
Inlining. analyzeNode(Node node)
private boolean
AstOptimizer.MakeAssignmentExpressionsOptimization. canConvertStoreToAssignment(Node store, Variable variable)
private Label
AstOptimizer. checkExit(Node node)
private static boolean
AstOptimizer. containsMatch(Node node, Expression pattern)
private void
TypeAnalysis. createDependencyGraph(Node node)
private Node
GotoRemoval. enter(Node node, java.util.Set<Node> visitedNodes)
private Node
GotoRemoval. exit(Node node, java.util.Set<Node> visitedNodes)
static java.lang.RuntimeException
Error. expressionLinkedFromMultipleLocations(Node node)
private static boolean
AstOptimizer. flattenBasicBlocks(Node node)
private java.lang.Iterable<Node>
GotoRemoval. getParents(Node node)
private <T extends Node>
java.lang.Iterable<T>GotoRemoval. getParents(Node node, java.lang.Class<T> parentType)
(package private) boolean
Inlining. inlineIfPossible(Variable variable, Expression inlinedExpression, Node next, boolean aggressive)
private static void
AstOptimizer. inlineLockAccess(Node owner, java.util.List<Node> body, LockInfo lockInfo)
private Expression
AstOptimizer.IntroducePostIncrementOptimization. introducePostIncrementForInstanceFields(Expression e, Node previous)
static boolean
PatternMatching. match(Node node, AstCode code)
static boolean
PatternMatching. matchAssignment(Node node, StrongBox<Expression> assignedValue)
static boolean
PatternMatching. matchAssignment(Node node, StrongBox<Expression> assignedValue, StrongBox<Expression> equivalentLoad)
static boolean
PatternMatching. matchBooleanComparison(Node node, StrongBox<Expression> argument, StrongBox<java.lang.Boolean> comparand)
static java.lang.Boolean
PatternMatching. matchBooleanConstant(Node node)
static boolean
PatternMatching. matchBooleanConstant(Node node, Consumer<? super java.lang.Boolean> value)
static java.lang.Character
PatternMatching. matchCharacterConstant(Node node)
static boolean
PatternMatching. matchCharacterConstant(Node node, Consumer<? super java.lang.Character> value)
static boolean
PatternMatching. matchComparison(Node node, StrongBox<Expression> left, StrongBox<Expression> right)
private static boolean
PatternMatching. matchElementAssignment(Node node, StrongBox<Expression> assignedValue, StrongBox<Expression> equivalentLoad)
static boolean
PatternMatching. matchEmptyBlockOrLeave(Node node)
static boolean
PatternMatching. matchEmptyReturn(Node node)
static java.lang.Boolean
PatternMatching. matchFalse(Node node)
static <T> boolean
PatternMatching. matchGetArgument(Node node, AstCode code, StrongBox<? super T> operand, StrongBox<Expression> argument)
static boolean
PatternMatching. matchGetArgument(Node node, AstCode code, StrongBox<Expression> argument)
static <T> boolean
PatternMatching. matchGetArguments(Node node, AstCode code, StrongBox<? super T> operand, StrongBox<Expression> argument1, StrongBox<Expression> argument2)
static <T> boolean
PatternMatching. matchGetArguments(Node node, AstCode code, StrongBox<? super T> operand, java.util.List<Expression> arguments)
static boolean
PatternMatching. matchGetArguments(Node node, AstCode code, java.util.List<Expression> arguments)
static <T> boolean
PatternMatching. matchGetOperand(Node node, AstCode code, Consumer<? super T> operand)
static <T> boolean
PatternMatching. matchGetOperand(Node node, AstCode code, java.lang.Class<T> operandType, StrongBox<? super T> operand)
static boolean
PatternMatching. matchIntegralConstant(Node node, Consumer<? super java.lang.Long> constant)
static boolean
PatternMatching. matchLeaveHandler(Node node)
static boolean
PatternMatching. matchLoad(Node node, Predicate<? super Variable> condition)
static boolean
PatternMatching. matchLoad(Node node, StrongBox<? super java.lang.Object> temp, Predicate<? super Variable> condition)
static boolean
PatternMatching. matchLoad(Node node, Variable expectedVariable)
static boolean
PatternMatching. matchLoad(Node node, Variable expectedVariable, StrongBox<Expression> argument)
static boolean
PatternMatching. matchLoad(Node node, Consumer<? super Variable> variable)
static boolean
PatternMatching. matchLoadAny(Node node, java.lang.Iterable<Variable> expectedVariables)
static boolean
PatternMatching. matchLoadOrRet(Node node, StrongBox<Variable> variable)
static boolean
PatternMatching. matchLoadStore(Node node, Variable expectedVariable, StrongBox<Variable> targetVariable)
static boolean
PatternMatching. matchLoadStoreAny(Node node, java.lang.Iterable<Variable> expectedVariables, StrongBox<Variable> targetVariable)
static boolean
PatternMatching. matchNumericConstant(Node node, Consumer<? super java.lang.Number> constant)
static boolean
PatternMatching. matchNumericLdC(Node node, StrongBox<? super java.lang.Number> value)
static boolean
PatternMatching. matchReturnOrThrow(Node node)
static boolean
PatternMatching. matchReversibleComparison(Node node)
static boolean
PatternMatching. matchSimplifiableComparison(Node node)
static boolean
PatternMatching. matchStore(Node node, StrongBox<Variable> variable, StrongBox<Expression> argument)
static boolean
PatternMatching. matchStore(Node node, StrongBox<Variable> variable, java.util.List<Expression> argument)
static boolean
PatternMatching. matchStore(Node node, Variable expectedVariable)
static boolean
PatternMatching. matchStore(Node node, Variable expectedVariable, StrongBox<Expression> value)
static boolean
PatternMatching. matchThis(Node node)
static java.lang.Boolean
PatternMatching. matchTrue(Node node)
static boolean
PatternMatching. matchUnconditionalBranch(Node node)
static boolean
PatternMatching. matchUnlock(Node e, LockInfo lockInfo)
static boolean
PatternMatching. matchVariableIncDec(Node node, StrongBox<Variable> variable)
static boolean
PatternMatching. matchVariableIncDec(Node node, StrongBox<Variable> variable, StrongBox<java.lang.Number> amount)
static boolean
PatternMatching. matchVariableMutation(Node node, Variable variable)
private static void
AstOptimizer. reduceIfNesting(Node node)
(package private) static boolean
AstOptimizer. references(Node node, Variable v)
static void
AstOptimizer. replaceVariables(Node node, Function<Variable,Variable> mapping)
private boolean
GotoRemoval. tryInlineReturn(Expression gotoExpression, Node target, AstCode code)
static java.lang.RuntimeException
Error. unsupportedNode(Node node)
Method parameters in com.strobel.decompiler.ast with type arguments of type Node Modifier and Type Method Description private ControlFlowGraph
LoopsAndConditions. buildGraph(java.util.List<Node> nodes, Label entryLabel)
private Node
GotoRemoval. enter(Node node, java.util.Set<Node> visitedNodes)
private Node
GotoRemoval. exit(Node node, java.util.Set<Node> visitedNodes)
java.util.List<Node>
Node. getChildrenAndSelfRecursive(Predicate<Node> predicate)
java.util.List<Node>
Node. getChildrenAndSelfRecursive(Predicate<Node> predicate, boolean skipChildrenOfFilteredNodes)
java.util.List<Node>
Node. getSelfAndChildrenRecursive(Predicate<Node> predicate)
java.util.List<Node>
Node. getSelfAndChildrenRecursive(Predicate<Node> predicate, boolean skipChildrenOfFilteredNodes)
(package private) boolean
Inlining. inlineIfPossible(java.util.List<Node> body, MutableInteger position)
(package private) int
Inlining. inlineInto(java.util.List<Node> body, int position, boolean aggressive)
private static void
AstOptimizer. inlineLockAccess(Node owner, java.util.List<Node> body, LockInfo lockInfo)
(package private) boolean
Inlining. inlineOneIfPossible(java.util.List<Node> body, int position, boolean aggressive)
private boolean
AstOptimizer.IntroducePostIncrementOptimization. introducePostIncrementForVariables(java.util.List<Node> body, Expression e, int position)
private static boolean
AstOptimizer. introducePreIncrementForInstanceFields(java.util.List<Node> body, MutableInteger position, Inlining inlining)
private static boolean
AstOptimizer. introducePreIncrementForStaticFields(java.util.List<Node> body, MutableInteger position, Inlining inlining)
private static boolean
AstOptimizer. introducePreIncrementForVariables(java.util.List<Node> body, MutableInteger position)
private static <T> boolean
PatternMatching. matchLast(java.util.List<Node> body, AstCode code, StrongBox<? super T> operand, StrongBox<Expression> argument)
static boolean
PatternMatching. matchLock(java.util.List<Node> body, int position, Consumer<? super LockInfo> result)
(package private) static void
AstOptimizer. removeTail(java.util.List<Node> body, AstCode... codes)
boolean
AstOptimizer.AbstractBranchBlockOptimization. run(java.util.List<Node> body, BasicBlock head, int position)
protected abstract boolean
AstOptimizer.AbstractBranchBlockOptimization. run(java.util.List<Node> body, BasicBlock branchBlock, Expression branchCondition, Label thenLabel, Label elseLabel, boolean negate)
boolean
AstOptimizer.BasicBlockOptimization. run(java.util.List<Node> body, BasicBlock head, int position)
boolean
AstOptimizer.ExpressionOptimization. run(java.util.List<Node> body, Expression head, int position)
boolean
AstOptimizer.InlineConditionalAssignmentsOptimization. run(java.util.List<Node> body, BasicBlock head, int position)
boolean
AstOptimizer.InlineLambdasOptimization. run(java.util.List<Node> body, Expression head, int position)
boolean
AstOptimizer.IntroducePostIncrementOptimization. run(java.util.List<Node> body, Expression head, int position)
boolean
AstOptimizer.JoinBasicBlocksOptimization. run(java.util.List<Node> body, BasicBlock head, int position)
protected boolean
AstOptimizer.JoinBranchConditionsOptimization. run(java.util.List<Node> body, BasicBlock branchBlock, Expression branchCondition, Label thenLabel, Label elseLabel, boolean negate)
boolean
AstOptimizer.MakeAssignmentExpressionsOptimization. run(java.util.List<Node> body, Expression head, int position)
boolean
AstOptimizer.PreProcessShortCircuitAssignmentsOptimization. run(java.util.List<Node> body, BasicBlock head, int position)
boolean
AstOptimizer.RemoveInnerClassAccessNullChecksOptimization. run(java.util.List<Node> body, Expression head, int position)
boolean
AstOptimizer.SimplifyLogicalNotOptimization. run(java.util.List<Node> body, Expression head, int position)
boolean
AstOptimizer.SimplifyShortCircuitOptimization. run(java.util.List<Node> body, BasicBlock head, int position)
boolean
AstOptimizer.SimplifyTernaryOperatorOptimization. run(java.util.List<Node> body, BasicBlock head, int position)
boolean
AstOptimizer.SimplifyTernaryOperatorRoundTwoOptimization. run(java.util.List<Node> body, Expression head, int position)
boolean
AstOptimizer.TransformArrayInitializersOptimization. run(java.util.List<Node> body, Expression head, int position)
boolean
AstOptimizer.TransformObjectInitializersOptimization. run(java.util.List<Node> body, Expression head, int position)
private boolean
AstOptimizer.JoinBranchConditionsOptimization. runCore(java.util.List<Node> body, BasicBlock branchBlock, Expression branchCondition, Label thenLabel, Label elseLabel, Expression elseCondition, boolean negateFirst, Label elseThenLabel, Label elseElseLabel, boolean negateSecond)
private boolean
AstOptimizer.TransformArrayInitializersOptimization. tryRefineArrayInitialization(java.util.List<Node> body, Expression head, int position)
Constructors in com.strobel.decompiler.ast with parameters of type Node Constructor Description Block(Node... body)
Constructor parameters in com.strobel.decompiler.ast with type arguments of type Node Constructor Description Block(java.lang.Iterable<Node> body)
-
Uses of Node in com.strobel.decompiler.languages.java.ast
Methods in com.strobel.decompiler.languages.java.ast with parameters of type Node Modifier and Type Method Description private Statement
AstMethodBodyBuilder. transformNode(Node node, Node next)
-