org.mozilla.javascript.ast

## Class Loop

- 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

- All Implemented Interfaces:
    java.lang.Comparable<AstNode>, java.lang.Iterable<Node>
  Direct Known Subclasses:
    DoLoop, ForInLoop, ForLoop, WhileLoop

      public abstract class Loop
      extends Scope

  Abstract base type for loops.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.mozilla.javascript.ast.AstNode

      `AstNode.DebugPrintVisitor, AstNode.PositionComparator`

    - ### Nested classes/interfaces inherited from class org.mozilla.javascript.Node

      `Node.NodeIterator`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected AstNode` | `body`
    `protected int` | `lp`
    `protected int` | `rp`

    - ### Fields inherited from class org.mozilla.javascript.ast.Scope

      `parentScope, symbolTable, top`

    - ### Fields inherited from class org.mozilla.javascript.ast.Jump

      `target`

    - ### Fields inherited from class org.mozilla.javascript.ast.AstNode

      `length, parent, position`

    - ### Fields inherited from class org.mozilla.javascript.Node

      `ARROW_FUNCTION_PROP, 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`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Loop()`
    `Loop(int pos)`
    `Loop(int pos, int len)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `AstNode` | `getBody()` Returns loop body
    `int` | `getLp()` Returns left paren position, -1 if missing
    `int` | `getRp()` Returns right paren position, -1 if missing
    `void` | `setBody(AstNode body)` Sets loop body.
    `void` | `setLp(int lp)` Sets left paren position
    `void` | `setParens(int lp, int rp)` Sets both paren positions
    `void` | `setRp(int rp)` Sets right paren position

    - ### 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, toSource, visit`

    - ### 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, 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 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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Field Detail

    - #### body

          protected AstNode body

    - #### lp

          protected int lp

    - #### rp

          protected int rp

  - ### Constructor Detail

    - #### Loop

          public Loop()

    - #### Loop

          public Loop(int pos)

    - #### Loop

          public Loop(int pos,
                      int len)

  - ### Method Detail

    - #### getBody

          public AstNode getBody()

      Returns loop body

    - #### setBody

          public void setBody(AstNode body)

      Sets loop body. Sets the parent of the body to this loop node, and updates its offset to be relative. Extends the length of this node to include the body.

    - #### getLp

          public int getLp()

      Returns left paren position, -1 if missing

    - #### setLp

          public void setLp(int lp)

      Sets left paren position

    - #### getRp

          public int getRp()

      Returns right paren position, -1 if missing

    - #### setRp

          public void setRp(int rp)

      Sets right paren position

    - #### setParens

          public void setParens(int lp,
                                int rp)

      Sets both paren positions