in src/powerquery-parser/parser/parseState/parseStateUtils.ts [146:191]
export function isOnGeneralizedIdentifierStart(state: ParseState, tokenIndex: number = state.tokenIndex): boolean {
const maybeTokenKind: Token.TokenKind | undefined = state.lexerSnapshot.tokens[tokenIndex]?.kind;
if (maybeTokenKind === undefined) {
return false;
}
switch (maybeTokenKind) {
case Token.TokenKind.Identifier:
case Token.TokenKind.KeywordAnd:
case Token.TokenKind.KeywordAs:
case Token.TokenKind.KeywordEach:
case Token.TokenKind.KeywordElse:
case Token.TokenKind.KeywordError:
case Token.TokenKind.KeywordFalse:
case Token.TokenKind.KeywordHashBinary:
case Token.TokenKind.KeywordHashDate:
case Token.TokenKind.KeywordHashDateTime:
case Token.TokenKind.KeywordHashDateTimeZone:
case Token.TokenKind.KeywordHashDuration:
case Token.TokenKind.KeywordHashInfinity:
case Token.TokenKind.KeywordHashNan:
case Token.TokenKind.KeywordHashSections:
case Token.TokenKind.KeywordHashShared:
case Token.TokenKind.KeywordHashTable:
case Token.TokenKind.KeywordHashTime:
case Token.TokenKind.KeywordIf:
case Token.TokenKind.KeywordIn:
case Token.TokenKind.KeywordIs:
case Token.TokenKind.KeywordLet:
case Token.TokenKind.KeywordMeta:
case Token.TokenKind.KeywordNot:
case Token.TokenKind.KeywordOr:
case Token.TokenKind.KeywordOtherwise:
case Token.TokenKind.KeywordSection:
case Token.TokenKind.KeywordShared:
case Token.TokenKind.KeywordThen:
case Token.TokenKind.KeywordTrue:
case Token.TokenKind.KeywordTry:
case Token.TokenKind.KeywordType:
return true;
default:
return false;
}
}