@@ -14,7 +14,8 @@ import {
14
14
Tokenizer ,
15
15
Token ,
16
16
Range ,
17
- CommentHandler
17
+ CommentHandler ,
18
+ IdentifierHandling
18
19
} from "./tokenizer" ;
19
20
20
21
import {
@@ -579,7 +580,7 @@ export class Parser extends DiagnosticEmitter {
579
580
this . tryParseSignatureIsSignature = false ;
580
581
return null ;
581
582
}
582
- } else if ( tn . skip ( Token . IDENTIFIER ) ) {
583
+ } else if ( tn . skipIdentifier ( ) ) {
583
584
let name = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( tn . tokenPos , tn . pos ) ) ;
584
585
if ( tn . skip ( Token . QUESTION ) ) {
585
586
isSignature = true ;
@@ -678,11 +679,11 @@ export class Parser extends DiagnosticEmitter {
678
679
// at '@': Identifier ('.' Identifier)* '(' Arguments
679
680
680
681
var startPos = tn . tokenPos ;
681
- if ( tn . skip ( Token . IDENTIFIER ) ) {
682
+ if ( tn . skipIdentifier ( ) ) {
682
683
let name = tn . readIdentifier ( ) ;
683
684
let expression : Expression = Node . createIdentifierExpression ( name , tn . range ( startPos , tn . pos ) ) ;
684
685
while ( tn . skip ( Token . DOT ) ) {
685
- if ( tn . skip ( Token . IDENTIFIER ) ) {
686
+ if ( tn . skipIdentifier ( ) ) {
686
687
name = tn . readIdentifier ( ) ;
687
688
expression = Node . createPropertyAccessExpression (
688
689
expression ,
@@ -744,7 +745,7 @@ export class Parser extends DiagnosticEmitter {
744
745
745
746
// before: Identifier (':' Type)? ('=' Expression)?
746
747
747
- if ( ! tn . skip ( Token . IDENTIFIER ) ) {
748
+ if ( ! tn . skipIdentifier ( ) ) {
748
749
this . error (
749
750
DiagnosticCode . Identifier_expected ,
750
751
tn . range ( )
@@ -853,7 +854,7 @@ export class Parser extends DiagnosticEmitter {
853
854
854
855
// before: Identifier ('=' Expression)?
855
856
856
- if ( ! tn . skip ( Token . IDENTIFIER ) ) {
857
+ if ( ! tn . skipIdentifier ( ) ) {
857
858
this . error (
858
859
DiagnosticCode . Identifier_expected ,
859
860
tn . range ( )
@@ -1081,7 +1082,7 @@ export class Parser extends DiagnosticEmitter {
1081
1082
}
1082
1083
isRest = true ;
1083
1084
}
1084
- if ( tn . skip ( Token . IDENTIFIER ) ) {
1085
+ if ( tn . skipIdentifier ( ) ) {
1085
1086
if ( ! isRest ) startRange = tn . range ( ) ;
1086
1087
let identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
1087
1088
let type : CommonTypeNode | null = null ;
@@ -1154,7 +1155,7 @@ export class Parser extends DiagnosticEmitter {
1154
1155
// '{' Statement* '}'
1155
1156
// ';'?
1156
1157
1157
- if ( ! tn . skip ( Token . IDENTIFIER ) ) {
1158
+ if ( ! tn . skipIdentifier ( ) ) {
1158
1159
this . error (
1159
1160
DiagnosticCode . Identifier_expected ,
1160
1161
tn . range ( tn . pos )
@@ -1281,7 +1282,7 @@ export class Parser extends DiagnosticEmitter {
1281
1282
// Statement
1282
1283
1283
1284
if ( tn . token == Token . FUNCTION ) {
1284
- if ( tn . skip ( Token . IDENTIFIER ) ) {
1285
+ if ( tn . skipIdentifier ( ) ) {
1285
1286
name = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
1286
1287
} else { // empty name
1287
1288
name = Node . createEmptyIdentifierExpression ( tn . range ( tn . pos ) ) ;
@@ -1397,7 +1398,7 @@ export class Parser extends DiagnosticEmitter {
1397
1398
1398
1399
var isInterface = tn . token == Token . INTERFACE ;
1399
1400
1400
- if ( ! tn . skip ( Token . IDENTIFIER ) ) {
1401
+ if ( ! tn . skipIdentifier ( ) ) {
1401
1402
this . error (
1402
1403
DiagnosticCode . Identifier_expected ,
1403
1404
tn . range ( )
@@ -1565,7 +1566,7 @@ export class Parser extends DiagnosticEmitter {
1565
1566
var setStart : i32 = 0 ;
1566
1567
var setEnd : i32 = 0 ;
1567
1568
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 ) {
1569
1570
flags |= CommonFlags . GET ;
1570
1571
isGetter = true ;
1571
1572
setStart = tn . tokenPos ;
@@ -1580,7 +1581,7 @@ export class Parser extends DiagnosticEmitter {
1580
1581
tn . reset ( state ) ;
1581
1582
}
1582
1583
} 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 ) {
1584
1585
flags |= CommonFlags . SET | CommonFlags . SET ;
1585
1586
isSetter = true ;
1586
1587
setStart = tn . tokenPos ;
@@ -1617,7 +1618,7 @@ export class Parser extends DiagnosticEmitter {
1617
1618
}
1618
1619
}
1619
1620
1620
- if ( ! isConstructor && ! tn . skip ( Token . IDENTIFIER ) ) {
1621
+ if ( ! isConstructor && ! tn . skipIdentifier ( ) ) {
1621
1622
this . error (
1622
1623
DiagnosticCode . Identifier_expected ,
1623
1624
tn . range ( )
@@ -1833,7 +1834,7 @@ export class Parser extends DiagnosticEmitter {
1833
1834
1834
1835
// at 'namespace': Identifier '{' (Variable | Function)* '}'
1835
1836
1836
- if ( tn . skip ( Token . IDENTIFIER ) ) {
1837
+ if ( tn . skipIdentifier ( ) ) {
1837
1838
let identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
1838
1839
if ( tn . skip ( Token . OPENBRACE ) ) {
1839
1840
let members = new Array < Statement > ( ) ;
@@ -1926,11 +1927,11 @@ export class Parser extends DiagnosticEmitter {
1926
1927
1927
1928
// before: Identifier ('as' Identifier)?
1928
1929
1929
- if ( tn . skip ( Token . IDENTIFIER ) ) {
1930
+ if ( tn . skipIdentifier ( ) ) {
1930
1931
let identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
1931
1932
let asIdentifier : IdentifierExpression | null = null ;
1932
1933
if ( tn . skip ( Token . AS ) ) {
1933
- if ( tn . skip ( Token . IDENTIFIER ) ) {
1934
+ if ( tn . skipIdentifierName ( ) ) {
1934
1935
asIdentifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
1935
1936
} else {
1936
1937
this . error (
@@ -1986,7 +1987,7 @@ export class Parser extends DiagnosticEmitter {
1986
1987
}
1987
1988
} else if ( tn . skip ( Token . ASTERISK ) ) {
1988
1989
if ( tn . skip ( Token . AS ) ) {
1989
- if ( tn . skip ( Token . IDENTIFIER ) ) {
1990
+ if ( tn . skipIdentifier ( ) ) {
1990
1991
namespaceName = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
1991
1992
} else {
1992
1993
this . error (
@@ -2044,11 +2045,11 @@ export class Parser extends DiagnosticEmitter {
2044
2045
2045
2046
// before: Identifier ('as' Identifier)?
2046
2047
2047
- if ( tn . skip ( Token . IDENTIFIER ) ) {
2048
+ if ( tn . skipIdentifierName ( ) ) {
2048
2049
let identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
2049
2050
let asIdentifier : IdentifierExpression | null = null ;
2050
2051
if ( tn . skip ( Token . AS ) ) {
2051
- if ( tn . skip ( Token . IDENTIFIER ) ) {
2052
+ if ( tn . skipIdentifier ( ) ) {
2052
2053
asIdentifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
2053
2054
} else {
2054
2055
this . error (
@@ -2081,10 +2082,10 @@ export class Parser extends DiagnosticEmitter {
2081
2082
2082
2083
// at 'export' 'import': Identifier ('=' Identifier)? ';'?
2083
2084
2084
- if ( tn . skip ( Token . IDENTIFIER ) ) {
2085
+ if ( tn . skipIdentifier ( ) ) {
2085
2086
let asIdentifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
2086
2087
if ( tn . skip ( Token . EQUALS ) ) {
2087
- if ( tn . skip ( Token . IDENTIFIER ) ) {
2088
+ if ( tn . skipIdentifier ( ) ) {
2088
2089
let identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
2089
2090
let ret = Node . createExportImportStatement ( identifier , asIdentifier , tn . range ( startPos , tn . pos ) ) ;
2090
2091
tn . skip ( Token . SEMICOLON ) ;
@@ -2242,7 +2243,7 @@ export class Parser extends DiagnosticEmitter {
2242
2243
2243
2244
var identifier : IdentifierExpression | null = null ;
2244
2245
if ( tn . peek ( true ) == Token . IDENTIFIER && ! tn . nextTokenOnNewLine ) {
2245
- tn . next ( true ) ;
2246
+ tn . next ( IdentifierHandling . PREFER ) ;
2246
2247
identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
2247
2248
}
2248
2249
var ret = Node . createBreakStatement ( identifier , tn . range ( ) ) ;
@@ -2258,7 +2259,7 @@ export class Parser extends DiagnosticEmitter {
2258
2259
2259
2260
var identifier : IdentifierExpression | null = null ;
2260
2261
if ( tn . peek ( true ) == Token . IDENTIFIER && ! tn . nextTokenOnNewLine ) {
2261
- tn . next ( true ) ;
2262
+ tn . next ( IdentifierHandling . PREFER ) ;
2262
2263
identifier = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
2263
2264
}
2264
2265
var ret = Node . createContinueStatement ( identifier , tn . range ( ) ) ;
@@ -2578,7 +2579,7 @@ export class Parser extends DiagnosticEmitter {
2578
2579
) ;
2579
2580
return null ;
2580
2581
}
2581
- if ( ! tn . skip ( Token . IDENTIFIER ) ) {
2582
+ if ( ! tn . skipIdentifier ( ) ) {
2582
2583
this . error (
2583
2584
DiagnosticCode . Identifier_expected ,
2584
2585
tn . range ( )
@@ -2656,7 +2657,7 @@ export class Parser extends DiagnosticEmitter {
2656
2657
2657
2658
// at 'type': Identifier ('<' TypeParameters '>')? '=' Type ';'?
2658
2659
2659
- if ( tn . skip ( Token . IDENTIFIER ) ) {
2660
+ if ( tn . skipIdentifier ( ) ) {
2660
2661
let name = Node . createIdentifierExpression ( tn . readIdentifier ( ) , tn . range ( ) ) ;
2661
2662
let typeParameters : TypeParameterNode [ ] | null = null ;
2662
2663
if ( tn . skip ( Token . LESSTHAN ) ) {
@@ -2744,7 +2745,7 @@ export class Parser extends DiagnosticEmitter {
2744
2745
tn : Tokenizer
2745
2746
) : Expression | null {
2746
2747
2747
- var token = tn . next ( true ) ;
2748
+ var token = tn . next ( IdentifierHandling . PREFER ) ;
2748
2749
var startPos = tn . tokenPos ;
2749
2750
var expr : Expression | null = null ;
2750
2751
@@ -2821,7 +2822,7 @@ export class Parser extends DiagnosticEmitter {
2821
2822
let state = tn . mark ( ) ;
2822
2823
let again = true ;
2823
2824
do {
2824
- switch ( tn . next ( true ) ) {
2825
+ switch ( tn . next ( IdentifierHandling . PREFER ) ) {
2825
2826
2826
2827
// function expression
2827
2828
case Token . DOT_DOT_DOT : {
0 commit comments