From 592c09612be5cf276924f2f8bde8d7f7c8c0b1e7 Mon Sep 17 00:00:00 2001 From: Tom Anderson Date: Thu, 22 Aug 2024 23:13:41 +1000 Subject: [PATCH] add multiply/divide assign operators --- src/repr/token.rs | 6 ++++++ src/stage/parse/expression/e_assign.rs | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/repr/token.rs b/src/repr/token.rs index 8d6a0e3..b6b8b1f 100644 --- a/src/repr/token.rs +++ b/src/repr/token.rs @@ -42,6 +42,10 @@ pub enum Token { AddAssign, #[token("-=")] MinusAssign, + #[token("*=")] + MulAssign, + #[token("/=")] + DivAssign, #[token("->")] ThinArrow, #[token(":")] @@ -141,6 +145,8 @@ impl Display for Token { Token::Eq => write!(f, "="), Token::AddAssign => write!(f, "+="), Token::MinusAssign => write!(f, "-="), + Token::MulAssign => write!(f, "*="), + Token::DivAssign => write!(f, "/="), Token::ThinArrow => write!(f, "->"), Token::Colon => write!(f, ":"), Token::SemiColon => write!(f, ";"), diff --git a/src/stage/parse/expression/e_assign.rs b/src/stage/parse/expression/e_assign.rs index 7360890..da516e6 100644 --- a/src/stage/parse/expression/e_assign.rs +++ b/src/stage/parse/expression/e_assign.rs @@ -55,6 +55,8 @@ pub fn parse_op_assign( let operation = match tokens.next_token().unwrap() { Token::AddAssign => InfixOperation::Plus, Token::MinusAssign => InfixOperation::Minus, + Token::MulAssign => InfixOperation::Multiply, + Token::DivAssign => InfixOperation::Divide, token => { return Err(ParseError::UnexpectedToken(token)); }