Class VariableDeclaration

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

    public class VariableDeclaration
    extends AstNode
    A list of one or more var, const or let declarations. Node type is Token.VAR, Token.CONST or Token.LET.

    If the node is for var or const, the node position is the beginning of the var or const keyword. For let declarations, the node position coincides with the first VariableInitializer child.

    A standalone variable declaration in a statement context returns true from its isStatement() method.

    • Constructor Detail

      • VariableDeclaration

        public VariableDeclaration()
      • VariableDeclaration

        public VariableDeclaration​(int pos)
      • VariableDeclaration

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

      • getVariables

        public java.util.List<VariableInitializer> getVariables()
        Returns variable list. Never null.
      • setVariables

        public void setVariables​(java.util.List<VariableInitializer> variables)
        Sets variable list
        Throws:
        java.lang.IllegalArgumentException - if variables list is null
      • addVariable

        public void addVariable​(VariableInitializer v)
        Adds a variable initializer node to the child list. Sets initializer node's parent to this node.
        Throws:
        java.lang.IllegalArgumentException - if v is null
      • setType

        public Node setType​(int type)
        Sets the node type and returns this node.
        Overrides:
        setType in class Node
        Throws:
        java.lang.IllegalArgumentException - if declType is invalid
      • isVar

        public boolean isVar()
        Returns true if this is a var (not const or let) declaration.
        Returns:
        true if declType is Token.VAR
      • isConst

        public boolean isConst()
        Returns true if this is a Token.CONST declaration.
      • isLet

        public boolean isLet()
        Returns true if this is a Token.LET declaration.
      • isStatement

        public boolean isStatement()
        Returns true if this node represents a statement.
      • setIsStatement

        public void setIsStatement​(boolean isStatement)
        Set or unset the statement flag.
      • 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.

        Specified by:
        toSource in class AstNode
        Parameters:
        depth - the current recursion depth, typically beginning at 0 when called on the root node.