• Home
  • Raw
  • Download

Lines Matching full:lexer

57 #include <lexer/lexer.h>
67 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::KEYW_YIELD); in ParseYieldExpression()
69 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseYieldExpression()
70 lexer::SourcePosition endLoc = lexer_->GetToken().End(); in ParseYieldExpression()
72 if (lexer_->GetToken().Flags() & lexer::TokenFlags::HAS_ESCAPE) { in ParseYieldExpression()
81 …if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MULTIPLY && !lexer_->GetToken().NewL… in ParseYieldExpression()
87 …} else if (!lexer_->GetToken().NewLine() && lexer_->GetToken().Type() != lexer::TokenType::PUNCTUA… in ParseYieldExpression()
88 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS && in ParseYieldExpression()
89 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET && in ParseYieldExpression()
90 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COMMA && in ParseYieldExpression()
91 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON && in ParseYieldExpression()
92 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COLON && in ParseYieldExpression()
93 lexer_->GetToken().Type() != lexer::TokenType::EOS) { in ParseYieldExpression()
106 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA && in ParsePotentialExpressionSequence()
130 lexer::SourcePosition startLoc = expr->Start(); in ParseTsAsExpression()
134 …if (Extension() == ScriptExtension::TS && lexer_->GetToken().Type() == lexer::TokenType::LITERAL_I… in ParseTsAsExpression()
135 lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_AS && in ParseTsAsExpression()
151 lexer::SourcePosition startLoc = expr->Start(); in ParseTsSatisfiesExpression()
155 …if (Extension() == ScriptExtension::TS && lexer_->GetToken().Type() == lexer::TokenType::LITERAL_I… in ParseTsSatisfiesExpression()
156 lexer_->GetToken().KeywordType() == lexer::TokenType::KEYW_SATISFIES) { in ParseTsSatisfiesExpression()
165 …if (lexer_->GetToken().Type() == lexer::TokenType::KEYW_YIELD && !(flags & ExpressionParseFlags::D… in ParseExpression()
171 …if (Extension() == ScriptExtension::TS && lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATO… in ParseExpression()
193 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA && in ParseExpression()
205 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseArrayExpression()
214 while (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) { in ParseArrayExpression()
215 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) { in ParseArrayExpression()
226 } else if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD) { in ParseArrayExpression()
236 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) { in ParseArrayExpression()
243 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) { in ParseArrayExpression()
251 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) { in ParseArrayExpression()
266 lexer::Token::IsTsParamToken(lexer_->GetToken().Type(), lexer_->Lookahead())) { in ParseArrayExpression()
272 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SUBSTITUTION && in ParseArrayExpression()
275 … } else if (!inPattern && lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SUBSTITUTION) { in ParseArrayExpression()
372 lexer::SourcePosition endLoc; in ParseArrowFunctionExpressionBody()
373 lexer::SourcePosition bodyStart = lexer_->GetToken().Start(); in ParseArrowFunctionExpressionBody()
375 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_BRACE) { in ParseArrowFunctionExpressionBody()
385 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParseArrowFunctionExpressionBody()
468 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_ARROW); in ParseArrowFunctionExpression()
490 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN); in ParseTsGenericArrowFunction()
491 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseTsGenericArrowFunction()
495 …if (typeParamDecl == nullptr || lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PAR… in ParseTsGenericArrowFunction()
509 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) { in ParseTsGenericArrowFunction()
517 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_ARROW) { in ParseTsGenericArrowFunction()
530 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN); in ParseTsTypeAssertion()
531 lexer::SourcePosition start = lexer_->GetToken().Start(); in ParseTsTypeAssertion()
538 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_GREATER_THAN) { in ParseTsTypeAssertion()
552 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS); in ParseCoverParenthesizedExpressionAndArrowParameterList()
553 lexer::SourcePosition start = lexer_->GetToken().Start(); in ParseCoverParenthesizedExpressionAndArrowParameterList()
557 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
564 lexer::Token::IsTsParamToken(lexer_->GetToken().Type(), lexer_->Lookahead())) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
568 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
575 …if (Extension() == ScriptExtension::TS && lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATO… in ParseCoverParenthesizedExpressionAndArrowParameterList()
582 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_ARROW) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
589 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
593 …if (Extension() == ScriptExtension::TS && lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATO… in ParseCoverParenthesizedExpressionAndArrowParameterList()
600 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_ARROW) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
615 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
624 … lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON)) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
630 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
643 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_ARROW) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
725 lexer::TokenType tokenType = lexer_->GetToken().Type(); in ParseAssignmentExpression()
726 if (lhsExpression->IsGrouped() && tokenType != lexer::TokenType::PUNCTUATOR_ARROW) { in ParseAssignmentExpression()
737 case lexer::TokenType::PUNCTUATOR_QUESTION_MARK: { in ParseAssignmentExpression()
741 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COLON) { in ParseAssignmentExpression()
752 case lexer::TokenType::PUNCTUATOR_ARROW: { in ParseAssignmentExpression()
759 case lexer::TokenType::KEYW_IN: { in ParseAssignmentExpression()
766 case lexer::TokenType::PUNCTUATOR_NULLISH_COALESCING: in ParseAssignmentExpression()
767 case lexer::TokenType::PUNCTUATOR_LOGICAL_OR: in ParseAssignmentExpression()
768 case lexer::TokenType::PUNCTUATOR_LOGICAL_AND: in ParseAssignmentExpression()
769 case lexer::TokenType::PUNCTUATOR_BITWISE_OR: in ParseAssignmentExpression()
770 case lexer::TokenType::PUNCTUATOR_BITWISE_XOR: in ParseAssignmentExpression()
771 case lexer::TokenType::PUNCTUATOR_BITWISE_AND: in ParseAssignmentExpression()
772 case lexer::TokenType::PUNCTUATOR_EQUAL: in ParseAssignmentExpression()
773 case lexer::TokenType::PUNCTUATOR_NOT_EQUAL: in ParseAssignmentExpression()
774 case lexer::TokenType::PUNCTUATOR_STRICT_EQUAL: in ParseAssignmentExpression()
775 case lexer::TokenType::PUNCTUATOR_NOT_STRICT_EQUAL: in ParseAssignmentExpression()
776 case lexer::TokenType::PUNCTUATOR_LESS_THAN: in ParseAssignmentExpression()
777 case lexer::TokenType::PUNCTUATOR_LESS_THAN_EQUAL: in ParseAssignmentExpression()
778 case lexer::TokenType::PUNCTUATOR_GREATER_THAN: in ParseAssignmentExpression()
779 case lexer::TokenType::PUNCTUATOR_GREATER_THAN_EQUAL: in ParseAssignmentExpression()
780 case lexer::TokenType::PUNCTUATOR_LEFT_SHIFT: in ParseAssignmentExpression()
781 case lexer::TokenType::PUNCTUATOR_RIGHT_SHIFT: in ParseAssignmentExpression()
782 case lexer::TokenType::PUNCTUATOR_UNSIGNED_RIGHT_SHIFT: in ParseAssignmentExpression()
783 case lexer::TokenType::PUNCTUATOR_PLUS: in ParseAssignmentExpression()
784 case lexer::TokenType::PUNCTUATOR_MINUS: in ParseAssignmentExpression()
785 case lexer::TokenType::PUNCTUATOR_MULTIPLY: in ParseAssignmentExpression()
786 case lexer::TokenType::PUNCTUATOR_DIVIDE: in ParseAssignmentExpression()
787 case lexer::TokenType::PUNCTUATOR_MOD: in ParseAssignmentExpression()
788 case lexer::TokenType::KEYW_INSTANCEOF: in ParseAssignmentExpression()
789 case lexer::TokenType::PUNCTUATOR_EXPONENTIATION: { in ParseAssignmentExpression()
794 case lexer::TokenType::PUNCTUATOR_SUBSTITUTION: { in ParseAssignmentExpression()
806 case lexer::TokenType::PUNCTUATOR_UNSIGNED_RIGHT_SHIFT_EQUAL: in ParseAssignmentExpression()
807 case lexer::TokenType::PUNCTUATOR_RIGHT_SHIFT_EQUAL: in ParseAssignmentExpression()
808 case lexer::TokenType::PUNCTUATOR_LEFT_SHIFT_EQUAL: in ParseAssignmentExpression()
809 case lexer::TokenType::PUNCTUATOR_PLUS_EQUAL: in ParseAssignmentExpression()
810 case lexer::TokenType::PUNCTUATOR_MINUS_EQUAL: in ParseAssignmentExpression()
811 case lexer::TokenType::PUNCTUATOR_MULTIPLY_EQUAL: in ParseAssignmentExpression()
812 case lexer::TokenType::PUNCTUATOR_DIVIDE_EQUAL: in ParseAssignmentExpression()
813 case lexer::TokenType::PUNCTUATOR_MOD_EQUAL: in ParseAssignmentExpression()
814 case lexer::TokenType::PUNCTUATOR_BITWISE_AND_EQUAL: in ParseAssignmentExpression()
815 case lexer::TokenType::PUNCTUATOR_BITWISE_OR_EQUAL: in ParseAssignmentExpression()
816 case lexer::TokenType::PUNCTUATOR_BITWISE_XOR_EQUAL: in ParseAssignmentExpression()
817 case lexer::TokenType::PUNCTUATOR_LOGICAL_AND_EQUAL: in ParseAssignmentExpression()
818 case lexer::TokenType::PUNCTUATOR_LOGICAL_OR_EQUAL: in ParseAssignmentExpression()
819 case lexer::TokenType::PUNCTUATOR_LOGICAL_NULLISH_EQUAL: in ParseAssignmentExpression()
820 case lexer::TokenType::PUNCTUATOR_EXPONENTIATION_EQUAL: { in ParseAssignmentExpression()
832 case lexer::TokenType::LITERAL_IDENT: { in ParseAssignmentExpression()
833 lexer::TokenType keywordType = lexer_->GetToken().KeywordType(); in ParseAssignmentExpression()
834 if (Extension() == ScriptExtension::TS && keywordType == lexer::TokenType::KEYW_AS && in ParseAssignmentExpression()
838 …} else if (Extension() == ScriptExtension::TS && keywordType == lexer::TokenType::KEYW_SATISFIES && in ParseAssignmentExpression()
854 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseTemplateLiteral()
874 element->SetRange({lexer::SourcePosition {startPos.iterator.Index(), startPos.line}, in ParseTemplateLiteral()
875 lexer::SourcePosition {end, lexer_->Line()}}); in ParseTemplateLiteral()
886 lexer::TemplateLiteralParserContext ctx(lexer_); in ParseTemplateLiteral()
892 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParseTemplateLiteral()
909 lexer::SourcePosition start = lexer_->GetToken().Start(); in ParseNewExpression()
920 lexer::SourcePosition endLoc = callee->End(); in ParseNewExpression()
923 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SHIFT) { in ParseNewExpression()
924 lexer_->BackwardToken(lexer::TokenType::PUNCTUATOR_LESS_THAN, 1); in ParseNewExpression()
926 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) { in ParseNewExpression()
936 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParseNewExpression()
946 while (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseNewExpression()
949 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD) { in ParseNewExpression()
957 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) { in ParseNewExpression()
961 if (lexer_->GetToken().Type() == lexer::TokenType::EOS) { in ParseNewExpression()
981 lexer::SourceRange loc = lexer_->GetToken().Loc(); in ParsePotentialNewTarget()
987 …if (lexer_->GetToken().Type() == lexer::TokenType::LITERAL_IDENT && lexer_->GetToken().Ident().Is(… in ParsePotentialNewTarget()
992 if (lexer_->GetToken().Flags() & lexer::TokenFlags::HAS_ESCAPE) { in ParsePotentialNewTarget()
1009 case lexer::TokenType::KEYW_IMPORT: { in ParsePrimaryExpression()
1012 case lexer::TokenType::LITERAL_IDENT: { in ParsePrimaryExpression()
1020 lexer::Token::IsTsParamToken(lexer_->GetToken().Type(), lexer_->Lookahead())) { in ParsePrimaryExpression()
1027 case lexer::TokenType::LITERAL_TRUE: { in ParsePrimaryExpression()
1034 case lexer::TokenType::LITERAL_FALSE: { in ParsePrimaryExpression()
1041 case lexer::TokenType::LITERAL_NULL: { in ParsePrimaryExpression()
1048 case lexer::TokenType::LITERAL_NUMBER: { in ParsePrimaryExpression()
1051 if (lexer_->GetToken().Flags() & lexer::TokenFlags::NUMBER_BIGINT) { in ParsePrimaryExpression()
1062 case lexer::TokenType::LITERAL_STRING: { in ParsePrimaryExpression()
1069 case lexer::TokenType::PUNCTUATOR_DIVIDE: in ParsePrimaryExpression()
1070 case lexer::TokenType::PUNCTUATOR_DIVIDE_EQUAL: { in ParsePrimaryExpression()
1072 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_DIVIDE_EQUAL) { in ParsePrimaryExpression()
1073 lexer_->BackwardToken(lexer::TokenType::PUNCTUATOR_DIVIDE, 1); in ParsePrimaryExpression()
1077 lexer::RegExpParser reParser(regexp, Allocator()); in ParsePrimaryExpression()
1081 } catch (lexer::RegExpError &e) { in ParsePrimaryExpression()
1091 case lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET: { in ParsePrimaryExpression()
1096 case lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS: { in ParsePrimaryExpression()
1099 case lexer::TokenType::PUNCTUATOR_LEFT_BRACE: { in ParsePrimaryExpression()
1102 case lexer::TokenType::KEYW_FUNCTION: { in ParsePrimaryExpression()
1105 case lexer::TokenType::KEYW_CLASS: { in ParsePrimaryExpression()
1106 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParsePrimaryExpression()
1114 case lexer::TokenType::KEYW_THIS: { in ParsePrimaryExpression()
1121 case lexer::TokenType::KEYW_SUPER: { in ParsePrimaryExpression()
1127 if ((lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD || in ParsePrimaryExpression()
1128 lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET) && in ParsePrimaryExpression()
1133 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS && in ParsePrimaryExpression()
1140 case lexer::TokenType::KEYW_NEW: { in ParsePrimaryExpression()
1149 case lexer::TokenType::PUNCTUATOR_BACK_TICK: { in ParsePrimaryExpression()
1161 static size_t GetOperatorPrecedence(lexer::TokenType operatorType) in GetOperatorPrecedence()
1163 ASSERT(lexer::Token::IsBinaryToken(operatorType)); in GetOperatorPrecedence()
1166 case lexer::TokenType::PUNCTUATOR_NULLISH_COALESCING: { in GetOperatorPrecedence()
1170 case lexer::TokenType::PUNCTUATOR_LOGICAL_OR: { in GetOperatorPrecedence()
1174 case lexer::TokenType::PUNCTUATOR_LOGICAL_AND: in GetOperatorPrecedence()
1175 case lexer::TokenType::PUNCTUATOR_BITWISE_OR: { in GetOperatorPrecedence()
1179 case lexer::TokenType::PUNCTUATOR_BITWISE_XOR: { in GetOperatorPrecedence()
1183 case lexer::TokenType::PUNCTUATOR_BITWISE_AND: { in GetOperatorPrecedence()
1187 case lexer::TokenType::PUNCTUATOR_EQUAL: in GetOperatorPrecedence()
1188 case lexer::TokenType::PUNCTUATOR_NOT_EQUAL: in GetOperatorPrecedence()
1189 case lexer::TokenType::PUNCTUATOR_STRICT_EQUAL: in GetOperatorPrecedence()
1190 case lexer::TokenType::PUNCTUATOR_NOT_STRICT_EQUAL: { in GetOperatorPrecedence()
1194 case lexer::TokenType::PUNCTUATOR_LESS_THAN: in GetOperatorPrecedence()
1195 case lexer::TokenType::PUNCTUATOR_LESS_THAN_EQUAL: in GetOperatorPrecedence()
1196 case lexer::TokenType::PUNCTUATOR_GREATER_THAN: in GetOperatorPrecedence()
1197 case lexer::TokenType::PUNCTUATOR_GREATER_THAN_EQUAL: in GetOperatorPrecedence()
1198 case lexer::TokenType::KEYW_INSTANCEOF: in GetOperatorPrecedence()
1199 case lexer::TokenType::KEYW_IN: { in GetOperatorPrecedence()
1203 case lexer::TokenType::PUNCTUATOR_LEFT_SHIFT: in GetOperatorPrecedence()
1204 case lexer::TokenType::PUNCTUATOR_RIGHT_SHIFT: in GetOperatorPrecedence()
1205 case lexer::TokenType::PUNCTUATOR_UNSIGNED_RIGHT_SHIFT: { in GetOperatorPrecedence()
1209 case lexer::TokenType::PUNCTUATOR_PLUS: in GetOperatorPrecedence()
1210 case lexer::TokenType::PUNCTUATOR_MINUS: { in GetOperatorPrecedence()
1214 case lexer::TokenType::PUNCTUATOR_MULTIPLY: in GetOperatorPrecedence()
1215 case lexer::TokenType::PUNCTUATOR_DIVIDE: in GetOperatorPrecedence()
1216 case lexer::TokenType::PUNCTUATOR_MOD: { in GetOperatorPrecedence()
1220 case lexer::TokenType::PUNCTUATOR_EXPONENTIATION: { in GetOperatorPrecedence()
1231 lexer::TokenType operatorType) in ShouldBinaryExpressionBeAmended()
1235 (operatorType != lexer::TokenType::PUNCTUATOR_EXPONENTIATION || in ShouldBinaryExpressionBeAmended()
1236 binaryExpression->OperatorType() != lexer::TokenType::PUNCTUATOR_EXPONENTIATION); in ShouldBinaryExpressionBeAmended()
1241 lexer::TokenType operatorType = lexer_->GetToken().Type(); in ParseBinaryExpression()
1242 ASSERT(lexer::Token::IsBinaryToken(operatorType)); in ParseBinaryExpression()
1244 if (operatorType == lexer::TokenType::PUNCTUATOR_EXPONENTIATION) { in ParseBinaryExpression()
1266 if ((operatorType == lexer::TokenType::PUNCTUATOR_LOGICAL_OR || in ParseBinaryExpression()
1267 operatorType == lexer::TokenType::PUNCTUATOR_LOGICAL_AND) && in ParseBinaryExpression()
1268 …rightExpr->AsBinaryExpression()->OperatorType() == lexer::TokenType::PUNCTUATOR_NULLISH_COALESCING… in ParseBinaryExpression()
1299 …if (operatorType == lexer::TokenType::PUNCTUATOR_NULLISH_COALESCING && rightExpr->IsBinaryExpressi… in ParseBinaryExpression()
1303 const lexer::SourcePosition &endPos = rightExpr->End(); in ParseBinaryExpression()
1319 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS); in ParseCallExpression()
1325 while (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseCallExpression()
1327 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD) { in ParseCallExpression()
1336 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) { in ParseCallExpression()
1338 … } else if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseCallExpression()
1349 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParseCallExpression()
1362 lexer::TokenType tokenType = lexer_->GetToken().Type(); in ParseOptionalChain()
1366 case lexer::TokenType::PUNCTUATOR_HASH_MARK: in ParseOptionalChain()
1367 case lexer::TokenType::LITERAL_IDENT: in ParseOptionalChain()
1368 case lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET: { in ParseOptionalChain()
1372 case lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS: { in ParseOptionalChain()
1376 case lexer::TokenType::PUNCTUATOR_LESS_THAN: { in ParseOptionalChain()
1383 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParseOptionalChain()
1391 case lexer::TokenType::PUNCTUATOR_BACK_TICK: { in ParseOptionalChain()
1400 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_BACK_TICK) { in ParseOptionalChain()
1413 lexer::SourcePosition end; in ParseOptionalMemberExpression()
1414 lexer::TokenType tokenType = lexer_->GetToken().Type(); in ParseOptionalMemberExpression()
1415 …ASSERT(tokenType == lexer::TokenType::PUNCTUATOR_HASH_MARK || tokenType == lexer::TokenType::LITER… in ParseOptionalMemberExpression()
1416 tokenType == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET); in ParseOptionalMemberExpression()
1418 if (tokenType == lexer::TokenType::PUNCTUATOR_HASH_MARK) { in ParseOptionalMemberExpression()
1421 } else if (tokenType == lexer::TokenType::LITERAL_IDENT) { in ParseOptionalMemberExpression()
1433 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) { in ParseOptionalMemberExpression()
1446 … const lexer::SourcePosition &startLoc, in ParsePotentialArrowExpression()
1454 case lexer::TokenType::KEYW_FUNCTION: { in ParsePotentialArrowExpression()
1459 case lexer::TokenType::LITERAL_IDENT: { in ParsePotentialArrowExpression()
1472 case lexer::TokenType::PUNCTUATOR_ARROW: { in ParsePotentialArrowExpression()
1478 case lexer::TokenType::PUNCTUATOR_LEFT_SHIFT: { in ParsePotentialArrowExpression()
1485 case lexer::TokenType::PUNCTUATOR_LESS_THAN: { in ParsePotentialArrowExpression()
1496 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParsePotentialArrowExpression()
1502 case lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS: { in ParsePotentialArrowExpression()
1510 …if (Extension() == ScriptExtension::TS && lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATO… in ParsePotentialArrowExpression()
1516 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_ARROW) { in ParsePotentialArrowExpression()
1542 case lexer::TokenType::EOS: in IsGenericInstantiation()
1543 case lexer::TokenType::PUNCTUATOR_SEMI_COLON: in IsGenericInstantiation()
1544 case lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS: in IsGenericInstantiation()
1545 case lexer::TokenType::PUNCTUATOR_RIGHT_BRACE: in IsGenericInstantiation()
1546 case lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET: in IsGenericInstantiation()
1547 case lexer::TokenType::PUNCTUATOR_EQUAL: in IsGenericInstantiation()
1548 case lexer::TokenType::PUNCTUATOR_LESS_THAN_EQUAL: in IsGenericInstantiation()
1549 case lexer::TokenType::PUNCTUATOR_NOT_EQUAL: in IsGenericInstantiation()
1550 case lexer::TokenType::PUNCTUATOR_QUESTION_MARK: in IsGenericInstantiation()
1551 case lexer::TokenType::PUNCTUATOR_STRICT_EQUAL: in IsGenericInstantiation()
1552 case lexer::TokenType::PUNCTUATOR_NOT_STRICT_EQUAL: in IsGenericInstantiation()
1553 case lexer::TokenType::PUNCTUATOR_LOGICAL_AND: in IsGenericInstantiation()
1554 case lexer::TokenType::PUNCTUATOR_SUBSTITUTION: in IsGenericInstantiation()
1555 case lexer::TokenType::PUNCTUATOR_LOGICAL_OR: in IsGenericInstantiation()
1556 case lexer::TokenType::PUNCTUATOR_COMMA: in IsGenericInstantiation()
1557 case lexer::TokenType::PUNCTUATOR_NULLISH_COALESCING: in IsGenericInstantiation()
1558 case lexer::TokenType::PUNCTUATOR_LOGICAL_AND_EQUAL: in IsGenericInstantiation()
1559 case lexer::TokenType::PUNCTUATOR_LOGICAL_OR_EQUAL: in IsGenericInstantiation()
1560 case lexer::TokenType::PUNCTUATOR_QUESTION_DOT: { in IsGenericInstantiation()
1570 … const lexer::SourcePosition &startLoc, bool ignoreCallExpression) in ParsePotentialTsGenericFunctionCall()
1579 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SHIFT) { in ParsePotentialTsGenericFunctionCall()
1580 lexer_->BackwardToken(lexer::TokenType::PUNCTUATOR_LESS_THAN, 1); in ParsePotentialTsGenericFunctionCall()
1601 lexer::SourcePosition endLoc = typeParams->End(); in ParsePotentialTsGenericFunctionCall()
1606 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParsePotentialTsGenericFunctionCall()
1614 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_BACK_TICK) { in ParsePotentialTsGenericFunctionCall()
1616 lexer::SourcePosition endLoc = propertyNode->End(); in ParsePotentialTsGenericFunctionCall()
1627 ir::Expression *ParserImpl::ParsePostPrimaryExpression(ir::Expression *primaryExpr, lexer::SourcePo… in ParsePostPrimaryExpression()
1634 case lexer::TokenType::PUNCTUATOR_QUESTION_DOT: { in ParsePostPrimaryExpression()
1636 lexer_->NextToken(lexer::LexerNextTokenFlags::KEYWORD_TO_IDENT); // eat ?. in ParsePostPrimaryExpression()
1640 case lexer::TokenType::PUNCTUATOR_PERIOD: { in ParsePostPrimaryExpression()
1641 lexer_->NextToken(lexer::LexerNextTokenFlags::KEYWORD_TO_IDENT); // eat period in ParsePostPrimaryExpression()
1645 lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_HASH_MARK) { in ParsePostPrimaryExpression()
1652 lexer::SourcePosition memberStart = lexer_->GetToken().Start(); in ParsePostPrimaryExpression()
1653 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_HASH_MARK) { in ParsePostPrimaryExpression()
1658 lexer_->NextToken(lexer::LexerNextTokenFlags::KEYWORD_TO_IDENT); in ParsePostPrimaryExpression()
1661 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) { in ParsePostPrimaryExpression()
1675 const lexer::SourcePosition &startPos = returnExpression->Start(); in ParsePostPrimaryExpression()
1682 case lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET: { in ParsePostPrimaryExpression()
1690 … if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) { in ParsePostPrimaryExpression()
1694 const lexer::SourcePosition &startPos = returnExpression->Start(); in ParsePostPrimaryExpression()
1702 case lexer::TokenType::PUNCTUATOR_LEFT_SHIFT: in ParsePostPrimaryExpression()
1703 case lexer::TokenType::PUNCTUATOR_LESS_THAN: { in ParsePostPrimaryExpression()
1712 case lexer::TokenType::PUNCTUATOR_BACK_TICK: { in ParsePostPrimaryExpression()
1714 lexer::SourcePosition endLoc = propertyNode->End(); in ParsePostPrimaryExpression()
1720 case lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS: { in ParsePostPrimaryExpression()
1727 case lexer::TokenType::PUNCTUATOR_EXCLAMATION_MARK: { in ParsePostPrimaryExpression()
1781 ir::Expression *ParserImpl::SetupChainExpr(ir::Expression *const top, lexer::SourcePosition startLo… in SetupChainExpr()
1789 lexer::SourcePosition endLoc = expr->End(); in SetupChainExpr()
1805 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseMemberExpression()
1833 if (!lexer_->GetToken().NewLine() && lexer::Token::IsUpdateToken(lexer_->GetToken().Type())) { in ParseMemberExpression()
1834 lexer::SourcePosition start = returnExpression->Start(); in ParseMemberExpression()
1856 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_QUESTION_MARK) { in ParsePotentialTsFunctionParameter()
1874 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) { in ParsePotentialTsFunctionParameter()
1880 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SUBSTITUTION) { in ParsePotentialTsFunctionParameter()
1898 case lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET: { in ParsePatternElement()
1902 case lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD: { in ParsePatternElement()
1910 case lexer::TokenType::PUNCTUATOR_LEFT_BRACE: { in ParsePatternElement()
1915 case lexer::TokenType::LITERAL_IDENT: { in ParsePatternElement()
1929 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SUBSTITUTION) { in ParsePatternElement()
1944 lexer_->GetToken().Type() == lexer::TokenType::KEYW_YIELD) { in ParsePatternElement()
1951 …ir::AstNodeType::ASSIGNMENT_PATTERN, returnNode, rightNode, lexer::TokenType::PUNCTUATOR_SUBSTITUT… in ParsePatternElement()
1962 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS && in CheckPropertyKeyAsycModifier()
1963 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COLON && in CheckPropertyKeyAsycModifier()
1964 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COMMA && in CheckPropertyKeyAsycModifier()
1965 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in CheckPropertyKeyAsycModifier()
2007 void ParserImpl::ValidateAccessor(ExpressionParseFlags flags, lexer::TokenFlags currentTokenFlags) in ValidateAccessor()
2013 if (currentTokenFlags & lexer::TokenFlags::HAS_ESCAPE) { in ValidateAccessor()
2018 ir::Property *ParserImpl::ParseShorthandProperty(const lexer::LexerPosition *startPos) in ParseShorthandProperty()
2021 lexer::TokenType keywordType = lexer_->GetToken().KeywordType(); in ParseShorthandProperty()
2023 /* Rewind the lexer to the beginning of the ident to repase as common in ParseShorthandProperty()
2027 lexer::SourcePosition start = lexer_->GetToken().Start(); in ParseShorthandProperty()
2029 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) { in ParseShorthandProperty()
2033 if (lexer_->GetToken().KeywordType() >= lexer::TokenType::KEYW_PRIVATE && in ParseShorthandProperty()
2034 lexer_->GetToken().KeywordType() <= lexer::TokenType::KEYW_DECLARE) { in ParseShorthandProperty()
2047 lexer::SourcePosition end; in ParseShorthandProperty()
2050 if (keywordType == lexer::TokenType::KEYW_EVAL) { in ParseShorthandProperty()
2060 … ir::AstNodeType::ASSIGNMENT_PATTERN, value, rightNode, lexer::TokenType::PUNCTUATOR_SUBSTITUTION); in ParseShorthandProperty()
2082 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MULTIPLY) { in ParsePropertyModifiers()
2091 lexer::TokenFlags currentTokenFlags = lexer_->GetToken().Flags(); in ParsePropertyModifiers()
2093 lexer::TokenType keywordType = lexer_->GetToken().KeywordType(); in ParsePropertyModifiers()
2095 if (keywordType == lexer::TokenType::KEYW_GET && !IsAccessorDelimiter(nextCp)) { in ParsePropertyModifiers()
2099 lexer_->NextToken(lexer::LexerNextTokenFlags::KEYWORD_TO_IDENT); in ParsePropertyModifiers()
2105 if (keywordType == lexer::TokenType::KEYW_SET && !IsAccessorDelimiter(nextCp)) { in ParsePropertyModifiers()
2109 lexer_->NextToken(lexer::LexerNextTokenFlags::KEYWORD_TO_IDENT); in ParsePropertyModifiers()
2124 lexer_->NextToken(lexer::LexerNextTokenFlags::KEYWORD_TO_IDENT); in ParseGeneratorPropertyModifier()
2133 case lexer::TokenType::LITERAL_IDENT: { in ParsePropertyKey()
2139 case lexer::TokenType::LITERAL_STRING: { in ParsePropertyKey()
2145 case lexer::TokenType::LITERAL_NUMBER: { in ParsePropertyKey()
2146 if (lexer_->GetToken().Flags() & lexer::TokenFlags::NUMBER_BIGINT) { in ParsePropertyKey()
2155 case lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET: { in ParsePropertyKey()
2160 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET) { in ParsePropertyKey()
2183 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COLON) { in ParsePropertyValue()
2227 lexer_->NextToken(lexer::LexerNextTokenFlags::KEYWORD_TO_IDENT); in ParsePropertyDefinition()
2228 lexer::SourcePosition start = lexer_->GetToken().Start(); in ParsePropertyDefinition()
2230 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD) { in ParsePropertyDefinition()
2234 if (lexer_->GetToken().Type() == lexer::TokenType::LITERAL_IDENT) { in ParsePropertyDefinition()
2238 } else if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MULTIPLY) { in ParsePropertyDefinition()
2242 bool isComputed = lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET; in ParsePropertyDefinition()
2246 if ((lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS || in ParsePropertyDefinition()
2247 lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) && in ParsePropertyDefinition()
2256 lexer::SourcePosition end = value->End(); in ParsePropertyDefinition()
2271 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COMMA && in ParsePropertyEnd()
2272 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParsePropertyEnd()
2276 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA && in ParsePropertyEnd()
2287 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_BRACE); in ParseObjectExpression()
2288 lexer::SourcePosition start = lexer_->GetToken().Start(); in ParseObjectExpression()
2297 while (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParseObjectExpression()
2313 lexer::Token::IsTsParamToken(lexer_->GetToken().Type(), lexer_->Lookahead())) { in ParseObjectExpression()
2319 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SUBSTITUTION && in ParseObjectExpression()
2322 … } else if (!inPattern && lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SUBSTITUTION) { in ParseObjectExpression()
2336 lexer::SourcePosition start = startExpr->Start(); in ParseSequenceExpression()
2341 while (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) { in ParseSequenceExpression()
2344 …if (acceptRest && lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD) { in ParseSequenceExpression()
2350 …if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS && lexer_->CheckAr… in ParseSequenceExpression()
2361 lexer::SourcePosition end = sequence.back()->End(); in ParseSequenceExpression()
2370 …if (Extension() == ScriptExtension::TS && lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATO… in ParseUnaryOrPrefixUpdateExpression()
2374 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_HASH_MARK) { in ParseUnaryOrPrefixUpdateExpression()
2376 if (lexer_->GetToken().Type() != lexer::TokenType::KEYW_IN) { in ParseUnaryOrPrefixUpdateExpression()
2386 lexer::TokenType operatorType = lexer_->GetToken().Type(); in ParseUnaryOrPrefixUpdateExpression()
2387 lexer::SourcePosition start = lexer_->GetToken().Start(); in ParseUnaryOrPrefixUpdateExpression()
2393 if (lexer::Token::IsUpdateToken(operatorType)) { in ParseUnaryOrPrefixUpdateExpression()
2397 if (operatorType == lexer::TokenType::KEYW_DELETE) { in ParseUnaryOrPrefixUpdateExpression()
2406 lexer::SourcePosition end = argument->End(); in ParseUnaryOrPrefixUpdateExpression()
2410 if (lexer::Token::IsUpdateToken(operatorType)) { in ParseUnaryOrPrefixUpdateExpression()
2412 } else if (operatorType == lexer::TokenType::KEYW_AWAIT) { in ParseUnaryOrPrefixUpdateExpression()
2428 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseImportExpression()
2429 lexer::SourcePosition endLoc = lexer_->GetToken().End(); in ParseImportExpression()
2433 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD) { in ParseImportExpression()
2440 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT || in ParseImportExpression()
2441 lexer_->GetToken().KeywordType() != lexer::TokenType::KEYW_META) { in ParseImportExpression()
2452 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParseImportExpression()
2458 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD) { in ParseImportExpression()
2465 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) { in ParseImportExpression()
2469 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseImportExpression()
2488 if (lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_BRACE) { in ParseImportAssertionForDynamicImport()
2517 lexer::SourcePosition startLoc = lexer_->GetToken().Start(); in ParseFunctionExpression()
2530 if (lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MULTIPLY) { in ParseFunctionExpression()
2536 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) || in ParseFunctionExpression()
2538 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS && in ParseFunctionExpression()
2539 lexer_->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LESS_THAN)) { in ParseFunctionExpression()
2540 if (lexer_->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) { in ParseFunctionExpression()
2574 ASSERT(lexer_->GetToken().Type() == lexer::TokenType::PUNCTUATOR_HASH_MARK); in ParsePrivateIdentifier()
2582 lexer_->NextToken(lexer::LexerNextTokenFlags::KEYWORD_TO_IDENT); in ParsePrivateIdentifier()
2591 if (token.Type() != lexer::TokenType::LITERAL_IDENT) { in ParsePrivateIdentifier()