< prev index next >

src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/AbstractParser.java

Print this page




 442      * @param name the name for the new {@code IdentNode}. It will be de-duplicated.
 443      * @return a newly constructed {@code IdentNode} with the specified token, finish, and name; the name will
 444      * be deduplicated.
 445      */
 446     protected IdentNode createIdentNode(final long identToken, final int identFinish, final String name) {
 447         final String existingName = canonicalNames.putIfAbsent(name, name);
 448         final String canonicalName = existingName != null ? existingName : name;
 449         return new IdentNode(identToken, identFinish, canonicalName);
 450     }
 451 
 452     /**
 453      * Check if current token is in identifier name
 454      *
 455      * @return true if current token is an identifier name
 456      */
 457     protected final boolean isIdentifierName() {
 458         final TokenKind kind = type.getKind();
 459         if (kind == TokenKind.KEYWORD || kind == TokenKind.FUTURE || kind == TokenKind.FUTURESTRICT) {
 460             return true;
 461         }













 462         // Fake out identifier.
 463         final long identToken = Token.recast(token, IDENT);
 464         // Get IDENT.
 465         final String ident = (String)getValue(identToken);
 466         return !ident.isEmpty() && Character.isJavaIdentifierStart(ident.charAt(0));
 467     }
 468 
 469     /**
 470      * Create an IdentNode from the current token
 471      *
 472      * @return an IdentNode representing the current token
 473      */
 474     protected final IdentNode getIdentifierName() {
 475         if (type == IDENT) {
 476             return getIdent();
 477         } else if (isIdentifierName()) {
 478             // Fake out identifier.
 479             final long identToken = Token.recast(token, IDENT);
 480             // Get IDENT.
 481             final String ident = (String)getValue(identToken);




 442      * @param name the name for the new {@code IdentNode}. It will be de-duplicated.
 443      * @return a newly constructed {@code IdentNode} with the specified token, finish, and name; the name will
 444      * be deduplicated.
 445      */
 446     protected IdentNode createIdentNode(final long identToken, final int identFinish, final String name) {
 447         final String existingName = canonicalNames.putIfAbsent(name, name);
 448         final String canonicalName = existingName != null ? existingName : name;
 449         return new IdentNode(identToken, identFinish, canonicalName);
 450     }
 451 
 452     /**
 453      * Check if current token is in identifier name
 454      *
 455      * @return true if current token is an identifier name
 456      */
 457     protected final boolean isIdentifierName() {
 458         final TokenKind kind = type.getKind();
 459         if (kind == TokenKind.KEYWORD || kind == TokenKind.FUTURE || kind == TokenKind.FUTURESTRICT) {
 460             return true;
 461         }
 462 
 463         // only literals allowed are null, false and true
 464         if (kind == TokenKind.LITERAL) {
 465             switch (type) {
 466                 case FALSE:
 467                 case NULL:
 468                 case TRUE:
 469                     return true;
 470                 default:
 471                     return false;
 472             }
 473         }
 474 
 475         // Fake out identifier.
 476         final long identToken = Token.recast(token, IDENT);
 477         // Get IDENT.
 478         final String ident = (String)getValue(identToken);
 479         return !ident.isEmpty() && Character.isJavaIdentifierStart(ident.charAt(0));
 480     }
 481 
 482     /**
 483      * Create an IdentNode from the current token
 484      *
 485      * @return an IdentNode representing the current token
 486      */
 487     protected final IdentNode getIdentifierName() {
 488         if (type == IDENT) {
 489             return getIdent();
 490         } else if (isIdentifierName()) {
 491             // Fake out identifier.
 492             final long identToken = Token.recast(token, IDENT);
 493             // Get IDENT.
 494             final String ident = (String)getValue(identToken);


< prev index next >