T - the literal typepublic abstract class LiteralNode<T> extends Expression
| Modifier and Type | Class and Description |
|---|---|
static class |
LiteralNode.ArrayLiteralNode
Array literal node class.
|
static class |
LiteralNode.PrimitiveLiteralNode<T>
Super class for primitive (side-effect free) literals.
|
| Modifier | Constructor and Description |
|---|---|
protected |
LiteralNode(LiteralNode<T> literalNode)
Copy constructor
|
protected |
LiteralNode(LiteralNode<T> literalNode,
T newValue)
A copy constructor with value change.
|
protected |
LiteralNode(long token,
int finish,
T value)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
Node |
accept(NodeVisitor<? extends LexicalContext> visitor)
Assist in IR navigation.
|
<R> R |
accept(TranslatorNodeVisitor<? extends LexicalContext,R> visitor)
Provides a means to navigate the IR.
|
List<Expression> |
getElementExpressions() |
Object |
getObject()
Fetch Object value of node.
|
String |
getString()
Fetch String value of node.
|
T |
getValue()
Get the literal node value
|
boolean |
isArray()
Test if the value is an array
|
boolean |
isString()
Test if the value is a string.
|
static LiteralNode<Object> |
newInstance(long token,
int finish)
Create a new null literal
|
static LiteralNode<Boolean> |
newInstance(long token,
int finish,
boolean value)
Create a new boolean literal
|
static LiteralNode<Expression[]> |
newInstance(long token,
int finish,
Expression[] value)
Create a new array literal of Nodes
|
static LiteralNode<Lexer.LexerToken> |
newInstance(long token,
int finish,
Lexer.LexerToken value)
Create a new literal node for a lexer token
|
static LiteralNode<Expression[]> |
newInstance(long token,
int finish,
List<Expression> value)
Create a new array literal of Nodes from a list of Node values
|
static LiteralNode<Expression[]> |
newInstance(long token,
int finish,
List<Expression> value,
boolean hasSpread,
boolean hasTrailingComma)
Create a new array literal of Nodes from a list of Node values
|
static LiteralNode<Number> |
newInstance(long token,
int finish,
Number value)
Create a new number literal
|
static LiteralNode<Number> |
newInstance(long token,
int finish,
Number value,
Function<Number,com.oracle.truffle.api.strings.TruffleString> toStringConverter)
Create a new number literal
|
static LiteralNode<com.oracle.truffle.api.strings.TruffleString> |
newInstance(long token,
com.oracle.truffle.api.strings.TruffleString value)
Create a new string literal
|
void |
toString(StringBuilder sb,
boolean printType)
Print logic that decides whether to show the optimistic type or not - for example it should
not be printed after just parse, when it hasn't been computed, or has been set to a trivially
provable value
|
getFinish, getFinishWithoutParens, getStart, getStartWithoutParens, isAlwaysFalse, isAlwaysTrue, isParenthesized, isSelfModifying, makeParenthesizedclone, equals, getSourceOrder, getToken, hashCode, isAssignment, isLoop, isTokenType, tokenType, toString, toStringprotected final T value
protected LiteralNode(long token,
int finish,
T value)
token - tokenfinish - finishvalue - the value of the literalprotected LiteralNode(LiteralNode<T> literalNode)
literalNode - source nodeprotected LiteralNode(LiteralNode<T> literalNode, T newValue)
literalNode - the original literal nodenewValue - new value for this nodepublic String getString()
public Object getObject()
public boolean isArray()
public List<Expression> getElementExpressions()
public boolean isString()
public Node accept(NodeVisitor<? extends LexicalContext> visitor)
public <R> R accept(TranslatorNodeVisitor<? extends LexicalContext,R> visitor)
Nodepublic void toString(StringBuilder sb, boolean printType)
Nodepublic final T getValue()
public static LiteralNode<Object> newInstance(long token, int finish)
token - tokenfinish - finishpublic static LiteralNode<Boolean> newInstance(long token, int finish, boolean value)
token - tokenfinish - finishvalue - true or falsepublic static LiteralNode<Number> newInstance(long token, int finish, Number value)
token - tokenfinish - finishvalue - literal valuepublic static LiteralNode<Number> newInstance(long token, int finish, Number value, Function<Number,com.oracle.truffle.api.strings.TruffleString> toStringConverter)
token - tokenfinish - finishvalue - literal valuepublic static LiteralNode<com.oracle.truffle.api.strings.TruffleString> newInstance(long token, com.oracle.truffle.api.strings.TruffleString value)
token - tokenvalue - string valuepublic static LiteralNode<Lexer.LexerToken> newInstance(long token, int finish, Lexer.LexerToken value)
token - tokenfinish - finishvalue - lexer token valuepublic static LiteralNode<Expression[]> newInstance(long token, int finish, List<Expression> value)
token - tokenfinish - finishvalue - literal value listpublic static LiteralNode<Expression[]> newInstance(long token, int finish, List<Expression> value, boolean hasSpread, boolean hasTrailingComma)
token - tokenfinish - finishvalue - literal value listhasSpread - true if the array has a spread elementhasTrailingComma - true if the array literal has a comma after the last elementpublic static LiteralNode<Expression[]> newInstance(long token, int finish, Expression[] value)
token - tokenfinish - finishvalue - literal value array