Class ElementGet

All Implemented Interfaces:
Comparable<AstNode>, Iterable<Node>

public class ElementGet extends AstNode
AST node for an indexed property reference, such as foo['bar'] or foo[2]. This is sometimes called an "element-get" operation, hence the name of the node.

Node type is Token.GETELEM.

The node bounds extend from the beginning position of the target through the closing right-bracket. In the presence of a syntax error, the right bracket position is -1, and the node ends at the end of the element expression.

  • Constructor Details

    • ElementGet

      public ElementGet()
    • ElementGet

      public ElementGet(int pos)
    • ElementGet

      public ElementGet(int pos, int len)
    • ElementGet

      public ElementGet(AstNode target, AstNode element)
  • Method Details

    • getTarget

      public AstNode getTarget()
      Returns the object on which the element is being fetched.
    • setTarget

      public void setTarget(AstNode target)
      Sets target object, and sets its parent to this node.
      Parameters:
      target - expression evaluating to the object upon which to do the element lookup
      Throws:
      IllegalArgumentException - if target is null
    • getElement

      public AstNode getElement()
      Returns the element being accessed
    • setElement

      public void setElement(AstNode element)
      Sets the element being accessed, and sets its parent to this node.
      Throws:
      IllegalArgumentException - if element is null
    • getLb

      public int getLb()
      Returns left bracket position
    • setLb

      public void setLb(int lb)
      Sets left bracket position
    • getRb

      public int getRb()
      Returns right bracket position, -1 if missing
    • setRb

      public void setRb(int rb)
      Sets right bracket position, -1 if not present
    • setParens

      public void setParens(int lb, int rb)
    • 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 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.

      Specified by:
      toSource in class AstNode
      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 target, and the index expression.
      Specified by:
      visit in class AstNode
      Parameters:
      v - the object to call with this node and its children