Class LabeledStatement

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

    public class LabeledStatement
    extends AstNode
    A labeled statement. A statement can have more than one label. In this AST representation, all labels for a statement are collapsed into the "labels" list of a single LabeledStatement node.

    Node type is Token.EXPR_VOID.

    • Constructor Detail

      • LabeledStatement

        public LabeledStatement()
      • LabeledStatement

        public LabeledStatement​(int pos)
      • LabeledStatement

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

      • getLabels

        public java.util.List<Label> getLabels()
        Returns label list
      • setLabels

        public void setLabels​(java.util.List<Label> labels)
        Sets label list, setting the parent of each label in the list. Replaces any existing labels.
        Throws:
        java.lang.IllegalArgumentException - } if labels is null
      • addLabel

        public void addLabel​(Label label)
        Adds a label and sets its parent to this node.
        Throws:
        java.lang.IllegalArgumentException - } if label is null
      • getStatement

        public AstNode getStatement()
        Returns the labeled statement
      • getLabelByName

        public Label getLabelByName​(java.lang.String name)
        Returns label with specified name from the label list for this labeled statement. Returns null if there is no label with that name in the list.
      • setStatement

        public void setStatement​(AstNode statement)
        Sets the labeled statement, and sets its parent to this node.
        Throws:
        java.lang.IllegalArgumentException - if statement is null
      • getFirstLabel

        public Label getFirstLabel()
      • 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.
      • visit

        public void visit​(NodeVisitor v)
        Visits this node, then each label in the label-list, and finally the statement.
        Specified by:
        visit in class AstNode
        Parameters:
        v - the object to call with this node and its children