public abstract static class Flow.AbstractAssignAnalyzer<P extends Flow.AbstractAssignAnalyzer.AbstractAssignPendingExit> extends TreeScanner
Modifier and Type | Class and Description |
---|---|
static class |
Flow.AbstractAssignAnalyzer.AbstractAssignPendingExit |
Modifier and Type | Field and Description |
---|---|
protected Bits |
inits
The set of definitely assigned variables.
|
protected Names |
names |
protected int |
nextadr
The next available variable sequence number.
|
protected int |
returnadr
The first variable sequence number in a block that can return.
|
protected JCTree.JCVariableDecl[] |
vardecls
A mapping from addresses to variable symbols.
|
Constructor and Description |
---|
AbstractAssignAnalyzer(Bits inits,
Symtab syms,
Names names) |
scan, visitAnnotation, visitCase, visitCatch, visitErroneous, visitExec, visitImport, visitIndexed, visitLetExpr, visitLiteral, visitModifiers, visitParens, visitReference, visitSelect, visitSkip, visitSynchronized, visitTree, visitTypeApply, visitTypeArray, visitTypeBoundKind, visitTypeCast, visitTypeIdent, visitTypeIntersection, visitTypeParameter, visitTypeTest, visitTypeUnion, visitWildcard
protected final Bits inits
protected JCTree.JCVariableDecl[] vardecls
protected int nextadr
protected int returnadr
protected Names names
protected void markDead(JCTree tree)
protected boolean trackable(Symbol.VarSymbol sym)
protected void exclVarFromInits(JCTree tree, int adr)
protected void merge(JCTree tree)
public void visitClassDef(JCTree.JCClassDecl tree)
visitClassDef
in class TreeScanner
public void visitMethodDef(JCTree.JCMethodDecl tree)
visitMethodDef
in class TreeScanner
protected void initParam(JCTree.JCVariableDecl def)
public void visitVarDef(JCTree.JCVariableDecl tree)
visitVarDef
in class TreeScanner
public void visitBlock(JCTree.JCBlock tree)
visitBlock
in class TreeScanner
public void visitDoLoop(JCTree.JCDoWhileLoop tree)
visitDoLoop
in class TreeScanner
public void visitWhileLoop(JCTree.JCWhileLoop tree)
visitWhileLoop
in class TreeScanner
public void visitForLoop(JCTree.JCForLoop tree)
visitForLoop
in class TreeScanner
public void visitForeachLoop(JCTree.JCEnhancedForLoop tree)
visitForeachLoop
in class TreeScanner
public void visitLabelled(JCTree.JCLabeledStatement tree)
visitLabelled
in class TreeScanner
public void visitSwitch(JCTree.JCSwitch tree)
visitSwitch
in class TreeScanner
public void visitTry(JCTree.JCTry tree)
visitTry
in class TreeScanner
public void visitConditional(JCTree.JCConditional tree)
visitConditional
in class TreeScanner
public void visitIf(JCTree.JCIf tree)
visitIf
in class TreeScanner
public void visitBreak(JCTree.JCBreak tree)
visitBreak
in class TreeScanner
public void visitContinue(JCTree.JCContinue tree)
visitContinue
in class TreeScanner
public void visitReturn(JCTree.JCReturn tree)
visitReturn
in class TreeScanner
public void visitThrow(JCTree.JCThrow tree)
visitThrow
in class TreeScanner
public void visitApply(JCTree.JCMethodInvocation tree)
visitApply
in class TreeScanner
public void visitNewClass(JCTree.JCNewClass tree)
visitNewClass
in class TreeScanner
public void visitLambda(JCTree.JCLambda tree)
visitLambda
in class TreeScanner
public void visitNewArray(JCTree.JCNewArray tree)
visitNewArray
in class TreeScanner
public void visitAssert(JCTree.JCAssert tree)
visitAssert
in class TreeScanner
public void visitAssign(JCTree.JCAssign tree)
visitAssign
in class TreeScanner
public void visitAssignop(JCTree.JCAssignOp tree)
visitAssignop
in class TreeScanner
public void visitUnary(JCTree.JCUnary tree)
visitUnary
in class TreeScanner
public void visitBinary(JCTree.JCBinary tree)
visitBinary
in class TreeScanner
public void visitIdent(JCTree.JCIdent tree)
visitIdent
in class TreeScanner
public void visitAnnotatedType(JCTree.JCAnnotatedType tree)
visitAnnotatedType
in class TreeScanner
public void visitTopLevel(JCTree.JCCompilationUnit tree)
visitTopLevel
in class TreeScanner
public void analyzeTree(Env<?> env)
public void scan(JCTree tree)
TreeScanner
scan
in class TreeScanner
Copyright © 2017 earcam. All rights reserved.