Class ArrayComprehension

  • All Implemented Interfaces:
    java.lang.Comparable<AstNode>, java.lang.Iterable<Node>

    public class ArrayComprehension
    extends Scope
    AST node for a JavaScript 1.7 Array comprehension. Node type is Token.ARRAYCOMP.

    • Constructor Detail

      • ArrayComprehension

        public ArrayComprehension()
      • ArrayComprehension

        public ArrayComprehension​(int pos)
      • ArrayComprehension

        public ArrayComprehension​(int pos,
                                  int len)
    • Method Detail

      • getResult

        public AstNode getResult()
        Returns result expression node (just after opening bracket)
      • setResult

        public void setResult​(AstNode result)
        Sets result expression, and sets its parent to this node.
        Throws:
        java.lang.IllegalArgumentException - if result is null
      • setLoops

        public void setLoops​(java.util.List<ArrayComprehensionLoop> loops)
        Sets loop list
        Throws:
        java.lang.IllegalArgumentException - if loops is null
      • addLoop

        public void addLoop​(ArrayComprehensionLoop acl)
        Adds a child loop node, and sets its parent to this node.
        Throws:
        java.lang.IllegalArgumentException - if acl is null
      • getFilter

        public AstNode getFilter()
        Returns filter expression, or null if not present
      • setFilter

        public void setFilter​(AstNode filter)
        Sets filter expression, and sets its parent to this node. Can be null.
      • getIfPosition

        public int getIfPosition()
        Returns position of 'if' keyword, -1 if not present
      • setIfPosition

        public void setIfPosition​(int ifPosition)
        Sets position of 'if' keyword
      • getFilterLp

        public int getFilterLp()
        Returns filter left paren position, or -1 if no filter
      • setFilterLp

        public void setFilterLp​(int lp)
        Sets filter left paren position, or -1 if no filter
      • getFilterRp

        public int getFilterRp()
        Returns filter right paren position, or -1 if no filter
      • setFilterRp

        public void setFilterRp​(int rp)
        Sets filter right paren position, or -1 if no filter
      • 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 result expression, the loops, and the optional filter.
        Overrides:
        visit in class Scope
        Parameters:
        v - the object to call with this node and its children