• Home
  • Raw
  • Download

Lines Matching full:lexer

19 #include "lexer/lexer.h"
34 static std::string GetArgumentsSourceView(lexer::Lexer *lexer, const util::StringView::Iterator &le… in GetArgumentsSourceView() argument
36 … std::string value = lexer->SourceView(lexerPos.Index(), lexer->Save().Iterator().Index()).Mutf8(); in GetArgumentsSourceView()
52 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_SUBSTITUTION) { in ParseFunctionParameterExpression()
53 auto const lexerPos = Lexer()->Save().Iterator(); in ParseFunctionParameterExpression()
54 Lexer()->NextToken(); // eat '=' in ParseFunctionParameterExpression()
67 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS || in ParseFunctionParameterExpression()
68 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA) { in ParseFunctionParameterExpression()
81 std::string value = GetArgumentsSourceView(Lexer(), lexerPos); in ParseFunctionParameterExpression()
98 switch (Lexer()->GetToken().Type()) { in ResolveArgumentUnaryExpr()
99 case lexer::TokenType::PUNCTUATOR_PLUS: in ResolveArgumentUnaryExpr()
100 case lexer::TokenType::PUNCTUATOR_MINUS: in ResolveArgumentUnaryExpr()
101 case lexer::TokenType::PUNCTUATOR_TILDE: in ResolveArgumentUnaryExpr()
102 case lexer::TokenType::PUNCTUATOR_EXCLAMATION_MARK: in ResolveArgumentUnaryExpr()
103 case lexer::TokenType::PUNCTUATOR_PLUS_PLUS: in ResolveArgumentUnaryExpr()
104 case lexer::TokenType::PUNCTUATOR_MINUS_MINUS: in ResolveArgumentUnaryExpr()
105 case lexer::TokenType::KEYW_TYPEOF: { in ResolveArgumentUnaryExpr()
114 ir::Expression *ETSParser::CreateUnaryExpressionFromArgument(ir::Expression *argument, lexer::Token… in CreateUnaryExpressionFromArgument()
118 if (lexer::Token::IsUpdateToken(operatorType)) { in CreateUnaryExpressionFromArgument()
120 } else if (operatorType == lexer::TokenType::KEYW_TYPEOF) { in CreateUnaryExpressionFromArgument()
122 } else if (operatorType == lexer::TokenType::PUNCTUATOR_MINUS && argument->IsNumberLiteral()) { in CreateUnaryExpressionFromArgument()
132 static bool IsLeftHandSideExpression(lexer::TokenType &operatorType, lexer::NextTokenFlags &tokenFl… in IsLeftHandSideExpression()
133 lexer::TokenType keywordType) in IsLeftHandSideExpression()
135 …if (operatorType == lexer::TokenType::LITERAL_IDENT && keywordType == lexer::TokenType::KEYW_TYPEO… in IsLeftHandSideExpression()
136 operatorType = lexer::TokenType::KEYW_TYPEOF; in IsLeftHandSideExpression()
140 case lexer::TokenType::PUNCTUATOR_MINUS: in IsLeftHandSideExpression()
141 tokenFlags = lexer::NextTokenFlags::UNARY_MINUS; in IsLeftHandSideExpression()
143 case lexer::TokenType::PUNCTUATOR_PLUS_PLUS: in IsLeftHandSideExpression()
144 case lexer::TokenType::PUNCTUATOR_MINUS_MINUS: in IsLeftHandSideExpression()
145 case lexer::TokenType::PUNCTUATOR_PLUS: in IsLeftHandSideExpression()
146 case lexer::TokenType::PUNCTUATOR_TILDE: in IsLeftHandSideExpression()
147 case lexer::TokenType::PUNCTUATOR_EXCLAMATION_MARK: in IsLeftHandSideExpression()
148 case lexer::TokenType::KEYW_TYPEOF: in IsLeftHandSideExpression()
149 case lexer::TokenType::KEYW_AWAIT: in IsLeftHandSideExpression()
162 while (Lexer()->GetToken().Type() != lexer::TokenType::EOS) { in ParseUnaryOrPrefixUpdateExpression()
163 Lexer()->NextToken(); in ParseUnaryOrPrefixUpdateExpression()
165 return AllocBrokenExpression(Lexer()->GetToken().Loc()); in ParseUnaryOrPrefixUpdateExpression()
167 auto tokenFlags = lexer::NextTokenFlags::NONE; in ParseUnaryOrPrefixUpdateExpression()
168 lexer::TokenType operatorType = Lexer()->GetToken().Type(); in ParseUnaryOrPrefixUpdateExpression()
169 if (IsLeftHandSideExpression(operatorType, tokenFlags, Lexer()->GetToken().KeywordType())) { in ParseUnaryOrPrefixUpdateExpression()
173 char32_t beginningChar = Lexer()->Lookahead(); in ParseUnaryOrPrefixUpdateExpression()
174 auto start = Lexer()->GetToken().Start(); in ParseUnaryOrPrefixUpdateExpression()
175 Lexer()->NextToken(tokenFlags); in ParseUnaryOrPrefixUpdateExpression()
178 if (operatorType == lexer::TokenType::KEYW_AWAIT) { in ParseUnaryOrPrefixUpdateExpression()
189 if (lexer::Token::IsUpdateToken(operatorType)) { in ParseUnaryOrPrefixUpdateExpression()
207 const auto startPos = Lexer()->Save(); in ParsePropertyDefinition()
208 Lexer()->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); in ParsePropertyDefinition()
209 lexer::SourcePosition start = Lexer()->GetToken().Start(); in ParsePropertyDefinition()
211 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD) { in ParsePropertyDefinition()
215 if (Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT) { in ParsePropertyDefinition()
219 } else if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_MULTIPLY) { in ParsePropertyDefinition()
223 … bool isComputed = Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET; in ParsePropertyDefinition()
228 lexer::SourcePosition end = value->End(); in ParsePropertyDefinition()
244 bool CheckNextTokenOfTypeof(const lexer::Token &token) in CheckNextTokenOfTypeof()
246 bool pretendTypeof = token.KeywordType() == lexer::TokenType::KEYW_TYPEOF; in CheckNextTokenOfTypeof()
258 switch (Lexer()->GetToken().Type()) { in ParsePropertyKey()
259 case lexer::TokenType::LITERAL_IDENT: { in ParsePropertyKey()
260 const util::StringView &ident = Lexer()->GetToken().Ident(); in ParsePropertyKey()
263 key->SetRange(Lexer()->GetToken().Loc()); in ParsePropertyKey()
264 Lexer()->NextToken(); in ParsePropertyKey()
267 case lexer::TokenType::LITERAL_STRING: { in ParsePropertyKey()
268 const util::StringView &string = Lexer()->GetToken().String(); in ParsePropertyKey()
271 key->SetRange(Lexer()->GetToken().Loc()); in ParsePropertyKey()
272 Lexer()->NextToken(); in ParsePropertyKey()
275 case lexer::TokenType::LITERAL_NUMBER: { in ParsePropertyKey()
276 if ((Lexer()->GetToken().Flags() & lexer::TokenFlags::NUMBER_BIGINT) != 0) { in ParsePropertyKey()
277 key = AllocNode<ir::BigIntLiteral>(Lexer()->GetToken().BigInt()); in ParsePropertyKey()
279 key = AllocNode<ir::NumberLiteral>(Lexer()->GetToken().GetNumber()); in ParsePropertyKey()
282 key->SetRange(Lexer()->GetToken().Loc()); in ParsePropertyKey()
283 Lexer()->NextToken(); in ParsePropertyKey()
287 const auto &rangeToken = Lexer()->GetToken().Loc(); in ParsePropertyKey()
289 Lexer()->NextToken(); in ParsePropertyKey()
298 auto startLoc = Lexer()->GetToken().Start(); in ParseDefaultPrimaryExpression()
299 auto savedPos = Lexer()->Save(); in ParseDefaultPrimaryExpression()
310 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD) { in ParseDefaultPrimaryExpression()
311 Lexer()->NextToken(); // eat '.' in ParseDefaultPrimaryExpression()
314 if (Lexer()->GetToken().Type() == lexer::TokenType::KEYW_CLASS || IsStructKeyword()) { in ParseDefaultPrimaryExpression()
315 Lexer()->NextToken(); // eat 'class' and 'struct' in ParseDefaultPrimaryExpression()
318 classLiteral->SetRange({startLoc, Lexer()->GetToken().End()}); in ParseDefaultPrimaryExpression()
323 Lexer()->Rewind(savedPos); in ParseDefaultPrimaryExpression()
325 Lexer()->NextToken(); in ParseDefaultPrimaryExpression()
326 bool pretendArrow = Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_ARROW; in ParseDefaultPrimaryExpression()
327 bool checkNextTokenOfTypeof = CheckNextTokenOfTypeof(Lexer()->GetToken()); in ParseDefaultPrimaryExpression()
328 Lexer()->Rewind(savedPos); in ParseDefaultPrimaryExpression()
330 …if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_TYPEOF && checkNextTokenOfTypeof) { in ParseDefaultPrimaryExpression()
334 if (Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT) { in ParseDefaultPrimaryExpression()
341 const auto tokenNow = Lexer()->GetToken(); in ParseDefaultPrimaryExpression()
343 Lexer()->NextToken(); // eat an unexpected token in ParseDefaultPrimaryExpression()
349 switch (Lexer()->GetToken().Type()) { in ParsePrimaryExpressionWithLiterals()
350 case lexer::TokenType::LITERAL_TRUE: in ParsePrimaryExpressionWithLiterals()
351 case lexer::TokenType::LITERAL_FALSE: { in ParsePrimaryExpressionWithLiterals()
354 case lexer::TokenType::LITERAL_NULL: { in ParsePrimaryExpressionWithLiterals()
357 case lexer::TokenType::KEYW_UNDEFINED: { in ParsePrimaryExpressionWithLiterals()
360 case lexer::TokenType::LITERAL_NUMBER: { in ParsePrimaryExpressionWithLiterals()
363 case lexer::TokenType::LITERAL_STRING: { in ParsePrimaryExpressionWithLiterals()
366 case lexer::TokenType::LITERAL_CHAR: { in ParsePrimaryExpressionWithLiterals()
378 switch (Lexer()->GetToken().Type()) { in ParsePrimaryExpression()
379 case lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS: { in ParsePrimaryExpression()
382 case lexer::TokenType::KEYW_THIS: { in ParsePrimaryExpression()
385 case lexer::TokenType::KEYW_SUPER: { in ParsePrimaryExpression()
388 case lexer::TokenType::KEYW_NEW: { in ParsePrimaryExpression()
391 case lexer::TokenType::KEYW_ASYNC: { in ParsePrimaryExpression()
394 case lexer::TokenType::KEYW_AWAIT: { in ParsePrimaryExpression()
397 case lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET: { in ParsePrimaryExpression()
400 case lexer::TokenType::PUNCTUATOR_LEFT_BRACE: { in ParsePrimaryExpression()
403 case lexer::TokenType::PUNCTUATOR_BACK_TICK: { in ParsePrimaryExpression()
406 case lexer::TokenType::KEYW_TYPE: { in ParsePrimaryExpression()
408 const auto &rangeToken = Lexer()->GetToken().Loc(); in ParsePrimaryExpression()
412 case lexer::TokenType::KEYW_FUNCTION: { in ParsePrimaryExpression()
415 return AllocBrokenExpression(Lexer()->GetToken().Loc()); in ParsePrimaryExpression()
417 case lexer::TokenType::PUNCTUATOR_FORMAT: { in ParsePrimaryExpression()
420 case lexer::TokenType::KEYW_TYPEOF: { in ParsePrimaryExpression()
429 bool IsPunctuartorSpecialCharacter(lexer::TokenType tokenType) in IsPunctuartorSpecialCharacter()
432 case lexer::TokenType::PUNCTUATOR_COLON: in IsPunctuartorSpecialCharacter()
433 case lexer::TokenType::PUNCTUATOR_COMMA: in IsPunctuartorSpecialCharacter()
434 case lexer::TokenType::PUNCTUATOR_RIGHT_SHIFT: in IsPunctuartorSpecialCharacter()
435 case lexer::TokenType::PUNCTUATOR_UNSIGNED_RIGHT_SHIFT: in IsPunctuartorSpecialCharacter()
436 case lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET: in IsPunctuartorSpecialCharacter()
437 case lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET: in IsPunctuartorSpecialCharacter()
438 case lexer::TokenType::PUNCTUATOR_LESS_THAN: in IsPunctuartorSpecialCharacter()
439 case lexer::TokenType::PUNCTUATOR_GREATER_THAN: in IsPunctuartorSpecialCharacter()
440 case lexer::TokenType::PUNCTUATOR_BITWISE_OR: in IsPunctuartorSpecialCharacter()
448 bool TypedParser::IsValidTokenTypeOfArrowFunctionStart(lexer::TokenType tokenType) in IsValidTokenTypeOfArrowFunctionStart()
450 return (tokenType == lexer::TokenType::LITERAL_IDENT || IsPrimitiveType(tokenType) || in IsValidTokenTypeOfArrowFunctionStart()
451 …tokenType == lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD || tokenType == lexer::TokenType::K… in IsValidTokenTypeOfArrowFunctionStart()
454 bool TypedParser::EatArrowFunctionParams(lexer::Lexer *lexer) in EatArrowFunctionParams() argument
456 ES2PANDA_ASSERT(lexer->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS); in EatArrowFunctionParams()
457 lexer->NextToken(); in EatArrowFunctionParams()
458 auto tokenType = lexer->GetToken().Type(); in EatArrowFunctionParams()
462 while (tokenType != lexer::TokenType::EOS && openBrackets > 0) { in EatArrowFunctionParams()
463 lexer::NextTokenFlags flag = lexer::NextTokenFlags::NONE; in EatArrowFunctionParams()
465 case lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS: in EatArrowFunctionParams()
468 case lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS: in EatArrowFunctionParams()
471 case lexer::TokenType::PUNCTUATOR_COMMA: in EatArrowFunctionParams()
475 case lexer::TokenType::PUNCTUATOR_MINUS: in EatArrowFunctionParams()
476 flag = lexer::NextTokenFlags::UNARY_MINUS; in EatArrowFunctionParams()
478 case lexer::TokenType::PUNCTUATOR_SEMI_COLON: in EatArrowFunctionParams()
479 case lexer::TokenType::PUNCTUATOR_BACK_TICK: in EatArrowFunctionParams()
490 lexer->NextToken(flag); in EatArrowFunctionParams()
491 tokenType = lexer->GetToken().Type(); in EatArrowFunctionParams()
498 …auto finalizer = [this, savedPos = Lexer()->Save()]([[maybe_unused]] void *ptr) { Lexer()->Rewind(… in IsArrowFunctionExpressionStart()
500 if (!EatArrowFunctionParams(Lexer())) { in IsArrowFunctionExpressionStart()
504 if (Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_COLON)) { in IsArrowFunctionExpressionStart()
511 auto tokenType = Lexer()->GetToken().Type(); in IsArrowFunctionExpressionStart()
512 while (tokenType != lexer::TokenType::EOS && tokenType != lexer::TokenType::PUNCTUATOR_ARROW) { in IsArrowFunctionExpressionStart()
513 … if (lexer::Token::IsPunctuatorToken(tokenType) && !IsPunctuartorSpecialCharacter(tokenType)) { in IsArrowFunctionExpressionStart()
516 Lexer()->NextToken(); in IsArrowFunctionExpressionStart()
517 tokenType = Lexer()->GetToken().Type(); in IsArrowFunctionExpressionStart()
519 return Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_ARROW; in IsArrowFunctionExpressionStart()
535 ES2PANDA_ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS); in ParseCoverParenthesizedExpressionAndArrowParameterList()
540 lexer::SourcePosition start = Lexer()->GetToken().Start(); in ParseCoverParenthesizedExpressionAndArrowParameterList()
541 Lexer()->NextToken(); in ParseCoverParenthesizedExpressionAndArrowParameterList()
550 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
551 LogExpectedToken(lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS); in ParseCoverParenthesizedExpressionAndArrowParameterList()
555 expr->SetRange({start, Lexer()->GetToken().End()}); in ParseCoverParenthesizedExpressionAndArrowParameterList()
556 Lexer()->NextToken(); in ParseCoverParenthesizedExpressionAndArrowParameterList()
562 lexer::SourcePosition startLoc, in GetPostPrimaryExpression()
566 switch (Lexer()->GetToken().Type()) { in GetPostPrimaryExpression()
567 case lexer::TokenType::PUNCTUATOR_QUESTION_DOT: in GetPostPrimaryExpression()
572 Lexer()->NextToken(); // eat ?. in GetPostPrimaryExpression()
574 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET) { in GetPostPrimaryExpression()
578 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in GetPostPrimaryExpression()
583 case lexer::TokenType::PUNCTUATOR_PERIOD: in GetPostPrimaryExpression()
584 Lexer()->NextToken(); // eat period in GetPostPrimaryExpression()
587 case lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET: in GetPostPrimaryExpression()
589 case lexer::TokenType::PUNCTUATOR_LEFT_SHIFT: in GetPostPrimaryExpression()
590 case lexer::TokenType::PUNCTUATOR_LESS_THAN: in GetPostPrimaryExpression()
597 case lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS: in GetPostPrimaryExpression()
602 case lexer::TokenType::PUNCTUATOR_EXCLAMATION_MARK: { in GetPostPrimaryExpression()
610 case lexer::TokenType::PUNCTUATOR_FORMAT: in GetPostPrimaryExpression()
611 case lexer::TokenType::PUNCTUATOR_ARROW: in GetPostPrimaryExpression()
612 LogUnexpectedToken(Lexer()->GetToken()); in GetPostPrimaryExpression()
619 ir::Expression *ETSParser::ParsePostPrimaryExpression(ir::Expression *primaryExpr, lexer::SourcePos… in ParsePostPrimaryExpression()
640 ES2PANDA_ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::KEYW_AS); in ParsePotentialAsExpression()
641 Lexer()->NextToken(); in ParsePotentialAsExpression()
661 lexer::SourcePosition endLoc = typeReference->End(); in ParseArgumentsNewExpression()
663 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParseArgumentsNewExpression()
664 Lexer()->NextToken(); in ParseArgumentsNewExpression()
667 lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS, lexer::NextTokenFlags::NONE, in ParseArgumentsNewExpression()
670 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD in ParseArgumentsNewExpression()
686 lexer::SourcePosition start = Lexer()->GetToken().Start(); in ParseNewExpression()
688 Lexer()->NextToken(); // eat new in ParseNewExpression()
696 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET) { in ParseNewExpression()
697 Lexer()->NextToken(); in ParseNewExpression()
700 auto endLoc = Lexer()->GetToken().End(); in ParseNewExpression()
701 ExpectToken(lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET); in ParseNewExpression()
703 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET) { in ParseNewExpression()
713 Lexer()->NextToken(); in ParseNewExpression()
716 endLoc = Lexer()->GetToken().End(); in ParseNewExpression()
717 ExpectToken(lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET); in ParseNewExpression()
718 } while (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET); in ParseNewExpression()
731 newExprNode->SetRange({start, Lexer()->GetToken().End()}); in ParseNewExpression()
738 Lexer()->NextToken(); // eat 'async' in ParseAsyncExpression()
739 if (Lexer()->GetToken().Type() == lexer::TokenType::KEYW_FUNCTION) { in ParseAsyncExpression()
742 return AllocBrokenExpression(Lexer()->GetToken().Loc()); in ParseAsyncExpression()
744 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS || in ParseAsyncExpression()
746 LogExpectedToken(lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS); in ParseAsyncExpression()
762 lexer::SourcePosition start = Lexer()->GetToken().Start(); in ParseAwaitExpression()
763 Lexer()->NextToken(); in ParseAwaitExpression()
767 awaitExpression->SetRange({start, Lexer()->GetToken().End()}); in ParseAwaitExpression()
778 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA && in ParsePotentialExpressionSequence()
786 bool ETSParser::ParsePotentialNonNullExpression(ir::Expression **expression, const lexer::SourcePos… in ParsePotentialNonNullExpression()
788 if (expression == nullptr || Lexer()->GetToken().NewLine()) { in ParsePotentialNonNullExpression()
794 nonNullExpr->SetRange({startLoc, Lexer()->GetToken().End()}); in ParsePotentialNonNullExpression()
798 Lexer()->NextToken(); in ParsePotentialNonNullExpression()
806 lexer::TokenType tokenType = Lexer()->GetToken().Type(); in ValidateInstanceOfExpression()
807 if (tokenType == lexer::TokenType::PUNCTUATOR_LESS_THAN) { in ValidateInstanceOfExpression()
827 while (Lexer()->GetToken().Type() != lexer::TokenType::EOS) { in ParseExpression()
828 Lexer()->NextToken(); in ParseExpression()
830 return AllocBrokenExpression(Lexer()->GetToken().Loc()); in ParseExpression()
833 if (Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_AT)) { in ParseExpression()
836 auto savedPos = Lexer()->GetToken().Start(); in ParseExpression()
837 if (Lexer()->GetToken().Type() == lexer::TokenType::KEYW_YIELD && in ParseExpression()
852 if (Lexer()->GetToken().NewLine()) { in ParseExpression()
856 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COMMA && in ParseExpression()