Lines Matching defs:lexer
25 #include "lexer/TSLexer.h"
121 std::unique_ptr<lexer::Lexer> TSParser::InitLexer(const SourceFile &sourceFile)
124 auto lexer = std::make_unique<lexer::TSLexer>(&GetContext());
125 SetLexer(lexer.get());
126 return lexer;
131 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_AT);
133 lexer::SourcePosition start = Lexer()->GetToken().Start();
136 if (Lexer()->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) {
144 while (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD) {
145 Lexer()->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT);
147 if (Lexer()->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) {
159 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) {
184 ASSERT(Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_TYPE);
185 lexer::SourcePosition typeStart = Lexer()->GetToken().Start();
188 if (Lexer()->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) {
206 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) {
211 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SUBSTITUTION) {
230 case lexer::TokenType::KEYW_ANY:
231 case lexer::TokenType::KEYW_BOOLEAN:
232 case lexer::TokenType::KEYW_NUMBER:
233 case lexer::TokenType::KEYW_STRING:
234 case lexer::TokenType::KEYW_UNKNOWN:
235 case lexer::TokenType::KEYW_UNDEFINED:
236 case lexer::TokenType::KEYW_NEVER:
237 case lexer::TokenType::KEYW_OBJECT:
238 case lexer::TokenType::KEYW_BIGINT: {
252 case lexer::TokenType::LITERAL_NUMBER:
253 case lexer::TokenType::LITERAL_STRING:
254 case lexer::TokenType::LITERAL_FALSE:
255 case lexer::TokenType::LITERAL_TRUE:
256 case lexer::TokenType::LITERAL_NULL:
257 case lexer::TokenType::KEYW_THIS:
258 case lexer::TokenType::KEYW_VOID: {
261 case lexer::TokenType::LITERAL_IDENT: {
297 if (CurrentLiteralIsBasicType() && Lexer()->Lookahead() != lexer::LEX_CHAR_DOT) {
310 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MINUS ||
311 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PLUS) {
313 result = Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_READONLY;
318 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_READONLY) {
322 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET) {
329 if (Lexer()->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) {
336 result = Lexer()->GetToken().Type() == lexer::TokenType::KEYW_IN;
344 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT ||
345 Lexer()->GetToken().Type() == lexer::TokenType::KEYW_THIS);
348 bool isAsserts = Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_ASSERTS;
353 if (Lexer()->GetToken().Type() != lexer::TokenType::LITERAL_IDENT &&
354 Lexer()->GetToken().Type() != lexer::TokenType::KEYW_THIS) {
366 bool result = Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_IS;
373 if (Lexer()->GetToken().KeywordType() != lexer::TokenType::KEYW_ABSTRACT) {
377 lexer::LexerPosition pos = Lexer()->Save();
379 bool result = Lexer()->GetToken().Type() == lexer::TokenType::KEYW_NEW;
386 ir::TSImportType *TSParser::ParseImportType(const lexer::SourcePosition &startLoc, bool isTypeof)
388 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::KEYW_IMPORT);
392 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) {
405 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
412 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD) {
418 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SHIFT ||
419 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) {
420 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SHIFT) {
421 Lexer()->BackwardToken(lexer::TokenType::PUNCTUATOR_LESS_THAN, 1);
436 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::KEYW_THIS);
454 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::KEYW_EXTENDS);
459 lexer::SourcePosition startLoc = checkType->Start();
472 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_QUESTION_MARK) {
481 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COLON) {
489 lexer::SourcePosition endLoc = falseType->End();
502 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_READONLY) {
503 lexer::SourcePosition typeOperatorStart = Lexer()->GetToken().Start();
521 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_KEYOF) {
522 lexer::SourcePosition typeOperatorStart = Lexer()->GetToken().Start();
534 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_INFER) {
541 lexer::SourcePosition inferStart = Lexer()->GetToken().Start();
558 lexer::SourcePosition elementStart = Lexer()->GetToken().Start();
563 if (Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT && !CurrentLiteralIsBasicType()) {
567 if (Lexer()->Lookahead() == lexer::LEX_CHAR_COLON || Lexer()->Lookahead() == lexer::LEX_CHAR_QUESTION) {
574 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_QUESTION_MARK) {
582 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COLON) {
594 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COMMA &&
595 Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) {
615 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET);
616 lexer::SourcePosition tupleStart = Lexer()->GetToken().Start();
623 while (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) {
627 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) {
631 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COMMA) {
638 lexer::SourcePosition tupleEnd = Lexer()->GetToken().End();
655 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) {
663 } while (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET &&
664 Lexer()->Lookahead() != lexer::LEX_CHAR_RIGHT_SQUARE);
671 lexer::SourcePosition referenceStartLoc = Lexer()->GetToken().Start();
674 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::KEYW_TYPEOF);
677 if (Lexer()->GetToken().Type() == lexer::TokenType::KEYW_IMPORT) {
678 lexer::SourcePosition &startLoc = referenceStartLoc;
682 if (Lexer()->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) {
687 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT ||
688 Lexer()->GetToken().Type() == lexer::TokenType::KEYW_EXTENDS);
694 if (Lexer()->Lookahead() == lexer::LEX_CHAR_LESS_THAN) {
695 Lexer()->ForwardToken(lexer::TokenType::PUNCTUATOR_LESS_THAN, 1);
700 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD) {
705 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) {
714 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET &&
715 Lexer()->Lookahead() != lexer::LEX_CHAR_RIGHT_SQUARE) {
734 lexer::SourcePosition startLoc = Lexer()->GetToken().Start();
746 lexer::SourcePosition endLoc = constraint->End();
755 ir::MappedOption TSParser::ParseMappedOption(lexer::TokenType tokenType)
757 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_MINUS &&
758 Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_PLUS &&
763 auto result = Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MINUS ? ir::MappedOption::MINUS
766 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MINUS ||
767 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PLUS) {
782 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_BRACE);
784 lexer::SourcePosition startLoc = Lexer()->GetToken().Start();
785 Lexer()->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat '{'
787 ir::MappedOption readonly = ParseMappedOption(lexer::TokenType::KEYW_READONLY);
793 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) {
799 ir::MappedOption optional = ParseMappedOption(lexer::TokenType::PUNCTUATOR_QUESTION_MARK);
802 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) {
808 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON &&
809 Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) {
813 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
817 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) {
833 lexer::SourcePosition startPos = Lexer()->GetToken().Start();
834 bool isAsserts = Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_ASSERTS;
837 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_IS) {
844 if (Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT) {
855 lexer::SourcePosition endPos;
858 if (isAsserts && Lexer()->GetToken().KeywordType() != lexer::TokenType::KEYW_IS) {
888 lexer::SourcePosition bodyStart = Lexer()->GetToken().Start();
890 lexer::SourcePosition bodyEnd = Lexer()->GetToken().End();
929 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET);
932 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) {
936 lexer::SourcePosition endLoc = Lexer()->GetToken().End();
939 lexer::SourcePosition startLoc = elementType->Start();
949 lexer::SourcePosition startLoc;
966 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_BITWISE_OR) {
975 lexer::SourcePosition endLoc = types.back()->End();
988 lexer::SourcePosition startLoc;
1009 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_BITWISE_AND) {
1018 lexer::SourcePosition endLoc = types.back()->End();
1033 static ir::TypeNode *GetTypeAnnotationFromLiteral(TSParser *parser, lexer::Lexer *lexer)
1035 switch (lexer->GetToken().KeywordType()) {
1036 case lexer::TokenType::LITERAL_NUMBER: {
1037 if ((lexer->GetToken().Flags() & lexer::TokenFlags::NUMBER_BIGINT) != 0) {
1038 auto *bigintNode = parser->AllocNode<ir::BigIntLiteral>(lexer->GetToken().BigInt());
1039 bigintNode->SetRange(lexer->GetToken().Loc());
1043 auto *numberNode = parser->AllocNode<ir::NumberLiteral>(lexer->GetToken().GetNumber());
1044 numberNode->SetRange(lexer->GetToken().Loc());
1048 case lexer::TokenType::LITERAL_STRING: {
1049 auto *stringNode = parser->AllocNode<ir::StringLiteral>(lexer->GetToken().String());
1050 stringNode->SetRange(lexer->GetToken().Loc());
1054 case lexer::TokenType::LITERAL_TRUE: {
1056 booleanLiteral->SetRange(lexer->GetToken().Loc());
1060 case lexer::TokenType::LITERAL_FALSE: {
1062 booleanLiteral->SetRange(lexer->GetToken().Loc());
1066 case lexer::TokenType::LITERAL_NULL: {
1075 static ir::TypeNode *GetTypeAnnotation(TSParser *parser, lexer::Lexer *lexer)
1077 switch (lexer->GetToken().KeywordType()) {
1078 case lexer::TokenType::LITERAL_NUMBER:
1079 case lexer::TokenType::LITERAL_STRING:
1080 case lexer::TokenType::LITERAL_TRUE:
1081 case lexer::TokenType::LITERAL_FALSE:
1082 case lexer::TokenType::LITERAL_NULL: {
1083 return GetTypeAnnotationFromLiteral(parser, lexer);
1085 case lexer::TokenType::KEYW_ANY: {
1088 case lexer::TokenType::KEYW_BOOLEAN: {
1091 case lexer::TokenType::KEYW_NUMBER: {
1094 case lexer::TokenType::KEYW_STRING: {
1097 case lexer::TokenType::KEYW_UNKNOWN: {
1100 case lexer::TokenType::KEYW_VOID: {
1103 case lexer::TokenType::KEYW_UNDEFINED: {
1106 case lexer::TokenType::KEYW_NEVER: {
1109 case lexer::TokenType::KEYW_OBJECT: {
1112 case lexer::TokenType::KEYW_BIGINT: {
1123 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MINUS) {
1126 if (Lexer()->GetToken().Type() != lexer::TokenType::LITERAL_NUMBER) {
1145 lexer::SourcePosition typeStart = Lexer()->GetToken().Start();
1149 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_ABSTRACT) {
1156 if (Lexer()->GetToken().Type() == lexer::TokenType::KEYW_NEW) {
1160 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS &&
1161 Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LESS_THAN) {
1166 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN || isConstructionType) {
1171 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS);
1182 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA ||
1183 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_QUESTION_MARK ||
1184 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) {
1189 if (throwError && Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
1193 lexer::SourcePosition endLoc = Lexer()->GetToken().End();
1196 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_ARROW) {
1208 ir::TypeNode *TSParser::ParseFunctionType(lexer::SourcePosition startLoc, bool isConstructionType, bool throwError,
1212 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) {
1216 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) {
1227 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_ARROW) {
1257 static ir::TypeNode *ParseKeywordTokens(TSParser *parser, lexer::Lexer *lexer, ir::TypeNode *typeAnnotation,
1260 switch (lexer->GetToken().Type()) {
1261 case lexer::TokenType::KEYW_NEW: {
1265 case lexer::TokenType::KEYW_TYPEOF: {
1272 case lexer::TokenType::KEYW_IMPORT: {
1276 return parser->ParseImportType(lexer->GetToken().Start());
1278 case lexer::TokenType::KEYW_CONST: {
1286 case lexer::TokenType::KEYW_EXTENDS: {
1299 case lexer::TokenType::KEYW_THIS: {
1311 static ir::TypeNode *ParsePunctuatorTokens(TSParser *parser, lexer::Lexer *lexer, ir::TypeNode *typeAnnotation,
1314 switch (lexer->GetToken().Type()) {
1315 case lexer::TokenType::PUNCTUATOR_BITWISE_OR: {
1324 case lexer::TokenType::PUNCTUATOR_BITWISE_AND: {
1333 case lexer::TokenType::PUNCTUATOR_LESS_THAN:
1334 case lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS: {
1338 case lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET: {
1340 if (lexer->Lookahead() == lexer::LEX_CHAR_RIGHT_SQUARE) {
1349 case lexer::TokenType::PUNCTUATOR_LEFT_BRACE: {
1364 case lexer::TokenType::PUNCTUATOR_MINUS:
1365 case lexer::TokenType::LITERAL_NUMBER:
1366 case lexer::TokenType::LITERAL_STRING:
1367 case lexer::TokenType::LITERAL_FALSE:
1368 case lexer::TokenType::LITERAL_TRUE:
1369 case lexer::TokenType::LITERAL_NULL:
1370 case lexer::TokenType::KEYW_VOID: {
1377 case lexer::TokenType::LITERAL_IDENT: {
1411 const lexer::SourcePosition &startLoc, bool ignoreCallExpression)
1413 if (Lexer()->Lookahead() == lexer::LEX_CHAR_LESS_THAN ||
1420 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SHIFT) {
1421 Lexer()->BackwardToken(lexer::TokenType::PUNCTUATOR_LESS_THAN, 1);
1432 if (Lexer()->GetToken().Type() == lexer::TokenType::EOS) {
1436 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) {
1446 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_BACK_TICK) {
1448 lexer::SourcePosition endLoc = propertyNode->End();
1461 return Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS &&
1462 Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LESS_THAN;
1480 lexer::SourcePosition memberStartLoc = Lexer()->GetToken().Start();
1487 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) {
1491 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) {
1500 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) {
1523 Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT && Lexer()->Lookahead() == lexer::LEX_CHAR_COLON;
1531 ir::TSIndexSignature *TSParser::ParseIndexSignature(const lexer::SourcePosition &startLoc, bool isReadonly)
1535 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT);
1541 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON);
1556 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) {
1562 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COLON) {
1581 case lexer::TokenType::LITERAL_IDENT: {
1587 case lexer::TokenType::LITERAL_STRING: {
1593 case lexer::TokenType::LITERAL_NUMBER: {
1594 if ((Lexer()->GetToken().Flags() & lexer::TokenFlags::NUMBER_BIGINT) != 0) {
1603 case lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET: {
1609 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) {
1655 ir::AstNode *TSParser::ParsePropertyOrMethodSignature(const lexer::SourcePosition &startLoc, bool isReadonly)
1661 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_QUESTION_MARK) {
1667 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS ||
1668 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) {
1675 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) {
1680 ExpectToken(lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS, false);
1686 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) {
1701 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) {
1717 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_AT) {
1721 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS ||
1722 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) {
1727 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_NEW &&
1728 (nextCp == lexer::LEX_CHAR_LEFT_PAREN || nextCp == lexer::LEX_CHAR_LESS_THAN)) {
1732 lexer::SourcePosition startLoc = Lexer()->GetToken().Start();
1733 bool isReadonly = Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_READONLY &&
1734 nextCp != lexer::LEX_CHAR_LEFT_PAREN && nextCp != lexer::LEX_CHAR_COLON &&
1735 nextCp != lexer::LEX_CHAR_COMMA;
1740 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET &&
1757 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
1796 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS);
1802 while (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
1820 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COMMA &&
1821 Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
1825 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) {
1830 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS);
1838 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) {
1850 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS && desc->isPrivateIdent) {
1854 if (typeAnnotation == nullptr && (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS ||
1855 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN)) {
1885 lexer::SourcePosition *propEnd)
1965 bool TSParser::IsModifierKind(const lexer::Token &token)
1968 case lexer::TokenType::KEYW_PUBLIC:
1969 case lexer::TokenType::KEYW_PRIVATE:
1970 case lexer::TokenType::KEYW_PROTECTED:
1971 case lexer::TokenType::KEYW_STATIC:
1972 case lexer::TokenType::KEYW_ASYNC:
1973 case lexer::TokenType::KEYW_ABSTRACT:
1974 case lexer::TokenType::KEYW_DECLARE:
1975 case lexer::TokenType::KEYW_READONLY:
2002 if (Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT &&
2003 Lexer()->Lookahead() == lexer::LEX_CHAR_COLON) {
2009 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COLON) {
2025 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) {
2030 Lexer()->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT);
2042 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) {
2051 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) {
2073 std::tuple<bool, ir::BlockStatement *, lexer::SourcePosition, bool> TSParser::ParseFunctionBody(
2080 lexer::SourcePosition endLoc = Lexer()->GetToken().End();
2082 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_BRACE) {
2107 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SUBSTITUTION) {
2109 if (Lexer()->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) {
2124 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) {
2133 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) {
2140 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SUBSTITUTION) {