1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 13:27:35 +00:00

LibCpp: Support parsing '!=" operator

This commit is contained in:
Itamar 2021-03-31 18:19:17 +03:00 committed by Andreas Kling
parent 68e9a05472
commit fe4122bbae
3 changed files with 9 additions and 2 deletions

View file

@ -206,6 +206,9 @@ void BinaryExpression::dump(size_t indent) const
case BinaryOp::EqualsEquals:
op_string = "==";
break;
case BinaryOp::NotEqual:
op_string = "!=";
break;
}
m_lhs->dump(indent + 1);

View file

@ -418,7 +418,8 @@ enum class BinaryOp {
BitwiseXor,
LeftShift,
RightShift,
EqualsEquals
EqualsEquals,
NotEqual,
};
class BinaryExpression : public Expression {

View file

@ -420,7 +420,8 @@ bool Parser::match_secondary_expression()
|| type == Token::Type::GreaterGreaterEquals
|| type == Token::Type::EqualsEquals
|| type == Token::Type::AndAnd
|| type == Token::Type::PipePipe;
|| type == Token::Type::PipePipe
|| type == Token::Type::ExclamationMarkEquals;
}
NonnullRefPtr<Expression> Parser::parse_primary_expression(ASTNode& parent)
@ -549,6 +550,8 @@ NonnullRefPtr<Expression> Parser::parse_secondary_expression(ASTNode& parent, No
return parse_binary_expression(parent, lhs, BinaryOp::LessThan);
case Token::Type::EqualsEquals:
return parse_binary_expression(parent, lhs, BinaryOp::EqualsEquals);
case Token::Type::ExclamationMarkEquals:
return parse_binary_expression(parent, lhs, BinaryOp::NotEqual);
case Token::Type::Equals:
return parse_assignment_expression(parent, lhs, AssignmentOp::Assignment);
case Token::Type::Dot: {