• Home
  • Raw
  • Download

Lines Matching full:lexer

63 #include "lexer/lexer.h"
64 #include "lexer/token/letters.h"
65 #include "lexer/token/sourceLocation.h"
77 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_STRUCT) { in ParseStatementLiteralIdentHelper()
81 if (lexer_->Lookahead() == lexer::LEX_CHAR_COLON) { in ParseStatementLiteralIdentHelper()
94 case lexer::TokenType::PUNCTUATOR_LEFT_BRACE: in ParseStatementPunctuatorsHelper()
96 case lexer::TokenType::PUNCTUATOR_SEMI_COLON: in ParseStatementPunctuatorsHelper()
98 case lexer::TokenType::PUNCTUATOR_FORMAT: // 1 in ParseStatementPunctuatorsHelper()
112 case lexer::TokenType::KEYW_IF: in ParseStatementControlFlowTokenHelper()
114 case lexer::TokenType::KEYW_DO: in ParseStatementControlFlowTokenHelper()
116 case lexer::TokenType::KEYW_FOR: in ParseStatementControlFlowTokenHelper()
118 case lexer::TokenType::KEYW_TRY: in ParseStatementControlFlowTokenHelper()
120 case lexer::TokenType::KEYW_WHILE: in ParseStatementControlFlowTokenHelper()
122 case lexer::TokenType::KEYW_BREAK: in ParseStatementControlFlowTokenHelper()
124 case lexer::TokenType::KEYW_CONTINUE: in ParseStatementControlFlowTokenHelper()
126 case lexer::TokenType::KEYW_THROW: in ParseStatementControlFlowTokenHelper()
128 case lexer::TokenType::KEYW_RETURN: in ParseStatementControlFlowTokenHelper()
130 case lexer::TokenType::KEYW_SWITCH: in ParseStatementControlFlowTokenHelper()
141 bool isPunctuatorToken = tokenType == lexer::TokenType::PUNCTUATOR_LEFT_BRACE || in ParseStatement()
142 tokenType == lexer::TokenType::PUNCTUATOR_SEMI_COLON || in ParseStatement()
143 tokenType == lexer::TokenType::PUNCTUATOR_FORMAT; in ParseStatement()
148 …bool isControlFlowToken = tokenType == lexer::TokenType::KEYW_IF || tokenType == lexer::TokenType:… in ParseStatement()
149 … tokenType == lexer::TokenType::KEYW_FOR || tokenType == lexer::TokenType::KEYW_TRY || in ParseStatement()
150 … tokenType == lexer::TokenType::KEYW_WHILE || tokenType == lexer::TokenType::KEYW_BREAK || in ParseStatement()
151 tokenType == lexer::TokenType::KEYW_CONTINUE || in ParseStatement()
152 … tokenType == lexer::TokenType::KEYW_THROW || tokenType == lexer::TokenType::KEYW_RETURN || in ParseStatement()
153 tokenType == lexer::TokenType::KEYW_SWITCH; in ParseStatement()
164 case lexer::TokenType::KEYW_ASSERT: in ParseStatementBasedOnTokenType()
166 case lexer::TokenType::KEYW_EXPORT: in ParseStatementBasedOnTokenType()
168 case lexer::TokenType::KEYW_IMPORT: in ParseStatementBasedOnTokenType()
170 case lexer::TokenType::KEYW_FUNCTION: in ParseStatementBasedOnTokenType()
172 case lexer::TokenType::KEYW_ABSTRACT: in ParseStatementBasedOnTokenType()
173 case lexer::TokenType::KEYW_FINAL: in ParseStatementBasedOnTokenType()
174 case lexer::TokenType::KEYW_CLASS: in ParseStatementBasedOnTokenType()
176 case lexer::TokenType::KEYW_VAR: in ParseStatementBasedOnTokenType()
178 case lexer::TokenType::KEYW_LET: in ParseStatementBasedOnTokenType()
180 case lexer::TokenType::KEYW_CONST: in ParseStatementBasedOnTokenType()
182 case lexer::TokenType::KEYW_DEBUGGER: in ParseStatementBasedOnTokenType()
184 case lexer::TokenType::LITERAL_IDENT: in ParseStatementBasedOnTokenType()
186 case lexer::TokenType::KEYW_WITH: in ParseStatementBasedOnTokenType()
190 case lexer::TokenType::KEYW_ENUM: in ParseStatementBasedOnTokenType()
192 case lexer::TokenType::KEYW_INTERFACE: in ParseStatementBasedOnTokenType()
227 lexer::SourcePosition constVarStar = lexer_->GetToken().Start(); in ParseConstStatement()
290 LogSyntaxError("Illegal start of expression", Lexer()->GetToken().Start()); in ParseStructStatement()
309 const lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseStructDeclaration()
325 lexer::SourcePosition endLoc = classDefinition->End(); in ParseStructDeclaration()
333 const lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseClassDeclaration()
344 lexer::SourcePosition endLoc = classDefinition->End(); in ParseClassDeclaration()
365 if (lexer_->Lookahead() == lexer::LEX_CHAR_ASTERISK) { in CheckFunctionDeclaration()
374 if (tokenType == lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in ConsumeSemicolon()
380 if (!lexer_->GetToken().NewLine() && tokenType != lexer::TokenType::EOS && in ConsumeSemicolon()
381 tokenType != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ConsumeSemicolon()
388 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_FORMAT && in ParseStatementList()
397 …(flags & StatementParsingFlags::GLOBAL) != 0 ? lexer::TokenType::EOS : lexer::TokenType::PUNCTUATO… in ParseStatementList()
399 …while (lexer_->GetToken().Type() != endType && lexer_->GetToken().Type() != lexer::TokenType::EOS)… in ParseStatementList()
412 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::LITERAL_STRING); in ParseDirective()
443 …if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_STRING || !ParseDirective(statements)) { in ParseDirectivePrologue()
454 bool ParserImpl::ValidateLabeledStatement([[maybe_unused]] lexer::TokenType type) in ValidateLabeledStatement()
461 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseBlockStatement()
462 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_BRACE) { in ParseBlockStatement()
473 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParseBlockStatement()
484 void ParserImpl::ReportIllegalBreakError(const lexer::SourcePosition &startLoc) in ReportIllegalBreakError()
495 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseBreakStatement()
498 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON || in ParseBreakStatement()
499 lexer_->GetToken().Type() == lexer::TokenType::EOS || lexer_->GetToken().NewLine() || in ParseBreakStatement()
500 lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParseBreakStatement()
508 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in ParseBreakStatement()
515 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) { in ParseBreakStatement()
516 LogExpectedToken(lexer::TokenType::LITERAL_IDENT); in ParseBreakStatement()
550 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseContinueStatement()
551 lexer::SourcePosition endLoc = lexer_->GetToken().End(); in ParseContinueStatement()
554 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in ParseContinueStatement()
561 if (lexer_->GetToken().NewLine() || lexer_->GetToken().Type() == lexer::TokenType::EOS || in ParseContinueStatement()
562 lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParseContinueStatement()
568 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) { in ParseContinueStatement()
569 LogExpectedToken(lexer::TokenType::LITERAL_IDENT); in ParseContinueStatement()
593 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseDoWhileStatement()
597 if (lexer_->GetToken().Type() != lexer::TokenType::KEYW_WHILE) { in ParseDoWhileStatement()
598 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParseDoWhileStatement()
603 LogExpectedToken(lexer::TokenType::KEYW_WHILE); in ParseDoWhileStatement()
610 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParseDoWhileStatement()
611 LogExpectedToken(lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS); in ParseDoWhileStatement()
618 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseDoWhileStatement()
619 LogExpectedToken(lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS); in ParseDoWhileStatement()
631 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in ParseDoWhileStatement()
641 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseFunctionDeclaration()
643 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::KEYW_FUNCTION); in ParseFunctionDeclaration()
648 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MULTIPLY) { in ParseFunctionDeclaration()
655 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) { in ParseFunctionDeclaration()
666 lexer_->GetToken().SetTokenType(lexer::TokenType::LITERAL_IDENT); in ParseFunctionDeclaration()
681 … if (func->IsOverload() && lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in ParseFunctionDeclaration()
694 if (tokenType == lexer::TokenType::KEYW_PUBLIC || tokenType == lexer::TokenType::KEYW_PRIVATE || in ParseExpressionStatement()
695 tokenType == lexer::TokenType::KEYW_PROTECTED) { in ParseExpressionStatement()
697 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_CLASS || in ParseExpressionStatement()
698 lexer_->GetToken().Type() == lexer::TokenType::KEYW_INTERFACE) { in ParseExpressionStatement()
704 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_AT) { in ParseExpressionStatement()
713 …if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_FUNCTION && !lexer_->GetToken().NewLine())… in ParseExpressionStatement()
733 lexer::SourcePosition endPos = exprNode->End(); in ParseExpressionStatement()
762 if (lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_IN) { in ParseForInOf()
784 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseForInOf()
789 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in ParseForInOf()
793 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in ParseForInOf()
794 LogExpectedToken(lexer::TokenType::PUNCTUATOR_SEMI_COLON); in ParseForInOf()
799 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseForInOf()
813 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_IN) { in ParseIsForInOf()
863 …lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA ? ParseSequenceExpression(expr) : … in ParseForInOf()
868 … condExpr->Alternate()->AsBinaryExpression()->OperatorType() == lexer::TokenType::KEYW_IN) { in ParseForInOf()
875 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseForInOf()
880 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in ParseForInOf()
881 LogExpectedToken(lexer::TokenType::PUNCTUATOR_SEMI_COLON); in ParseForInOf()
886 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in ParseForInOf()
890 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in ParseForInOf()
892 LogExpectedToken(lexer::TokenType::PUNCTUATOR_SEMI_COLON); in ParseForInOf()
897 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseForInOf()
913 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in ParseForUpdate()
917 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in ParseForUpdate()
918 LogExpectedToken(lexer::TokenType::PUNCTUATOR_SEMI_COLON); in ParseForUpdate()
923 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseForUpdate()
934 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_AWAIT) { in ParseForLoopInitializer()
939 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParseForLoopInitializer()
942 lexer_->GetToken().SetTokenType(lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS); in ParseForLoopInitializer()
946 lexer::TokenType tokenType; in ParseForLoopInitializer()
950 if (lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_OF) { in ParseForLoopInitializer()
954 if (tokenType == lexer::TokenType::KEYW_IN) { in ParseForLoopInitializer()
959 } while (tokenType != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS && in ParseForLoopInitializer()
960 tokenType != lexer::TokenType::PUNCTUATOR_LEFT_BRACE && in ParseForLoopInitializer()
961 … tokenType != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS && tokenType != lexer::TokenType::EOS); in ParseForLoopInitializer()
965 case lexer::TokenType::KEYW_VAR: in ParseForLoopInitializer()
967 case lexer::TokenType::KEYW_LET: in ParseForLoopInitializer()
969 case lexer::TokenType::KEYW_CONST: { in ParseForLoopInitializer()
973 case lexer::TokenType::PUNCTUATOR_SEMI_COLON: in ParseForLoopInitializer()
988 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SEMI_COLON) { in GetCanBeForInOf()
1006 const lexer::SourcePosition &startLoc, bool isAwait) in CreateForStatement()
1035 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseForStatement()
1043 bool isAwait = lexer_->GetToken().Type() == lexer::TokenType::KEYW_AWAIT; in ParseForStatement()
1053 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) { in ParseForStatement()
1064 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_EXCLAMATION_MARK) { in ParseForStatement()
1067 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseForStatement()
1070 lexer_->GetToken().SetTokenType(lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS); in ParseForStatement()
1082 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseIfStatement()
1083 lexer::SourcePosition endLoc; in ParseIfStatement()
1086 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParseIfStatement()
1089 lexer_->GetToken().SetTokenType(lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS); in ParseIfStatement()
1095 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseIfStatement()
1098 lexer_->GetToken().SetTokenType(lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS); in ParseIfStatement()
1113 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_ELSE) { in ParseIfStatement()
1130 ir::LabelledStatement *ParserImpl::ParseLabelledStatement(const lexer::LexerPosition &pos) in ParseLabelledStatement()
1134 if (lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_AWAIT && context_.IsModule()) { in ParseLabelledStatement()
1149 if (!ValidateLabeledStatement(Lexer()->GetToken().Type())) { in ParseLabelledStatement()
1167 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseReturnStatement()
1168 lexer::SourcePosition endLoc = lexer_->GetToken().End(); in ParseReturnStatement()
1171 bool hasArgument = (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON && in ParseReturnStatement()
1172 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE && in ParseReturnStatement()
1173 … lexer_->GetToken().Type() != lexer::TokenType::EOS && !lexer_->GetToken().NewLine()); in ParseReturnStatement()
1203 lexer::SourcePosition caseStartLoc = lexer_->GetToken().Start(); in ParseSwitchCaseStatement()
1207 case lexer::TokenType::KEYW_CASE: { in ParseSwitchCaseStatement()
1212 case lexer::TokenType::KEYW_DEFAULT: { in ParseSwitchCaseStatement()
1221 LogSyntaxError({"Unexpected token '", lexer::TokenToString(lexer_->GetToken().Type()), in ParseSwitchCaseStatement()
1226 lexer::SourcePosition caseEndLoc = lexer_->GetToken().End(); in ParseSwitchCaseStatement()
1228 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COLON) { in ParseSwitchCaseStatement()
1229 …LogSyntaxError({"Unexpected token '", lexer::TokenToString(lexer_->GetToken().Type()), "', expecte… in ParseSwitchCaseStatement()
1235 while (lexer_->GetToken().Type() != lexer::TokenType::KEYW_CASE && in ParseSwitchCaseStatement()
1236 lexer_->GetToken().KeywordType() != lexer::TokenType::KEYW_DEFAULT && in ParseSwitchCaseStatement()
1237 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParseSwitchCaseStatement()
1254 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseSwitchStatement()
1256 if (!(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS)) { in ParseSwitchStatement()
1257 …LogSyntaxError({"Unexpected token '", lexer::TokenToString(lexer_->GetToken().Type()), "', expecte… in ParseSwitchStatement()
1264 if (!(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS)) { in ParseSwitchStatement()
1265 …LogSyntaxError({"Unexpected token '", lexer::TokenToString(lexer_->GetToken().Type()), "', expecte… in ParseSwitchStatement()
1272 if (!(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_BRACE)) { in ParseSwitchStatement()
1273 …LogSyntaxError({"Unexpected token '", lexer::TokenToString(lexer_->GetToken().Type()), "', expecte… in ParseSwitchStatement()
1281 while (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE && in ParseSwitchStatement()
1282 lexer_->GetToken().Type() != lexer::TokenType::EOS) { in ParseSwitchStatement()
1291 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParseSwitchStatement()
1311 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseThrowStatement()
1323 lexer::SourcePosition endLoc = expression->End(); in ParseThrowStatement()
1339 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParseCatchParam()
1345 if (lexer_->GetToken().Type() == lexer::TokenType::LITERAL_IDENT) { in ParseCatchParam()
1348 } else if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET) { in ParseCatchParam()
1350 } else if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_BRACE) { in ParseCatchParam()
1354 … {"Unexpected token '", lexer::TokenToString(lexer_->GetToken().Type()), "' in catch parameter."}); in ParseCatchParam()
1361 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseCatchParam()
1362 …LogSyntaxError({"Unexpected token '", lexer::TokenToString(lexer_->GetToken().Type()), "', expecte… in ParseCatchParam()
1372 lexer::SourcePosition catchStartLoc = lexer_->GetToken().Start(); in ParseCatchClause()
1377 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_BRACE) { in ParseCatchClause()
1378 …LogSyntaxError({"Unexpected token '", lexer::TokenToString(lexer_->GetToken().Type()), "', expecte… in ParseCatchClause()
1382 lexer::SourcePosition endLoc = catchBlock->End(); in ParseCatchClause()
1392 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseTryStatement()
1393 lexer::SourcePosition endLoc = lexer_->GetToken().End(); in ParseTryStatement()
1397 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_BRACE) { in ParseTryStatement()
1398 …LogSyntaxError({"Unexpected token '", lexer::TokenToString(lexer_->GetToken().Type()), "', expecte… in ParseTryStatement()
1403 if (lexer_->GetToken().Type() != lexer::TokenType::KEYW_CATCH && in ParseTryStatement()
1404 lexer_->GetToken().Type() != lexer::TokenType::KEYW_FINALLY) { in ParseTryStatement()
1419 while (lexer_->GetToken().Type() == lexer::TokenType::KEYW_CATCH) { in ParseTryStatement()
1425 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_FINALLY) { in ParseTryStatement()
1449 … const lexer::SourcePosition &startLoc) in ParseVariableDeclaratorInitializer()
1469 lexer::SourcePosition endLoc = initializer->End(); in ParseVariableDeclaratorInitializer()
1480 case lexer::TokenType::LITERAL_IDENT: { in ParseVariableDeclaratorKey()
1484 case lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET: { in ParseVariableDeclaratorKey()
1487 case lexer::TokenType::PUNCTUATOR_LEFT_BRACE: { in ParseVariableDeclaratorKey()
1515 ir::VariableDeclarator *ParserImpl::ParseVariableDeclarator(ir::Expression *init, lexer::SourcePosi… in ParseVariableDeclarator()
1518 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SUBSTITUTION) { in ParseVariableDeclarator()
1530 lexer::SourcePosition endLoc = init->End(); in ParseVariableDeclarator()
1539 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseVariableDeclarator()
1560 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseVariableDeclaration()
1568 if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_ENUM) { in ParseVariableDeclaration()
1580 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COMMA) { in ParseVariableDeclaration()
1598 lexer::SourcePosition endLoc = declarators.back()->End(); in ParseVariableDeclaration()
1607 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseWhileStatement()
1609 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParseWhileStatement()
1610 …LogSyntaxError({"Unexpected token '", lexer::TokenToString(lexer_->GetToken().Type()), "', expecte… in ParseWhileStatement()
1617 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseWhileStatement()
1618 …LogSyntaxError({"Unexpected token '", lexer::TokenToString(lexer_->GetToken().Type()), "', expecte… in ParseWhileStatement()
1629 lexer::SourcePosition endLoc = body->End(); in ParseWhileStatement()
1637 ir::ExportDefaultDeclaration *ParserImpl::ParseExportDefaultDeclaration(const lexer::SourcePosition… in ParseExportDefaultDeclaration()
1646 case lexer::TokenType::KEYW_FUNCTION: in ParseExportDefaultDeclaration()
1649 case lexer::TokenType::KEYW_CLASS: in ParseExportDefaultDeclaration()
1652 case lexer::TokenType::LITERAL_IDENT: in ParseExportDefaultDeclaration()
1654 case lexer::TokenType::KEYW_STRUCT: in ParseExportDefaultDeclaration()
1657 case lexer::TokenType::KEYW_ASYNC: in ParseExportDefaultDeclaration()
1658 if ((lexer_->GetToken().Flags() & lexer::TokenFlags::HAS_ESCAPE) == 0) { in ParseExportDefaultDeclaration()
1682 lexer::SourcePosition endLoc = declNode->End(); in ParseExportDefaultDeclaration()
1693 ir::Identifier *ParserImpl::ParseNamedExport(lexer::Token *exportedToken) in ParseNamedExport()
1695 if (exportedToken->Type() != lexer::TokenType::LITERAL_IDENT) { in ParseNamedExport()
1698 exportedToken->SetTokenType(lexer::TokenType::LITERAL_IDENT); in ParseNamedExport()
1712 ir::ExportAllDeclaration *ParserImpl::ParseExportAllDeclaration(const lexer::SourcePosition &startL… in ParseExportAllDeclaration()
1714 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat `*` character in ParseExportAllDeclaration()
1719 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); in ParseExportAllDeclaration()
1728 lexer::SourcePosition endLoc = source->End(); in ParseExportAllDeclaration()
1738 ir::ExportNamedDeclaration *ParserImpl::ParseExportNamedSpecifiers(const lexer::SourcePosition &sta… in ParseExportNamedSpecifiers()
1740 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat `{` character in ParseExportNamedSpecifiers()
1744 while (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParseExportNamedSpecifiers()
1745 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) { in ParseExportNamedSpecifiers()
1747 LogExpectedToken(lexer::TokenType::LITERAL_IDENT); in ParseExportNamedSpecifiers()
1750 lexer::Token localToken = lexer_->GetToken(); in ParseExportNamedSpecifiers()
1759 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat `as` literal in ParseExportNamedSpecifiers()
1772 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) { in ParseExportNamedSpecifiers()
1773 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat comma in ParseExportNamedSpecifiers()
1777 lexer::SourcePosition endPos = lexer_->GetToken().End(); in ParseExportNamedSpecifiers()
1782 if (lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_FROM) { in ParseExportNamedSpecifiers()
1793 ir::ExportNamedDeclaration *ParserImpl::ParseNamedExportDeclaration(const lexer::SourcePosition &st… in ParseNamedExportDeclaration()
1798 case lexer::TokenType::KEYW_VAR: in ParseNamedExportDeclaration()
1801 case lexer::TokenType::KEYW_CONST: in ParseNamedExportDeclaration()
1804 case lexer::TokenType::KEYW_LET: in ParseNamedExportDeclaration()
1807 case lexer::TokenType::KEYW_FUNCTION: in ParseNamedExportDeclaration()
1810 case lexer::TokenType::KEYW_CLASS: in ParseNamedExportDeclaration()
1813 case lexer::TokenType::LITERAL_IDENT: in ParseNamedExportDeclaration()
1814 if (lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_STRUCT) { in ParseNamedExportDeclaration()
1821 LogExpectedToken(lexer::TokenType::KEYW_ASYNC); in ParseNamedExportDeclaration()
1825 if (lexer_->GetToken().Type() != lexer::TokenType::KEYW_FUNCTION) { in ParseNamedExportDeclaration()
1826 LogExpectedToken(lexer::TokenType::KEYW_FUNCTION); in ParseNamedExportDeclaration()
1840 lexer::SourcePosition endLoc = decl->End(); in ParseNamedExportDeclaration()
1858 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseExportDeclaration()
1862 case lexer::TokenType::PUNCTUATOR_MULTIPLY: { in ParseExportDeclaration()
1865 case lexer::TokenType::PUNCTUATOR_LEFT_BRACE: { in ParseExportDeclaration()
1869 if (lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_DEFAULT) { in ParseExportDeclaration()
1879 lexer::SourcePosition namespaceStart = lexer_->GetToken().Start(); in ParseNameSpaceImport()
1883 LogExpectedToken(lexer::TokenType::KEYW_AS); in ParseNameSpaceImport()
1897 ir::Identifier *ParserImpl::ParseNamedImport(lexer::Token *importedToken) in ParseNamedImport()
1899 if (importedToken->Type() != lexer::TokenType::LITERAL_IDENT) { in ParseNamedImport()
1901 importedToken->SetTokenType(lexer::TokenType::LITERAL_IDENT); in ParseNamedImport()
1915 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat `{` character in ParseNamedImportSpecifiers()
1917 while (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParseNamedImportSpecifiers()
1918 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) { in ParseNamedImportSpecifiers()
1920 LogExpectedToken(lexer::TokenType::LITERAL_IDENT); in ParseNamedImportSpecifiers()
1923 lexer::Token importedToken = lexer_->GetToken(); in ParseNamedImportSpecifiers()
1942 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) { in ParseNamedImportSpecifiers()
1943 lexer_->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); // eat comma in ParseNamedImportSpecifiers()
1961 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) { in ParseImportDefaultSpecifier()
1970 if (lexer_->GetToken().KeywordType() != lexer::TokenType::KEYW_FROM) { in ParseFromClause()
1973 LogExpectedToken(lexer::TokenType::KEYW_FROM); in ParseFromClause()
1980 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_STRING) { in ParseFromClause()
1982 LogExpectedToken(lexer::TokenType::LITERAL_STRING); in ParseFromClause()
1983 lexer_->GetToken().SetTokenType(lexer::TokenType::LITERAL_STRING); in ParseFromClause()
1999 if (lexer_->GetToken().Type() == lexer::TokenType::LITERAL_IDENT) { in ParseImportSpecifiers()
2007 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MULTIPLY) { in ParseImportSpecifiers()
2009 } else if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_BRACE) { in ParseImportSpecifiers()
2026 if (nextChar == lexer::LEX_CHAR_LEFT_PAREN || nextChar == lexer::LEX_CHAR_DOT) { in ParseImportDeclaration()
2030 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseImportDeclaration()
2037 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_STRING) { in ParseImportDeclaration()
2048 lexer::SourcePosition endLoc = source->End(); in ParseImportDeclaration()