Lines Matching refs:lexer_

76     switch (lexer_->GetToken().Type()) {
145 if (lexer_->Lookahead() == lexer::LEX_CHAR_COLON) {
146 const auto pos = lexer_->Save();
147 lexer_->NextToken();
163 if (lexer_->Lookahead() == static_cast<char32_t>(STATEMENT_FORMAT_NODE)) {
198 lexer::SourcePosition constVarStar = lexer_->GetToken().Start();
199 lexer_->NextToken();
211 empty->SetRange(lexer_->GetToken().Loc());
212 lexer_->NextToken();
219 debuggerNode->SetRange(lexer_->GetToken().Loc());
220 lexer_->NextToken();
275 const lexer::SourcePosition startLoc = lexer_->GetToken().Start();
299 const lexer::SourcePosition startLoc = lexer_->GetToken().Start();
328 if (lexer_->Lookahead() == lexer::LEX_CHAR_ASTERISK) {
336 auto tokenType = lexer_->GetToken().Type();
338 statement->SetEnd(lexer_->GetToken().End());
339 lexer_->NextToken();
343 if (!lexer_->GetToken().NewLine() && tokenType != lexer::TokenType::EOS &&
351 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_FORMAT &&
352 lexer_->Lookahead() == static_cast<char32_t>(ARRAY_FORMAT_NODE)) {
362 while (lexer_->GetToken().Type() != endType) {
373 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::LITERAL_STRING);
375 const util::StringView &str = lexer_->GetToken().String();
400 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_STRING || !ParseDirective(statements)) {
415 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_BRACE);
417 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
418 lexer_->NextToken();
421 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) {
426 blockNode->SetRange({startLoc, lexer_->GetToken().End()});
428 lexer_->NextToken();
445 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
446 lexer_->NextToken();
448 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON ||
449 lexer_->GetToken().Type() == lexer::TokenType::EOS || lexer_->GetToken().NewLine() ||
450 lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) {
456 breakStatement->SetRange({startLoc, lexer_->GetToken().End()});
458 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
459 lexer_->NextToken();
465 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) {
469 const auto &label = lexer_->GetToken().Ident();
476 identNode->SetRange(lexer_->GetToken().Loc());
479 breakStatement->SetRange({startLoc, lexer_->GetToken().End()});
481 lexer_->NextToken();
501 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
502 lexer::SourcePosition endLoc = lexer_->GetToken().End();
503 lexer_->NextToken();
505 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
507 continueStatement->SetRange({startLoc, lexer_->GetToken().End()});
508 lexer_->NextToken();
512 if (lexer_->GetToken().NewLine() || lexer_->GetToken().Type() == lexer::TokenType::EOS ||
513 lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) {
519 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) {
523 const auto &label = lexer_->GetToken().Ident();
530 identNode->SetRange(lexer_->GetToken().Loc());
533 continueStatement->SetRange({startLoc, lexer_->GetToken().End()});
535 lexer_->NextToken();
545 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
546 lexer_->NextToken();
549 if (lexer_->GetToken().Type() != lexer::TokenType::KEYW_WHILE) {
553 lexer_->NextToken();
554 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) {
558 lexer_->NextToken();
562 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
567 doWhileStatement->SetRange({startLoc, lexer_->GetToken().End()});
569 lexer_->NextToken();
571 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
572 doWhileStatement->SetEnd(lexer_->GetToken().End());
573 lexer_->NextToken();
581 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
583 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::KEYW_FUNCTION);
586 lexer_->NextToken();
588 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MULTIPLY) {
590 lexer_->NextToken();
595 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) {
619 if (func->IsOverload() && lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
620 lexer_->NextToken();
628 const auto startPos = lexer_->Save();
631 auto tokenType = lexer_->GetToken().Type();
634 lexer_->NextToken();
635 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_CLASS ||
636 lexer_->GetToken().Type() == lexer::TokenType::KEYW_INTERFACE) {
640 lexer_->Rewind(startPos);
643 if (lexer_->GetToken().IsAsyncModifier()) {
644 lexer_->NextToken();
646 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_FUNCTION && !lexer_->GetToken().NewLine()) {
657 lexer_->Rewind(startPos);
688 if (lexer_->GetToken().IsForInOf()) {
691 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_IN) {
706 lexer_->NextToken();
713 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
715 } else if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
716 lexer_->NextToken();
719 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
722 lexer_->NextToken();
725 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
736 ASSERT(lexer_->GetToken().IsForInOf());
739 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_IN) {
768 lexer_->NextToken();
778 if (lexer_->GetToken().IsForInOf()) {
789 lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA ? ParseSequenceExpression(expr) : expr;
799 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
803 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
807 lexer_->NextToken();
809 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
810 lexer_->NextToken();
813 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
816 lexer_->NextToken();
819 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
835 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
836 lexer_->NextToken();
839 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
842 lexer_->NextToken();
845 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
856 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_AWAIT) {
858 lexer_->NextToken();
861 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) {
862 ThrowSyntaxError(MISSING_LEFT_IN_FOR, lexer_->GetToken().Start());
864 lexer_->NextToken();
867 auto const currentPosition = lexer_->Save();
869 tokenType = lexer_->GetToken().Type();
870 if (lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_OF) {
878 lexer_->NextToken();
882 lexer_->Rewind(currentPosition);
884 switch (lexer_->GetToken().Type()) {
897 ThrowSyntaxError(UNEXPECTED_TOKEN, lexer_->GetToken().Start());
900 lexer_->NextToken();
911 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
918 lexer_->NextToken();
919 bool isAwait = lexer_->GetToken().Type() == lexer::TokenType::KEYW_AWAIT;
926 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) {
927 lexer_->NextToken();
929 } else if (initNode->AsVariableDeclaration()->Declarators().size() > 1 && lexer_->GetToken().IsForInOf()) {
939 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) {
940 ThrowSyntaxError(INVALID_TYPE_ANNOTATION_IN_FOR, lexer_->GetToken().Start());
949 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_EXCLAMATION_MARK) {
950 lexer_->NextToken();
952 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
953 ThrowSyntaxError(MISSING_RIGHT_IN_FOR, lexer_->GetToken().Start());
955 lexer_->NextToken();
977 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
979 lexer_->NextToken();
981 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) {
985 lexer_->NextToken();
988 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
992 lexer_->NextToken();
1000 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_ELSE) {
1001 lexer_->NextToken(); // eat ELSE keyword
1015 if (lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_AWAIT && context_.IsModule()) {
1029 lexer_->NextToken();
1047 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
1048 lexer::SourcePosition endLoc = lexer_->GetToken().End();
1049 lexer_->NextToken();
1051 bool hasArgument = (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON &&
1052 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE &&
1053 lexer_->GetToken().Type() != lexer::TokenType::EOS && !lexer_->GetToken().NewLine());
1079 lexer::SourcePosition caseStartLoc = lexer_->GetToken().Start();
1082 switch (lexer_->GetToken().KeywordType()) {
1084 lexer_->NextToken();
1093 lexer_->NextToken();
1101 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COLON) {
1106 lexer::SourcePosition caseEndLoc = lexer_->GetToken().End();
1108 lexer_->NextToken();
1110 while (lexer_->GetToken().Type() != lexer::TokenType::KEYW_CASE &&
1111 lexer_->GetToken().KeywordType() != lexer::TokenType::KEYW_DEFAULT &&
1112 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) {
1125 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
1126 lexer_->NextToken();
1127 if (!(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS)) {
1131 lexer_->NextToken();
1134 if (!(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS)) {
1138 lexer_->NextToken();
1141 if (!(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_BRACE)) {
1145 lexer_->NextToken();
1149 while (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) {
1154 switchStatement->SetRange({startLoc, lexer_->GetToken().End()});
1156 lexer_->NextToken();
1168 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
1169 lexer_->NextToken();
1171 if (lexer_->GetToken().NewLine()) {
1191 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) {
1195 lexer_->NextToken(); // eat left paren
1197 if (lexer_->GetToken().Type() == lexer::TokenType::LITERAL_IDENT) {
1200 } else if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET) {
1202 } else if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_BRACE) {
1210 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
1214 lexer_->NextToken();
1221 lexer::SourcePosition catchStartLoc = lexer_->GetToken().Start();
1222 lexer_->NextToken(); // eat 'catch' keyword
1226 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_BRACE) {
1241 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
1242 lexer::SourcePosition endLoc = lexer_->GetToken().End();
1244 lexer_->NextToken();
1246 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_BRACE) {
1252 if (lexer_->GetToken().Type() != lexer::TokenType::KEYW_CATCH &&
1253 lexer_->GetToken().Type() != lexer::TokenType::KEYW_FINALLY) {
1261 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_CATCH) {
1267 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_FINALLY) {
1268 lexer_->NextToken(); // eat 'finally' keyword
1270 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_BRACE) {
1301 lexer_->NextToken();
1321 switch (lexer_->GetToken().Type()) {
1360 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SUBSTITUTION) {
1381 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
1397 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
1400 lexer_->NextToken();
1405 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_ENUM) {
1416 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COMMA) {
1419 lexer_->NextToken();
1440 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
1441 lexer_->NextToken();
1442 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) {
1446 lexer_->NextToken();
1449 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) {
1453 lexer_->NextToken();
1468 lexer_->NextToken(); // eat `default` keyword or `=`
1473 switch (lexer_->GetToken().Type()) {
1483 switch (lexer_->GetToken().KeywordType()) {
1489 if ((lexer_->GetToken().Flags() & lexer::TokenFlags::HAS_ESCAPE) == 0) {
1490 lexer_->NextToken(); // eat `async`
1542 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat `*` character
1547 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT);
1548 exported = ParseNamedExport(lexer_->GetToken());
1549 lexer_->NextToken(); // eat exported name
1565 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat `{` character
1569 while (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) {
1570 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) {
1574 lexer::Token localToken = lexer_->GetToken();
1575 auto *local = AllocNode<ir::Identifier>(lexer_->GetToken().Ident(), Allocator());
1576 local->SetRange(lexer_->GetToken().Loc());
1578 lexer_->NextToken(); // eat local name
1583 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat `as` literal
1584 exported = ParseNamedExport(lexer_->GetToken());
1585 lexer_->NextToken(); // eat exported name
1595 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) {
1596 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat comma
1600 lexer::SourcePosition endPos = lexer_->GetToken().End();
1601 lexer_->NextToken(); // eat right brace
1605 if (lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_FROM) {
1620 switch (lexer_->GetToken().Type()) {
1642 if (lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_STRUCT) {
1649 if (!lexer_->GetToken().IsAsyncModifier()) {
1653 lexer_->NextToken(); // eat `async` keyword
1680 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
1681 lexer_->NextToken(); // eat `export` keyword
1683 switch (lexer_->GetToken().Type()) {
1691 if (lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_DEFAULT) {
1701 lexer::SourcePosition namespaceStart = lexer_->GetToken().Start();
1702 lexer_->NextToken(); // eat `*` character
1708 lexer_->NextToken(); // eat `as` literal
1710 ir::Identifier *local = ParseNamedImport(lexer_->GetToken());
1713 specifier->SetRange({namespaceStart, lexer_->GetToken().End()});
1716 lexer_->NextToken(); // eat local name
1736 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat `{` character
1738 while (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) {
1739 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) {
1743 lexer::Token importedToken = lexer_->GetToken();
1747 imported->SetRange(lexer_->GetToken().Loc());
1749 lexer_->NextToken(); // eat import name
1752 lexer_->NextToken(); // eat `as` literal
1753 local = ParseNamedImport(lexer_->GetToken());
1754 lexer_->NextToken(); // eat local name
1763 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) {
1764 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat comma
1768 lexer_->NextToken(); // eat right brace
1773 ir::Identifier *local = ParseNamedImport(lexer_->GetToken());
1774 lexer_->NextToken(); // eat local name
1780 lexer_->NextToken(); // eat specifier name
1782 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) {
1783 lexer_->NextToken(); // eat comma
1791 if (lexer_->GetToken().KeywordType() != lexer::TokenType::KEYW_FROM) {
1796 lexer_->NextToken(); // eat `from` literal
1799 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_STRING) {
1803 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::LITERAL_STRING);
1805 auto *source = AllocNode<ir::StringLiteral>(lexer_->GetToken().String());
1806 source->SetRange(lexer_->GetToken().Loc());
1808 lexer_->NextToken();
1817 if (lexer_->GetToken().Type() == lexer::TokenType::LITERAL_IDENT) {
1825 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MULTIPLY) {
1827 } else if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_BRACE) {
1843 char32_t nextChar = lexer_->Lookahead();
1848 lexer::SourcePosition startLoc = lexer_->GetToken().Start();
1849 lexer_->NextToken(); // eat import
1855 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_STRING) {