Lines Matching defs:lhsExpression

508 void ParserImpl::ValidateGroupedExpression(ir::Expression *lhsExpression)
511 if (lhsExpression->IsGrouped() && tokenType != lexer::TokenType::PUNCTUATOR_ARROW) {
512 if (lhsExpression->IsSequenceExpression()) {
513 for (auto *seq : lhsExpression->AsSequenceExpression()->Sequence()) {
517 ValidateParenthesizedExpression(lhsExpression);
522 void ParserImpl::ValidateParenthesizedExpression(ir::Expression *lhsExpression)
524 switch (lhsExpression->Type()) {
526 auto info = lhsExpression->AsIdentifier()->ValidateExpression();
536 auto info = lhsExpression->AsArrayExpression()->ValidateExpression();
543 auto info = lhsExpression->AsObjectExpression()->ValidateExpression();
550 if (lhsExpression->AsAssignmentExpression()->ConvertibleToAssignmentPattern(false)) {
570 ir::Expression *ParserImpl::ParseAssignmentExpression(ir::Expression *lhsExpression, ExpressionParseFlags flags)
572 ValidateGroupedExpression(lhsExpression);
587 auto *conditionalExpr = AllocNode<ir::ConditionalExpression>(lhsExpression, consequent, alternate);
588 conditionalExpr->SetRange({lhsExpression->Start(), alternate->End()});
596 return ParseArrowFunctionExpression(lhsExpression, nullptr, nullptr, false);
599 ValidateAssignmentTarget(flags, lhsExpression);
605 AllocNode<ir::AssignmentExpression>(lhsExpression, assignmentExpression, tokenType);
607 binaryAssignmentExpression->SetRange({lhsExpression->Start(), assignmentExpression->End()});
611 if (auto asExpression = ParsePotentialAsExpression(lhsExpression); asExpression != nullptr) {
617 auto expression = ParseAssignmentBinaryExpression(tokenType, lhsExpression, flags);
619 expression = ParseAssignmentEqualExpression(tokenType, lhsExpression, flags);
630 return lhsExpression;
634 ir::Expression *lhsExpression,
669 return ParseAssignmentExpression(ParseBinaryExpression(lhsExpression));
679 ir::Expression *lhsExpression,
695 ValidateLvalueAssignmentTarget(lhsExpression);
701 AllocNode<ir::AssignmentExpression>(lhsExpression, assignmentExpression, tokenType);
703 binaryAssignmentExpression->SetRange({lhsExpression->Start(), assignmentExpression->End()});