Package org.mozilla.javascript.ast
Class ForInLoop
- java.lang.Object
-
- org.mozilla.javascript.Node
-
- org.mozilla.javascript.ast.AstNode
-
- org.mozilla.javascript.ast.Jump
-
- org.mozilla.javascript.ast.Scope
-
- org.mozilla.javascript.ast.Loop
-
- org.mozilla.javascript.ast.ForInLoop
-
- All Implemented Interfaces:
Comparable<AstNode>
,Iterable<Node>
- Direct Known Subclasses:
ArrayComprehensionLoop
,GeneratorExpressionLoop
public class ForInLoop extends Loop
For-in or for-each-in statement. Node type isToken.FOR
.for [each] ( LeftHandSideExpression in Expression ) Statement
for [each] ( var VariableDeclarationNoIn in Expression ) Statement
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.mozilla.javascript.ast.AstNode
AstNode.PositionComparator
-
Nested classes/interfaces inherited from class org.mozilla.javascript.Node
Node.NodeIterator
-
-
Field Summary
-
Fields inherited from class org.mozilla.javascript.Node
ATTRIBUTE_FLAG, BOTH, CASEARRAY_PROP, CATCH_SCOPE_PROP, CONTROL_BLOCK_PROP, DECR_FLAG, DESCENDANTS_FLAG, DESTRUCTURING_ARRAY_LENGTH, DESTRUCTURING_NAMES, DESTRUCTURING_PARAMS, DESTRUCTURING_SHORTHAND, DIRECTCALL_PROP, END_DROPS_OFF, END_RETURNS, END_RETURNS_VALUE, END_UNREACHED, END_YIELDS, EXPRESSION_CLOSURE_PROP, FUNCTION_PROP, GENERATOR_END_PROP, INCRDECR_PROP, ISNUMBER_PROP, JSDOC_PROP, LABEL_ID_PROP, LAST_PROP, LEFT, LOCAL_BLOCK_PROP, LOCAL_PROP, MEMBER_TYPE_PROP, NAME_PROP, NON_SPECIALCALL, OBJECT_IDS_PROP, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, VARIABLE_PROP
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getEachPosition()
Returns position of "each" keywordint
getInPosition()
Returns position of "in" keywordAstNode
getIteratedObject()
Returns object being iterated overAstNode
getIterator()
Returns loop iterator expressionboolean
isForEach()
Returns whether the loop is a for-each loopvoid
setEachPosition(int eachPosition)
Sets position of "each" keywordvoid
setInPosition(int inPosition)
Sets position of "in" keywordvoid
setIsForEach(boolean isForEach)
Sets whether the loop is a for-each loopvoid
setIteratedObject(AstNode object)
Sets object being iterated over, and sets its parent to this node.void
setIterator(AstNode iterator)
Sets loop iterator expression: the part before the "in" keyword.String
toSource(int depth)
Emits source code for this node.void
visit(NodeVisitor v)
Visits this node, the iterator, the iterated object, and the body.-
Methods inherited from class org.mozilla.javascript.ast.Loop
getBody, getLp, getRp, setBody, setLp, setParens, setRp
-
Methods inherited from class org.mozilla.javascript.ast.Scope
addChildScope, clearParentScope, getChildScopes, getDefiningScope, getParentScope, getStatements, getSymbol, getSymbolTable, getTop, joinScopes, putSymbol, replaceWith, setParentScope, setSymbolTable, setTop, splitScope
-
Methods inherited from class org.mozilla.javascript.ast.Jump
getContinue, getDefault, getFinally, getJumpStatement, getLoop, setContinue, setDefault, setFinally, setJumpStatement, setLoop
-
Methods inherited from class org.mozilla.javascript.ast.AstNode
addChild, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, hasSideEffects, makeIndent, operatorToString, setBounds, setLength, setParent, setPosition, setRelative, shortName, toSource
-
Methods inherited from class org.mozilla.javascript.Node
addChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, getChildBefore, getDouble, getExistingIntProp, getFirstChild, getIntProp, getJsDoc, getJsDocNode, getLastChild, getLastSibling, getNext, getProp, getScope, getString, getType, hasChildren, hasConsistentReturnUsage, iterator, labelId, labelId, newNumber, newString, newString, newTarget, putIntProp, putProp, removeChild, removeChildren, removeProp, replaceChild, replaceChildAfter, resetTargets, setDouble, setJsDocNode, setLineno, setScope, setString, setType, toString, toStringTree
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Method Detail
-
getIterator
public AstNode getIterator()
Returns loop iterator expression
-
setIterator
public void setIterator(AstNode iterator)
Sets loop iterator expression: the part before the "in" keyword. Also sets its parent to this node.- Throws:
IllegalArgumentException
- ifiterator
isnull
-
getIteratedObject
public AstNode getIteratedObject()
Returns object being iterated over
-
setIteratedObject
public void setIteratedObject(AstNode object)
Sets object being iterated over, and sets its parent to this node.- Throws:
IllegalArgumentException
- ifobject
isnull
-
isForEach
public boolean isForEach()
Returns whether the loop is a for-each loop
-
setIsForEach
public void setIsForEach(boolean isForEach)
Sets whether the loop is a for-each loop
-
getInPosition
public int getInPosition()
Returns position of "in" keyword
-
setInPosition
public void setInPosition(int inPosition)
Sets position of "in" keyword- Parameters:
inPosition
- position of "in" keyword, or -1 if not present (e.g. in presence of a syntax error)
-
getEachPosition
public int getEachPosition()
Returns position of "each" keyword
-
setEachPosition
public void setEachPosition(int eachPosition)
Sets position of "each" keyword- Parameters:
eachPosition
- position of "each" keyword, or -1 if not present.
-
toSource
public String toSource(int depth)
Description copied from class:AstNode
Emits source code for this node. Callee is responsible for calling this function recursively on children, incrementing indent as appropriate.Note: if the parser was in error-recovery mode, some AST nodes may have
null
children that are expected to be non-null
when no errors are present. In this situation, the behavior of thetoSource
method is undefined:toSource
implementations may assume that the AST node is error-free, since it is intended to be invoked only at runtime after a successful parse.
-
visit
public void visit(NodeVisitor v)
Visits this node, the iterator, the iterated object, and the body.
-
-