From 5a500fb8a7c0ba4b8a59e2622c8cbafdc4ce1fe9 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Thu, 8 Jul 2021 19:12:07 +0200 Subject: Range operator --- src/syntax/expr.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/syntax/expr.rs') diff --git a/src/syntax/expr.rs b/src/syntax/expr.rs index a8a5854a..f5b79122 100644 --- a/src/syntax/expr.rs +++ b/src/syntax/expr.rs @@ -278,6 +278,8 @@ pub enum BinOp { MulAssign, /// The divide-assign operator: `/=`. DivAssign, + /// The inclusive range operator: `..`. + Range, } impl BinOp { @@ -301,6 +303,7 @@ impl BinOp { Token::HyphEq => Self::SubAssign, Token::StarEq => Self::MulAssign, Token::SlashEq => Self::DivAssign, + Token::Dots => Self::Range, _ => return None, }) } @@ -311,8 +314,9 @@ impl BinOp { Self::Mul | Self::Div => 7, Self::Add | Self::Sub => 6, Self::Eq | Self::Neq | Self::Lt | Self::Leq | Self::Gt | Self::Geq => 5, - Self::And => 3, - Self::Or => 2, + Self::And => 4, + Self::Or => 3, + Self::Range => 2, Self::Assign | Self::AddAssign | Self::SubAssign @@ -335,7 +339,8 @@ impl BinOp { | Self::Lt | Self::Leq | Self::Gt - | Self::Geq => Associativity::Left, + | Self::Geq + | Self::Range => Associativity::Left, Self::Assign | Self::AddAssign | Self::SubAssign @@ -364,6 +369,7 @@ impl BinOp { Self::SubAssign => "-=", Self::MulAssign => "*=", Self::DivAssign => "/=", + Self::Range => "..", } } } -- cgit v1.2.3