public class LetNode extends Scope
Token.LET
or Token.LETEXPR
.
LetStatement: let ( VariableDeclarationList ) Block LetExpression: let ( VariableDeclarationList ) ExpressionNote that standalone let-statements with no parens or body block, such as
let x=6, y=7;
, are represented as a
VariableDeclaration
node of type Token.LET
,
wrapped with an ExpressionStatement
.AstNode.DebugPrintVisitor, AstNode.PositionComparator
Node.NodeIterator
parentScope, symbolTable, top
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 |
---|
LetNode() |
LetNode(int pos) |
LetNode(int pos,
int len) |
Modifier and Type | Method and Description |
---|---|
AstNode |
getBody()
Returns body statement or expression.
|
int |
getLp()
Returns left paren position, -1 if missing
|
int |
getRp()
Returns right paren position, -1 if missing
|
VariableDeclaration |
getVariables()
Returns variable list
|
void |
setBody(AstNode body)
Sets body statement or expression.
|
void |
setLp(int lp)
Sets left paren position
|
void |
setParens(int lp,
int rp)
Sets both paren positions
|
void |
setRp(int rp)
Sets right paren position
|
void |
setVariables(VariableDeclaration variables)
Sets variable list.
|
java.lang.String |
toSource(int depth)
Emits source code for this node.
|
void |
visit(NodeVisitor v)
Visits this node, the variable list, and if present, the body
expression or statement.
|
addChildScope, clearParentScope, getChildScopes, getDefiningScope, getParentScope, getStatements, getSymbol, getSymbolTable, getTop, joinScopes, putSymbol, replaceWith, setParentScope, setSymbolTable, setTop, splitScope
getContinue, getDefault, getFinally, getJumpStatement, getLoop, setContinue, setDefault, setFinally, setJumpStatement, setLoop
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 LetNode()
public LetNode(int pos)
public LetNode(int pos, int len)
public VariableDeclaration getVariables()
public void setVariables(VariableDeclaration variables)
java.lang.IllegalArgumentException
- if variables is null
public AstNode getBody()
null
if the
form of the let statement is similar to a VariableDeclaration, with no
curly-brace. (This form is used to define let-bound variables in the
scope of the current block.)public void setBody(AstNode body)
body
- the body statement or expression. May be
null
.public int getLp()
public void setLp(int lp)
public int getRp()
public void setRp(int rp)
public void setParens(int lp, int rp)
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)