Add additional assignment operators (#7102)

This commit is contained in:
JT
2022-11-12 07:50:43 +13:00
committed by GitHub
parent 69b089845c
commit c1105e945e
6 changed files with 84 additions and 4 deletions

View File

@ -55,7 +55,7 @@ impl Expression {
Operator::Bits(Bits::BitOr) => 60,
Operator::Boolean(Boolean::And) => 50,
Operator::Boolean(Boolean::Or) => 40,
Operator::Assignment(Assignment::Assign) => 10,
Operator::Assignment(_) => 10,
}
}
_ => 0,

View File

@ -49,6 +49,10 @@ pub enum Bits {
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum Assignment {
Assign,
PlusAssign,
MinusAssign,
MultiplyAssign,
DivideAssign,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
@ -64,6 +68,10 @@ impl Display for Operator {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Operator::Assignment(Assignment::Assign) => write!(f, "="),
Operator::Assignment(Assignment::PlusAssign) => write!(f, "+="),
Operator::Assignment(Assignment::MinusAssign) => write!(f, "-="),
Operator::Assignment(Assignment::MultiplyAssign) => write!(f, "*="),
Operator::Assignment(Assignment::DivideAssign) => write!(f, "/="),
Operator::Comparison(Comparison::Equal) => write!(f, "=="),
Operator::Comparison(Comparison::NotEqual) => write!(f, "!="),
Operator::Comparison(Comparison::LessThan) => write!(f, "<"),