src/jdk/nashorn/internal/ir/LiteralNode.java

Print this page




 477      */
 478     public static LiteralNode<?> newInstance(final Node parent, final String value) {
 479         return new StringLiteralNode(parent.getSource(), parent.getToken(), parent.getFinish(), value);
 480     }
 481 
 482     private static class LexerTokenLiteralNode extends LiteralNode<LexerToken> {
 483         private LexerTokenLiteralNode(final Source source, final long token, final int finish, final LexerToken value) {
 484             super(source, Token.recast(token, TokenType.STRING), finish, value); //TODO is string the correct token type here?
 485         }
 486 
 487         private LexerTokenLiteralNode(final LexerTokenLiteralNode literalNode) {
 488             super(literalNode);
 489         }
 490 
 491         @Override
 492         protected Node copy(final CopyState cs) {
 493             return new LexerTokenLiteralNode(this);
 494         }
 495 
 496         @Override





 497         public void toString(final StringBuilder sb) {
 498             sb.append(value.toString());
 499         }
 500     }
 501 
 502     /**
 503      * Create a new literal node for a lexer token
 504      *
 505      * @param source  the source
 506      * @param token   token
 507      * @param finish  finish
 508      * @param value   lexer token value
 509      *
 510      * @return the new literal node
 511      */
 512     public static LiteralNode<LexerToken> newInstance(final Source source, final long token, final int finish, final LexerToken value) {
 513         return new LexerTokenLiteralNode(source, token, finish, value);
 514     }
 515 
 516     /**




 477      */
 478     public static LiteralNode<?> newInstance(final Node parent, final String value) {
 479         return new StringLiteralNode(parent.getSource(), parent.getToken(), parent.getFinish(), value);
 480     }
 481 
 482     private static class LexerTokenLiteralNode extends LiteralNode<LexerToken> {
 483         private LexerTokenLiteralNode(final Source source, final long token, final int finish, final LexerToken value) {
 484             super(source, Token.recast(token, TokenType.STRING), finish, value); //TODO is string the correct token type here?
 485         }
 486 
 487         private LexerTokenLiteralNode(final LexerTokenLiteralNode literalNode) {
 488             super(literalNode);
 489         }
 490 
 491         @Override
 492         protected Node copy(final CopyState cs) {
 493             return new LexerTokenLiteralNode(this);
 494         }
 495 
 496         @Override
 497         public Type getType() {
 498             return Type.OBJECT;
 499         }
 500 
 501         @Override
 502         public void toString(final StringBuilder sb) {
 503             sb.append(value.toString());
 504         }
 505     }
 506 
 507     /**
 508      * Create a new literal node for a lexer token
 509      *
 510      * @param source  the source
 511      * @param token   token
 512      * @param finish  finish
 513      * @param value   lexer token value
 514      *
 515      * @return the new literal node
 516      */
 517     public static LiteralNode<LexerToken> newInstance(final Source source, final long token, final int finish, final LexerToken value) {
 518         return new LexerTokenLiteralNode(source, token, finish, value);
 519     }
 520 
 521     /**