1
1
import { isReserved , Token , TokenType } from './token.js' ;
2
2
3
3
/**
4
- * Ensures that no keyword token (RESERVED_*) is preceded by dot (.)
4
+ * Ensures that no keyword token (RESERVED_*) is preceded or followed by a dot (.)
5
5
* or any other property-access operator.
6
6
*
7
7
* Ensures that all RESERVED_FUNCTION_NAME tokens are followed by "(".
8
- * If they're not, converts the token to RESERVED_KEYWORD .
8
+ * If they're not, converts the token to IDENTIFIER .
9
9
*
10
10
* Converts RESERVED_DATA_TYPE tokens followed by "(" to RESERVED_PARAMETERIZED_DATA_TYPE.
11
11
*
@@ -19,7 +19,7 @@ import { isReserved, Token, TokenType } from './token.js';
19
19
export function disambiguateTokens ( tokens : Token [ ] ) : Token [ ] {
20
20
return tokens
21
21
. map ( propertyNameKeywordToIdent )
22
- . map ( funcNameToKeyword )
22
+ . map ( funcNameToIdent )
23
23
. map ( dataTypeToParameterizedDataType )
24
24
. map ( identToArrayIdent )
25
25
. map ( dataTypeToArrayKeyword ) ;
@@ -39,11 +39,11 @@ const propertyNameKeywordToIdent = (token: Token, i: number, tokens: Token[]): T
39
39
return token ;
40
40
} ;
41
41
42
- const funcNameToKeyword = ( token : Token , i : number , tokens : Token [ ] ) : Token => {
42
+ const funcNameToIdent = ( token : Token , i : number , tokens : Token [ ] ) : Token => {
43
43
if ( token . type === TokenType . RESERVED_FUNCTION_NAME ) {
44
44
const nextToken = nextNonCommentToken ( tokens , i ) ;
45
45
if ( ! nextToken || ! isOpenParen ( nextToken ) ) {
46
- return { ...token , type : TokenType . RESERVED_KEYWORD } ;
46
+ return { ...token , type : TokenType . IDENTIFIER , text : token . raw } ;
47
47
}
48
48
}
49
49
return token ;
0 commit comments