@@ -14,7 +14,8 @@ import {
1414 Tokenizer ,
1515 Token ,
1616 Range ,
17- CommentHandler
17+ CommentHandler ,
18+ IdentifierHandling
1819} from "./tokenizer" ;
1920
2021import {
@@ -579,7 +580,7 @@ export class Parser extends DiagnosticEmitter {
579580 this . tryParseSignatureIsSignature = false ;
580581 return null ;
581582 }
582- } else if ( tn . skip ( Token . IDENTIFIER ) ) {
583+ } else if ( tn . skipIdentifier ( ) ) {
583584 let name = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( tn . tokenPos , tn . pos ) ) ;
584585 if ( tn . skip ( Token . QUESTION ) ) {
585586 isSignature = true ;
@@ -678,11 +679,11 @@ export class Parser extends DiagnosticEmitter {
678679 // at '@': Identifier ('.' Identifier)* '(' Arguments
679680
680681 var startPos = tn . tokenPos ;
681- if ( tn . skip ( Token . IDENTIFIER ) ) {
682+ if ( tn . skipIdentifier ( ) ) {
682683 let name = tn . readIdentifier ( ) ;
683684 let expression : Expression = Node . createIdentifierExpression ( name , tn . range ( startPos , tn . pos ) ) ;
684685 while ( tn . skip ( Token . DOT ) ) {
685- if ( tn . skip ( Token . IDENTIFIER ) ) {
686+ if ( tn . skipIdentifier ( ) ) {
686687 name = tn . readIdentifier ( ) ;
687688 expression = Node . createPropertyAccessExpression (
688689 expression ,
@@ -744,7 +745,7 @@ export class Parser extends DiagnosticEmitter {
744745
745746 // before: Identifier (':' Type)? ('=' Expression)?
746747
747- if ( ! tn . skip ( Token . IDENTIFIER ) ) {
748+ if ( ! tn . skipIdentifier ( ) ) {
748749 this . error (
749750 DiagnosticCode . Identifier_expected ,
750751 tn . range ( )
@@ -853,7 +854,7 @@ export class Parser extends DiagnosticEmitter {
853854
854855 // before: Identifier ('=' Expression)?
855856
856- if ( ! tn . skip ( Token . IDENTIFIER ) ) {
857+ if ( ! tn . skipIdentifier ( ) ) {
857858 this . error (
858859 DiagnosticCode . Identifier_expected ,
859860 tn . range ( )
@@ -1081,7 +1082,7 @@ export class Parser extends DiagnosticEmitter {
10811082 }
10821083 isRest = true ;
10831084 }
1084- if ( tn . skip ( Token . IDENTIFIER ) ) {
1085+ if ( tn . skipIdentifier ( ) ) {
10851086 if ( ! isRest ) startRange = tn . range ( ) ;
10861087 let identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
10871088 let type : CommonTypeNode | null = null ;
@@ -1154,7 +1155,7 @@ export class Parser extends DiagnosticEmitter {
11541155 // '{' Statement* '}'
11551156 // ';'?
11561157
1157- if ( ! tn . skip ( Token . IDENTIFIER ) ) {
1158+ if ( ! tn . skipIdentifier ( ) ) {
11581159 this . error (
11591160 DiagnosticCode . Identifier_expected ,
11601161 tn . range ( tn . pos )
@@ -1281,7 +1282,7 @@ export class Parser extends DiagnosticEmitter {
12811282 // Statement
12821283
12831284 if ( tn . token == Token . FUNCTION ) {
1284- if ( tn . skip ( Token . IDENTIFIER ) ) {
1285+ if ( tn . skipIdentifier ( ) ) {
12851286 name = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
12861287 } else { // empty name
12871288 name = Node . createEmptyIdentifierExpression ( tn . range ( tn . pos ) ) ;
@@ -1397,7 +1398,7 @@ export class Parser extends DiagnosticEmitter {
13971398
13981399 var isInterface = tn . token == Token . INTERFACE ;
13991400
1400- if ( ! tn . skip ( Token . IDENTIFIER ) ) {
1401+ if ( ! tn . skipIdentifier ( ) ) {
14011402 this . error (
14021403 DiagnosticCode . Identifier_expected ,
14031404 tn . range ( )
@@ -1565,7 +1566,7 @@ export class Parser extends DiagnosticEmitter {
15651566 var setStart : i32 = 0 ;
15661567 var setEnd : i32 = 0 ;
15671568 if ( tn . skip ( Token . GET ) ) {
1568- if ( tn . peek ( true , true ) == Token . IDENTIFIER && ! tn . nextTokenOnNewLine ) {
1569+ if ( tn . peek ( true , IdentifierHandling . PREFER ) == Token . IDENTIFIER && ! tn . nextTokenOnNewLine ) {
15691570 flags |= CommonFlags . GET ;
15701571 isGetter = true ;
15711572 setStart = tn . tokenPos ;
@@ -1580,7 +1581,7 @@ export class Parser extends DiagnosticEmitter {
15801581 tn . reset ( state ) ;
15811582 }
15821583 } else if ( tn . skip ( Token . SET ) ) {
1583- if ( tn . peek ( true , true ) == Token . IDENTIFIER && ! tn . nextTokenOnNewLine ) {
1584+ if ( tn . peek ( true , IdentifierHandling . PREFER ) == Token . IDENTIFIER && ! tn . nextTokenOnNewLine ) {
15841585 flags |= CommonFlags . SET | CommonFlags . SET ;
15851586 isSetter = true ;
15861587 setStart = tn . tokenPos ;
@@ -1617,7 +1618,7 @@ export class Parser extends DiagnosticEmitter {
16171618 }
16181619 }
16191620
1620- if ( ! isConstructor && ! tn . skip ( Token . IDENTIFIER ) ) {
1621+ if ( ! isConstructor && ! tn . skipIdentifier ( ) ) {
16211622 this . error (
16221623 DiagnosticCode . Identifier_expected ,
16231624 tn . range ( )
@@ -1833,7 +1834,7 @@ export class Parser extends DiagnosticEmitter {
18331834
18341835 // at 'namespace': Identifier '{' (Variable | Function)* '}'
18351836
1836- if ( tn . skip ( Token . IDENTIFIER ) ) {
1837+ if ( tn . skipIdentifier ( ) ) {
18371838 let identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
18381839 if ( tn . skip ( Token . OPENBRACE ) ) {
18391840 let members = new Array < Statement > ( ) ;
@@ -1926,11 +1927,11 @@ export class Parser extends DiagnosticEmitter {
19261927
19271928 // before: Identifier ('as' Identifier)?
19281929
1929- if ( tn . skip ( Token . IDENTIFIER ) ) {
1930+ if ( tn . skipIdentifier ( ) ) {
19301931 let identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
19311932 let asIdentifier : IdentifierExpression | null = null ;
19321933 if ( tn . skip ( Token . AS ) ) {
1933- if ( tn . skip ( Token . IDENTIFIER ) ) {
1934+ if ( tn . skipIdentifierName ( ) ) {
19341935 asIdentifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
19351936 } else {
19361937 this . error (
@@ -1986,7 +1987,7 @@ export class Parser extends DiagnosticEmitter {
19861987 }
19871988 } else if ( tn . skip ( Token . ASTERISK ) ) {
19881989 if ( tn . skip ( Token . AS ) ) {
1989- if ( tn . skip ( Token . IDENTIFIER ) ) {
1990+ if ( tn . skipIdentifier ( ) ) {
19901991 namespaceName = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
19911992 } else {
19921993 this . error (
@@ -2044,11 +2045,11 @@ export class Parser extends DiagnosticEmitter {
20442045
20452046 // before: Identifier ('as' Identifier)?
20462047
2047- if ( tn . skip ( Token . IDENTIFIER ) ) {
2048+ if ( tn . skipIdentifierName ( ) ) {
20482049 let identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
20492050 let asIdentifier : IdentifierExpression | null = null ;
20502051 if ( tn . skip ( Token . AS ) ) {
2051- if ( tn . skip ( Token . IDENTIFIER ) ) {
2052+ if ( tn . skipIdentifier ( ) ) {
20522053 asIdentifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
20532054 } else {
20542055 this . error (
@@ -2081,10 +2082,10 @@ export class Parser extends DiagnosticEmitter {
20812082
20822083 // at 'export' 'import': Identifier ('=' Identifier)? ';'?
20832084
2084- if ( tn . skip ( Token . IDENTIFIER ) ) {
2085+ if ( tn . skipIdentifier ( ) ) {
20852086 let asIdentifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
20862087 if ( tn . skip ( Token . EQUALS ) ) {
2087- if ( tn . skip ( Token . IDENTIFIER ) ) {
2088+ if ( tn . skipIdentifier ( ) ) {
20882089 let identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
20892090 let ret = Node . createExportImportStatement ( identifier , asIdentifier , tn . range ( startPos , tn . pos ) ) ;
20902091 tn . skip ( Token . SEMICOLON ) ;
@@ -2242,7 +2243,7 @@ export class Parser extends DiagnosticEmitter {
22422243
22432244 var identifier : IdentifierExpression | null = null ;
22442245 if ( tn . peek ( true ) == Token . IDENTIFIER && ! tn . nextTokenOnNewLine ) {
2245- tn . next ( true ) ;
2246+ tn . next ( IdentifierHandling . PREFER ) ;
22462247 identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
22472248 }
22482249 var ret = Node . createBreakStatement ( identifier , tn . range ( ) ) ;
@@ -2258,7 +2259,7 @@ export class Parser extends DiagnosticEmitter {
22582259
22592260 var identifier : IdentifierExpression | null = null ;
22602261 if ( tn . peek ( true ) == Token . IDENTIFIER && ! tn . nextTokenOnNewLine ) {
2261- tn . next ( true ) ;
2262+ tn . next ( IdentifierHandling . PREFER ) ;
22622263 identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
22632264 }
22642265 var ret = Node . createContinueStatement ( identifier , tn . range ( ) ) ;
@@ -2578,7 +2579,7 @@ export class Parser extends DiagnosticEmitter {
25782579 ) ;
25792580 return null ;
25802581 }
2581- if ( ! tn . skip ( Token . IDENTIFIER ) ) {
2582+ if ( ! tn . skipIdentifier ( ) ) {
25822583 this . error (
25832584 DiagnosticCode . Identifier_expected ,
25842585 tn . range ( )
@@ -2656,7 +2657,7 @@ export class Parser extends DiagnosticEmitter {
26562657
26572658 // at 'type': Identifier ('<' TypeParameters '>')? '=' Type ';'?
26582659
2659- if ( tn . skip ( Token . IDENTIFIER ) ) {
2660+ if ( tn . skipIdentifier ( ) ) {
26602661 let name = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
26612662 let typeParameters : TypeParameterNode [ ] | null = null ;
26622663 if ( tn . skip ( Token . LESSTHAN ) ) {
@@ -2744,7 +2745,7 @@ export class Parser extends DiagnosticEmitter {
27442745 tn : Tokenizer
27452746 ) : Expression | null {
27462747
2747- var token = tn . next ( true ) ;
2748+ var token = tn . next ( IdentifierHandling . PREFER ) ;
27482749 var startPos = tn . tokenPos ;
27492750 var expr : Expression | null = null ;
27502751
@@ -2821,7 +2822,7 @@ export class Parser extends DiagnosticEmitter {
28212822 let state = tn . mark ( ) ;
28222823 let again = true ;
28232824 do {
2824- switch ( tn . next ( true ) ) {
2825+ switch ( tn . next ( IdentifierHandling . PREFER ) ) {
28252826
28262827 // function expression
28272828 case Token . DOT_DOT_DOT : {
0 commit comments