public class ExpressionStatement extends AstNode
Token.EXPR_VOID
if inside a function, or else
Token.EXPR_RESULT
if inside a script.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 |
---|
ExpressionStatement() |
ExpressionStatement(AstNode expr)
Constructs a new
ExpressionStatement wrapping
the specified expression. |
ExpressionStatement(AstNode expr,
boolean hasResult)
Constructs a new
ExpressionStatement wrapping
the specified expression. |
ExpressionStatement(int pos,
int len) |
ExpressionStatement(int pos,
int len,
AstNode expr)
Constructs a new
ExpressionStatement |
Modifier and Type | Method and Description |
---|---|
AstNode |
getExpression()
Returns the wrapped expression
|
boolean |
hasSideEffects()
Returns true if this node has side effects
|
void |
setExpression(AstNode expression)
Sets the wrapped expression, and sets its parent to this node.
|
void |
setHasResult()
Called by the parser to set node type to EXPR_RESULT
if this node is not within a Function.
|
java.lang.String |
toSource(int depth)
Emits source code for this node.
|
void |
visit(NodeVisitor v)
Visits this node, then the wrapped statement.
|
addChild, assertNotNull, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, 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 ExpressionStatement()
public ExpressionStatement(AstNode expr, boolean hasResult)
ExpressionStatement
wrapping
the specified expression. Sets this node's position to the
position of the wrapped node, and sets the wrapped node's
position to zero. Sets this node's length to the length of
the wrapped node.expr
- the wrapped expressionhasResult
- true
if this expression has side
effects. If true, sets node type to EXPR_RESULT, else to EXPR_VOID.public ExpressionStatement(AstNode expr)
ExpressionStatement
wrapping
the specified expression. Sets this node's position to the
position of the wrapped node, and sets the wrapped node's
position to zero. Sets this node's length to the length of
the wrapped node.expr
- the wrapped expressionpublic ExpressionStatement(int pos, int len)
public ExpressionStatement(int pos, int len, AstNode expr)
ExpressionStatement
expr
- the wrapped AstNode
.
The ExpressionStatement
's bounds are set to those of expr,
and expr's parent is set to this node.java.lang.IllegalArgumentException
- if expr
is nullpublic void setHasResult()
public AstNode getExpression()
public void setExpression(AstNode expression)
IllegalArgumentException}
- if expression is null
public boolean hasSideEffects()
hasSideEffects
in class AstNode
java.lang.IllegalStateException
- if expression has not yet
been set.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)