net.sourceforge.htmlunit.corejs.javascript.ast
Class ForLoop
java.lang.Object
net.sourceforge.htmlunit.corejs.javascript.Node
net.sourceforge.htmlunit.corejs.javascript.ast.AstNode
net.sourceforge.htmlunit.corejs.javascript.ast.Jump
net.sourceforge.htmlunit.corejs.javascript.ast.Scope
net.sourceforge.htmlunit.corejs.javascript.ast.Loop
net.sourceforge.htmlunit.corejs.javascript.ast.ForLoop
- All Implemented Interfaces:
- java.lang.Comparable<AstNode>, java.lang.Iterable<Node>
public class ForLoop
- extends Loop
C-style for-loop statement. Node type is Token.FOR.
for ( ExpressionNoInopt; Expressionopt ; Expressionopt ) Statement
for ( var VariableDeclarationListNoIn; Expressionopt ; Expressionopt ) Statement
| Nested classes/interfaces inherited from class net.sourceforge.htmlunit.corejs.javascript.Node |
Node.NodeIterator |
| Fields inherited from class net.sourceforge.htmlunit.corejs.javascript.ast.Loop |
body, lp, rp |
| Fields inherited from class net.sourceforge.htmlunit.corejs.javascript.ast.Jump |
target |
| Fields inherited from class net.sourceforge.htmlunit.corejs.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, first, FUNCTION_PROP, GENERATOR_END_PROP, INCRDECR_PROP, ISNUMBER_PROP, JSDOC_PROP, LABEL_ID_PROP, last, LAST_PROP, LEFT, lineno, LOCAL_BLOCK_PROP, LOCAL_PROP, MEMBER_TYPE_PROP, NAME_PROP, next, NON_SPECIALCALL, OBJECT_IDS_PROP, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, propListHead, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, type, VARIABLE_PROP |
|
Method Summary |
AstNode |
getCondition()
Returns loop condition |
AstNode |
getIncrement()
Returns loop increment expression |
AstNode |
getInitializer()
Returns loop initializer variable declaration list. |
void |
setCondition(AstNode condition)
Sets loop condition, and sets its parent to this node. |
void |
setIncrement(AstNode increment)
Sets loop increment expression, and sets its parent to this node. |
void |
setInitializer(AstNode initializer)
Sets loop initializer expression, and sets its parent to this node. |
java.lang.String |
toSource(int depth)
Emits source code for this node. |
void |
visit(NodeVisitor v)
Visits this node, the initializer expression, the loop condition
expression, the increment expression, and then the loop body. |
| Methods inherited from class net.sourceforge.htmlunit.corejs.javascript.ast.Scope |
addChildScope, clearParentScope, getChildScopes, getDefiningScope, getParentScope, getStatements, getSymbol, getSymbolTable, getTop, joinScopes, putSymbol, replaceWith, setParentScope, setSymbolTable, setTop, splitScope |
| Methods inherited from class net.sourceforge.htmlunit.corejs.javascript.ast.AstNode |
addChild, assertNotNull, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, hasSideEffects, makeIndent, operatorToString, printList, setBounds, setLength, setParent, setPosition, setRelative, shortName, toSource |
| Methods inherited from class net.sourceforge.htmlunit.corejs.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 |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
ForLoop
public ForLoop()
ForLoop
public ForLoop(int pos)
ForLoop
public ForLoop(int pos,
int len)
getInitializer
public AstNode getInitializer()
- Returns loop initializer variable declaration list. This is either a
VariableDeclaration, an Assignment, or an
InfixExpression of type COMMA that chains multiple variable
assignments.
setInitializer
public void setInitializer(AstNode initializer)
- Sets loop initializer expression, and sets its parent to this node.
Virtually any expression can be in the initializer, so no error-checking
is done other than a
null-check.
- Parameters:
initializer - loop initializer. Pass an EmptyExpression if the
initializer is not specified.
- Throws:
java.lang.IllegalArgumentException - if condition is null
getCondition
public AstNode getCondition()
- Returns loop condition
setCondition
public void setCondition(AstNode condition)
- Sets loop condition, and sets its parent to this node.
- Parameters:
condition - loop condition. Pass an EmptyExpression if the
condition is missing.
- Throws:
java.lang.IllegalArgumentException - if condition is null
getIncrement
public AstNode getIncrement()
- Returns loop increment expression
setIncrement
public void setIncrement(AstNode increment)
- Sets loop increment expression, and sets its parent to this node.
- Parameters:
increment - loop increment expression. Pass an EmptyExpression if
increment is null.
- Throws:
java.lang.IllegalArgumentException - if increment is null
toSource
public java.lang.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 the
toSource 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.
- Overrides:
toSource in class Scope
- Parameters:
depth - the current recursion depth, typically beginning at 0 when
called on the root node.
visit
public void visit(NodeVisitor v)
- Visits this node, the initializer expression, the loop condition
expression, the increment expression, and then the loop body.
- Overrides:
visit in class Scope
- Parameters:
v - the object to call with this node and its children