org.extendj.ast
node type EnhancedForStmt

General Info

Production
EnhancedForStmt : BranchTargetStmt ::= VariableDeclaration Expr Stmt;
Type Hierarchy:
java.lang.Object
  extended by beaver.Symbol
      extended by org.extendj.ast.ASTNode<ASTNode>
          extended by org.extendj.ast.Stmt
              extended by org.extendj.ast.BranchTargetStmt
                  extended by org.extendj.ast.EnhancedForStmt
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Iterable<ASTNode>, org.jastadd.util.PrettyPrintable

Description

Source
Declared in /home/jesper/git/extendj/java5/grammar/EnhancedFor.ast at line 1

Member Filters

API level:

Aspect:

Constructors

public EnhancedForStmt()
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 1
public EnhancedForStmt(VariableDeclaration p0,
                       Expr p1,
                       Stmt p2)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 13

Attributes

@ASTNodeAnnotation.Attribute
syn org.extendj.ast.SimpleSet localLookupVariable(java.lang.String name)
Source
Declared in /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag at line 78
Aspect
EnhancedFor
Overrides:canCompleteNormally in class Stmt
Source
Declared in /home/jesper/git/extendj/java4/frontend/UnreachableStatements.jrag at line 53
Aspect
UnreachableStatements
@ASTNodeAnnotation.Attribute
syn boolean isDAafter(org.extendj.ast.Variable v)
Overrides:isDAafter in class Stmt
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)
Overrides:isDUafter in class Stmt
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 781
Aspect
DU
Overrides:continueLabel in class Stmt
Source
Declared in /home/jesper/git/extendj/java4/frontend/NameCheck.jrag at line 478
Aspect
NameCheck
Source
Declared in /home/jesper/git/extendj/java5/backend/EnhancedForCodegen.jrag at line 33
Aspect
EnhancedForToBytecode
Source
Declared in /home/jesper/git/extendj/java5/backend/EnhancedForCodegen.jrag at line 34
Aspect
EnhancedForToBytecode
Source
Declared in /home/jesper/git/extendj/java5/backend/EnhancedForCodegen.jrag at line 35
Aspect
EnhancedForToBytecode
Source
Declared in /home/jesper/git/extendj/java5/backend/EnhancedForCodegen.jrag at line 37
Aspect
EnhancedForToBytecode
Overrides:break_label in class Stmt
Source
Declared in /home/jesper/git/extendj/java4/backend/CreateBCode.jrag at line 1621
Aspect
CreateBCode
Overrides:continue_label in class Stmt
Source
Declared in /home/jesper/git/extendj/java4/backend/CreateBCode.jrag at line 1645
Aspect
CreateBCode
@ASTNodeAnnotation.Attribute
syn int variableScopeEndLabel(org.extendj.ast.CodeGeneration gen)
Source
Declared in /home/jesper/git/extendj/java5/backend/EnhancedForCodegen.jrag at line 45
Aspect
EnhancedForToBytecode
@ASTNodeAnnotation.Attribute
syn boolean modifiedInScope(org.extendj.ast.Variable var)
Specified by:modifiedInScope in class Stmt
Source
Declared in /home/jesper/git/extendj/java7/frontend/PreciseRethrow.jrag at line 84
Aspect
PreciseRethrow
@ASTNodeAnnotation.Attribute
inh org.extendj.ast.SimpleSet lookupVariable(java.lang.String name)
Overrides:lookupVariable in class Stmt
Source
Declared in /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag at line 66
Aspect
EnhancedFor

Methods

public void typeCheck()
Overrides:typeCheck in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag at line 41
Aspect
EnhancedFor
public void prettyPrint(org.jastadd.util.PrettyPrinter out)
Specified by:prettyPrint in interface org.jastadd.util.PrettyPrintableOverrides:prettyPrint in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java5/frontend/EnhancedFor.jrag at line 86
Aspect
EnhancedFor
public void createBCode(org.extendj.ast.CodeGeneration gen)
Overrides:createBCode in class Stmt
Source
Declared in /home/jesper/git/extendj/java5/backend/EnhancedForCodegen.jrag at line 48
Aspect
EnhancedForToBytecode
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.
Overrides:init$Children in class BranchTargetStmt
Source
Declared in /home/jesper/git/extendj/ASTNode at line 10
protected int numChildren()
Overrides:numChildren in class BranchTargetStmt
Source
Declared in /home/jesper/git/extendj/ASTNode at line 21
public boolean mayHaveRewrite()
Overrides:mayHaveRewrite in class BranchTargetStmt
Source
Declared in /home/jesper/git/extendj/ASTNode at line 27
public void flushAttrCache()
Overrides:flushAttrCache in class BranchTargetStmt
Source
Declared in /home/jesper/git/extendj/ASTNode at line 33
public void flushCollectionCache()
Overrides:flushCollectionCache in class BranchTargetStmt
Source
Declared in /home/jesper/git/extendj/ASTNode at line 47
public void flushRewriteCache()
Overrides:flushRewriteCache in class BranchTargetStmt
Source
Declared in /home/jesper/git/extendj/ASTNode at line 53
public EnhancedForStmt clone()
                      throws java.lang.CloneNotSupportedException
Overrides:clone in class BranchTargetStmt
Throws:
java.lang.CloneNotSupportedException
Source
Declared in /home/jesper/git/extendj/ASTNode at line 59
public EnhancedForStmt copy()
Overrides:copy in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 66
@Deprecated
public EnhancedForStmt 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.

Specified by:fullCopy in class BranchTargetStmt
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 85
public EnhancedForStmt treeCopyNoTransform()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
Specified by:treeCopyNoTransform in class BranchTargetStmt
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 95
public EnhancedForStmt 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.
Specified by:treeCopy in class BranchTargetStmt
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 115
protected boolean is$Equal(ASTNode node)
Overrides:is$Equal in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/ASTNode at line 122
Replaces the VariableDeclaration child.
Parameters:
node - The new node to replace the VariableDeclaration child.
Retrieves the VariableDeclaration child.
Returns:
The current node used as the VariableDeclaration child.
Retrieves the VariableDeclaration child.

This method does not invoke AST transformations.

Returns:
The current node used as the VariableDeclaration child.
public void setExpr(Expr node)
Replaces the Expr child.
Parameters:
node - The new node to replace the Expr child.
Retrieves the Expr child.
Returns:
The current node used as the Expr child.
Retrieves the Expr child.

This method does not invoke AST transformations.

Returns:
The current node used as the Expr child.
public void setStmt(Stmt node)
Replaces the Stmt child.
Parameters:
node - The new node to replace the Stmt child.
Retrieves the Stmt child.
Returns:
The current node used as the Stmt child.
Retrieves the Stmt child.

This method does not invoke AST transformations.

Returns:
The current node used as the Stmt child.
public Stmt Define_branchTarget(ASTNode caller,
                                ASTNode child,
                                Stmt branch)
Overrides:Define_branchTarget in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/BranchTarget.jrag at line 227
protected boolean canDefine_branchTarget(ASTNode caller,
                                         ASTNode child,
                                         Stmt branch)
public org.extendj.ast.SimpleSet Define_lookupVariable(ASTNode caller,
                                                       ASTNode child,
                                                       java.lang.String name)
Overrides:Define_lookupVariable in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/LookupVariable.jrag at line 30
protected boolean canDefine_lookupVariable(ASTNode caller,
                                           ASTNode child,
                                           java.lang.String name)
public org.extendj.ast.NameType Define_nameType(ASTNode caller,
                                                ASTNode child)
Overrides:Define_nameType in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/SyntacticClassification.jrag at line 36
protected boolean canDefine_nameType(ASTNode caller,
                                     ASTNode child)
public org.extendj.ast.VariableScope Define_outerScope(ASTNode caller,
                                                       ASTNode child)
Overrides:Define_outerScope in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/NameCheck.jrag at line 30
protected boolean canDefine_outerScope(ASTNode caller,
                                       ASTNode child)
public boolean Define_isMethodParameter(ASTNode caller,
                                        ASTNode child)
Overrides:Define_isMethodParameter in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 44
protected boolean canDefine_isMethodParameter(ASTNode caller,
                                              ASTNode child)
public boolean Define_isConstructorParameter(ASTNode caller,
                                             ASTNode child)
Overrides:Define_isConstructorParameter in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 45
protected boolean canDefine_isConstructorParameter(ASTNode caller,
                                                   ASTNode child)
public boolean Define_isExceptionHandlerParameter(ASTNode caller,
                                                  ASTNode child)
Overrides:Define_isExceptionHandlerParameter in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/frontend/MultiCatch.jrag at line 46
protected boolean canDefine_isExceptionHandlerParameter(ASTNode caller,
                                                        ASTNode child)
public boolean Define_reachable(ASTNode caller,
                                ASTNode child)
Overrides:Define_reachable in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/UnreachableStatements.jrag at line 52
protected boolean canDefine_reachable(ASTNode caller,
                                      ASTNode child)
public boolean Define_isDAbefore(ASTNode caller,
                                 ASTNode child,
                                 org.extendj.ast.Variable v)
Overrides:Define_isDAbefore in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 255
protected boolean canDefine_isDAbefore(ASTNode caller,
                                       ASTNode child,
                                       org.extendj.ast.Variable v)
public boolean Define_isDUbefore(ASTNode caller,
                                 ASTNode child,
                                 org.extendj.ast.Variable v)
Overrides:Define_isDUbefore in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 779
protected boolean canDefine_isDUbefore(ASTNode caller,
                                       ASTNode child,
                                       org.extendj.ast.Variable v)
public boolean Define_insideLoop(ASTNode caller,
                                 ASTNode child)
Overrides:Define_insideLoop in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/NameCheck.jrag at line 441
protected boolean canDefine_insideLoop(ASTNode caller,
                                       ASTNode child)
public int Define_localNum(ASTNode caller,
                           ASTNode child)
Overrides:Define_localNum in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java7/backend/MultiCatch.jrag at line 64
protected boolean canDefine_localNum(ASTNode caller,
                                     ASTNode child)
public boolean Define_inhModifiedInScope(ASTNode caller,
                                         ASTNode child,
                                         org.extendj.ast.Variable var)
Overrides:Define_inhModifiedInScope in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/EffectivelyFinal.jrag at line 30
protected boolean canDefine_inhModifiedInScope(ASTNode caller,
                                               ASTNode child,
                                               org.extendj.ast.Variable var)
Overrides:rewriteTo in class BranchTargetStmt
public org.extendj.ast.SimpleSet lookupVariable(java.lang.String name)

Fields

protected boolean canCompleteNormally_value
protected java.util.Map isDAafter_Variable_values
protected java.util.Map isDUafter_Variable_values
protected boolean cond_label_computed
protected int cond_label_value
protected boolean update_label_computed
protected int update_label_value
protected boolean end_label_computed
protected int end_label_value
protected boolean extraLocalIndex_computed
protected int extraLocalIndex_value

Inherited Members

Attributes inherited from org.extendj.ast.BranchTargetStmt

Attributes inherited from org.extendj.ast.Stmt

Attributes inherited from org.extendj.ast.ASTNode

Methods inherited from class org.extendj.ast.BranchTargetStmt

Methods inherited from class org.extendj.ast.Stmt

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.BranchTargetStmt

Fields inherited from org.extendj.ast.Stmt

Fields inherited from org.extendj.ast.ASTNode

Fields inherited from beaver.Symbol

end
id
start
value