public class SwitchCase extends AstNode
Token.CASE
.
CaseBlock : { [CaseClauses] } { [CaseClauses] DefaultClause [CaseClauses] } CaseClauses : CaseClause CaseClauses CaseClause CaseClause : case Expression : [StatementList] DefaultClause : default : [StatementList]
AstNode.DebugPrintVisitor, AstNode.PositionComparator
Node.NodeIterator
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 and Description |
---|
SwitchCase() |
SwitchCase(int pos) |
SwitchCase(int pos,
int len) |
Modifier and Type | Method and Description |
---|---|
void |
addStatement(AstNode statement)
Adds a statement to the end of the statement list.
|
AstNode |
getExpression()
Returns the case expression,
null for default case |
java.util.List<AstNode> |
getStatements()
Returns statement list, which may be
null . |
boolean |
isDefault()
Return true if this is a default case.
|
void |
setExpression(AstNode expression)
Sets the case expression,
null for default case. |
void |
setStatements(java.util.List<AstNode> statements)
Sets statement list.
|
java.lang.String |
toSource(int depth)
Emits source code for this node.
|
void |
visit(NodeVisitor v)
Visits this node, then the case expression if present, then
each statement (if any are specified).
|
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
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
public SwitchCase()
public SwitchCase(int pos)
public SwitchCase(int pos, int len)
public AstNode getExpression()
null
for default casepublic void setExpression(AstNode expression)
null
for default case.
Note that for empty fall-through cases, they still have
a case expression. In case 0: case 1: break;
the
first case has an expression
that is a
NumberLiteral
with value 0
.public boolean isDefault()
getExpression()
would return null
public java.util.List<AstNode> getStatements()
null
.public void setStatements(java.util.List<AstNode> statements)
null
. Replaces any existing
statements. Each element in the list has its parent set to this node.public void addStatement(AstNode statement)
statement
- a child statementIllegalArgumentException}
- if statement is null
public java.lang.String toSource(int depth)
AstNode
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.
public void visit(NodeVisitor v)