summaryrefslogtreecommitdiff
path: root/src/syntax/expr.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-07-08 19:12:07 +0200
committerLaurenz <laurmaedje@gmail.com>2021-07-08 19:12:07 +0200
commit5a500fb8a7c0ba4b8a59e2622c8cbafdc4ce1fe9 (patch)
tree5c22b012cf2c37a96735d6ec84ad19e852259e51 /src/syntax/expr.rs
parentc5635d8a3f45865619d66bc9e296da7d9e9efa5a (diff)
Range operator
Diffstat (limited to 'src/syntax/expr.rs')
-rw-r--r--src/syntax/expr.rs12
1 files changed, 9 insertions, 3 deletions
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 => "..",
}
}
}