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