equal
deleted
inserted
replaced
25 |
25 |
26 package jdk.nashorn.internal.parser; |
26 package jdk.nashorn.internal.parser; |
27 |
27 |
28 import static jdk.nashorn.internal.parser.TokenType.ADD; |
28 import static jdk.nashorn.internal.parser.TokenType.ADD; |
29 import static jdk.nashorn.internal.parser.TokenType.COMMENT; |
29 import static jdk.nashorn.internal.parser.TokenType.COMMENT; |
|
30 import static jdk.nashorn.internal.parser.TokenType.DIRECTIVE_COMMENT; |
30 import static jdk.nashorn.internal.parser.TokenType.DECIMAL; |
31 import static jdk.nashorn.internal.parser.TokenType.DECIMAL; |
31 import static jdk.nashorn.internal.parser.TokenType.EOF; |
32 import static jdk.nashorn.internal.parser.TokenType.EOF; |
32 import static jdk.nashorn.internal.parser.TokenType.EOL; |
33 import static jdk.nashorn.internal.parser.TokenType.EOL; |
33 import static jdk.nashorn.internal.parser.TokenType.ERROR; |
34 import static jdk.nashorn.internal.parser.TokenType.ERROR; |
34 import static jdk.nashorn.internal.parser.TokenType.ESCSTRING; |
35 import static jdk.nashorn.internal.parser.TokenType.ESCSTRING; |
432 if (ch0 == '/') { |
433 if (ch0 == '/') { |
433 // Is it a // comment. |
434 // Is it a // comment. |
434 if (ch1 == '/') { |
435 if (ch1 == '/') { |
435 // Skip over //. |
436 // Skip over //. |
436 skip(2); |
437 skip(2); |
|
438 |
|
439 boolean directiveComment = false; |
|
440 if ((ch0 == '#' || ch0 == '@') && (ch1 == ' ')) { |
|
441 directiveComment = true; |
|
442 } |
|
443 |
437 // Scan for EOL. |
444 // Scan for EOL. |
438 while (!atEOF() && !isEOL(ch0)) { |
445 while (!atEOF() && !isEOL(ch0)) { |
439 skip(1); |
446 skip(1); |
440 } |
447 } |
441 // Did detect a comment. |
448 // Did detect a comment. |
442 add(COMMENT, start); |
449 add(directiveComment? DIRECTIVE_COMMENT : COMMENT, start); |
443 return true; |
450 return true; |
444 } else if (ch1 == '*') { |
451 } else if (ch1 == '*') { |
445 // Skip over /*. |
452 // Skip over /*. |
446 skip(2); |
453 skip(2); |
447 // Scan for */. |
454 // Scan for */. |
1621 return valueOfIdent(start, len); // String |
1628 return valueOfIdent(start, len); // String |
1622 case REGEX: |
1629 case REGEX: |
1623 return valueOfPattern(start, len); // RegexToken::LexerToken |
1630 return valueOfPattern(start, len); // RegexToken::LexerToken |
1624 case XML: |
1631 case XML: |
1625 return valueOfXML(start, len); // XMLToken::LexerToken |
1632 return valueOfXML(start, len); // XMLToken::LexerToken |
|
1633 case DIRECTIVE_COMMENT: |
|
1634 return source.getString(start, len); |
1626 default: |
1635 default: |
1627 break; |
1636 break; |
1628 } |
1637 } |
1629 |
1638 |
1630 return null; |
1639 return null; |