org.extendj.ast
node type Stmt

General Info

Production
Stmt : ASTNode;
Type Hierarchy:
java.lang.Object
  extended by beaver.Symbol
      extended by org.extendj.ast.ASTNode<ASTNode>
          extended by org.extendj.ast.Stmt
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Iterable<ASTNode>, org.jastadd.util.PrettyPrintable
Direct Known Subclasses:
AssertStmt, BasicTWR, Block, BranchTargetStmt, BreakStmt, Case, ContinueStmt, EmptyStmt, ExprStmt, IfStmt, LocalClassDeclStmt, ReturnStmt, SynchronizedStmt, ThrowStmt, TryStmt, VarDeclStmt

Description

Source
Declared in /home/jesper/git/extendj/java4/grammar/Java.ast at line 191

Member Filters

API level:

Aspect:

Constructors

public Stmt()
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 1

Attributes

@ASTNodeAnnotation.Attribute
syn boolean modifiedInScope(org.extendj.ast.Variable var)
Source
Declared in /home/jesper/git/extendj/java7/frontend/PreciseRethrow.jrag at line 84
Aspect
PreciseRethrow
@ASTNodeAnnotation.Attribute
syn java.util.Iterator<org.extendj.ast.FinallyHost> finallyIterator()
Finds enclosing finally and monitor exit blocks.
Returns:
an iterator for finally (and monitor exit) blocks that are reached before the final target of this statement is reached
Source
Declared in /home/jesper/git/extendj/java4/frontend/BranchTarget.jrag at line 80
Aspect
BranchTarget
Returns:
true if this statement can branch to the target statement.
Source
Declared in /home/jesper/git/extendj/java4/frontend/BranchTarget.jrag at line 187
Aspect
BranchTarget
Source
Declared in /home/jesper/git/extendj/java4/frontend/BranchTarget.jrag at line 188
Aspect
BranchTarget
Source
Declared in /home/jesper/git/extendj/java4/frontend/BranchTarget.jrag at line 189
Aspect
BranchTarget
@ASTNodeAnnotation.Attribute
syn boolean isDAafter(org.extendj.ast.Variable v)
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 257
Aspect
DA
@ASTNodeAnnotation.Attribute
syn boolean isDUafter(org.extendj.ast.Variable v)
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 781
Aspect
DU
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupVariable.jrag at line 205
Aspect
VariableScope
Source
Declared in /home/jesper/git/extendj/java4/frontend/NameCheck.jrag at line 478
Aspect
NameCheck
Source
Declared in /home/jesper/git/extendj/java4/frontend/UnreachableStatements.jrag at line 53
Aspect
UnreachableStatements
Source
Declared in /home/jesper/git/extendj/java4/backend/CreateBCode.jrag at line 1621
Aspect
CreateBCode
Source
Declared in /home/jesper/git/extendj/java4/backend/CreateBCode.jrag at line 1645
Aspect
CreateBCode
Computes size required for local variables of this statement. NB: only relevant for variable declaration statements.
Returns:
local size for declared variables
Source
Declared in /home/jesper/git/extendj/java4/backend/LocalNum.jrag at line 38
Aspect
LocalNum
Returns:
the target statement for a break or continue
Source
Declared in /home/jesper/git/extendj/java4/frontend/BranchTarget.jrag at line 227
Aspect
BranchTarget
@ASTNodeAnnotation.Attribute
inh org.extendj.ast.FinallyHost enclosingFinally(Stmt branch)
Find finally block of enclosing try-statement, or monitor exit block of enclosing synchronized block.
Parameters:
branch - the source branch
Returns:
a finally block, or null if there is no enclosing try-statement
Source
Declared in /home/jesper/git/extendj/java4/frontend/BranchTarget.jrag at line 262
Aspect
BranchTarget
@ASTNodeAnnotation.Attribute
inh boolean isDAbefore(org.extendj.ast.Variable v)
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 255
Aspect
DA
@ASTNodeAnnotation.Attribute
inh boolean isDUbefore(org.extendj.ast.Variable v)
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 779
Aspect
DU
@ASTNodeAnnotation.Attribute
inh java.util.Collection lookupMethod(java.lang.String name)
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupMethod.jrag at line 46
Aspect
LookupMethod
@ASTNodeAnnotation.Attribute
inh TypeDecl lookupType(java.lang.String packageName,
                                                java.lang.String typeName)
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupType.jrag at line 130
Aspect
LookupFullyQualifiedTypes
@ASTNodeAnnotation.Attribute
inh org.extendj.ast.SimpleSet lookupType(java.lang.String name)
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupType.jrag at line 339
Aspect
TypeScopePropagation
@ASTNodeAnnotation.Attribute
inh org.extendj.ast.SimpleSet lookupVariable(java.lang.String name)
Source
Declared in /home/jesper/git/extendj/java4/frontend/LookupVariable.jrag at line 37
Aspect
VariableScope
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 561
Aspect
NestedTypes
Source
Declared in /home/jesper/git/extendj/java4/frontend/TypeAnalysis.jrag at line 639
Aspect
NestedTypes
Source
Declared in /home/jesper/git/extendj/java4/frontend/UnreachableStatements.jrag at line 51
Aspect
UnreachableStatements
Source
Declared in /home/jesper/git/extendj/java4/frontend/UnreachableStatements.jrag at line 209
Aspect
UnreachableStatements
Checks if the branch statement leaves the monitor.
Returns:
true if the branch leaves the monitor
Source
Declared in /home/jesper/git/extendj/java4/backend/CreateBCode.jrag at line 1836
Aspect
CreateBCode
Returns:
The next available local variable index.
Source
Declared in /home/jesper/git/extendj/java4/backend/LocalNum.jrag at line 63
Aspect
LocalNum

Methods

Returns:
An Opt node containing the finally and monitor exit blocks from the list of enclosing try-statements and synchronized blocks.
Source
Declared in /home/jesper/git/extendj/java4/frontend/NTAFinally.jrag at line 82
Aspect
NTAFinally
public void createBCode(org.extendj.ast.CodeGeneration gen)
Overrides:createBCode in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/backend/CreateBCode.jrag at line 1359
Aspect
CreateBCode
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.
Overrides:init$Children in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 10
protected int numChildren()
Overrides:numChildren in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 15
public boolean mayHaveRewrite()
Overrides:mayHaveRewrite in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 21
public void flushAttrCache()
Overrides:flushAttrCache in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 27
public void flushCollectionCache()
Overrides:flushCollectionCache in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 40
public void flushRewriteCache()
Overrides:flushRewriteCache in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 46
public Stmt clone()
           throws java.lang.CloneNotSupportedException
Overrides:clone in class ASTNode<ASTNode>
Throws:
java.lang.CloneNotSupportedException
Source
Declared in /home/jesper/git/extendj/ASTNode at line 52
@Deprecated
public abstract Stmt fullCopy()
Deprecated. Please use treeCopy or treeCopyNoTransform instead

Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.

Overrides:fullCopy in class ASTNode<ASTNode>
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 63
public abstract Stmt treeCopyNoTransform()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
Overrides:treeCopyNoTransform in class ASTNode<ASTNode>
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 71
public abstract Stmt treeCopy()
Create a deep copy of the AST subtree at this node. The subtree of this node is traversed to trigger rewrites before copy. The copy is dangling, i.e. has no parent.
Overrides:treeCopy in class ASTNode<ASTNode>
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 79
Overrides:rewriteTo in class ASTNode<ASTNode>

Fields

protected boolean finallyIterator_computed
protected java.util.Iterator<org.extendj.ast.FinallyHost> finallyIterator_value
protected java.util.Map isDAafter_Variable_values
protected java.util.Map isDUafter_Variable_values
protected boolean canCompleteNormally_value
protected boolean localSize_computed
protected int localSize_value
protected java.util.Map enclosingFinally_Stmt_values
protected boolean localNum_computed
protected int localNum_value

Inherited Members

Attributes inherited from org.extendj.ast.ASTNode

Methods inherited from class org.extendj.ast.ASTNode

Methods inherited from class beaver.Symbol

getColumn
getEnd
getId
getLine
getStart
makePosition

Methods inherited from class java.lang.Object

equals
finalize
getClass
hashCode
notify
notifyAll
wait
wait
wait

Fields inherited from org.extendj.ast.ASTNode

Fields inherited from beaver.Symbol

end
id
start
value