summaryrefslogtreecommitdiff
path: root/src/syntax/parsing.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2020-08-30 22:09:33 +0200
committerLaurenz <laurmaedje@gmail.com>2020-08-30 22:09:33 +0200
commit18c515cde5dc8beef2f94d4e30db8694309b5d54 (patch)
tree6ab80abe8d0fd8223f67ab564db461814d1de515 /src/syntax/parsing.rs
parent3337d2454310a498f43fd62f879d26d1af379239 (diff)
Make some code easier for rustfmt 🍦
Diffstat (limited to 'src/syntax/parsing.rs')
-rw-r--r--src/syntax/parsing.rs21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/syntax/parsing.rs b/src/syntax/parsing.rs
index e35835c8..262d7d19 100644
--- a/src/syntax/parsing.rs
+++ b/src/syntax/parsing.rs
@@ -230,11 +230,12 @@ impl Parser<'_> {
Some(Token::Equals) => {
self.eat();
self.skip_white();
-
- (Some(ident), try_or!(self.parse_expr(), {
+ if let Some(value) = self.parse_expr() {
+ (Some(ident), value)
+ } else {
self.expected("value");
continue;
- }))
+ }
}
Some(Token::LeftParen) => {
@@ -244,11 +245,11 @@ impl Parser<'_> {
_ => (None, ident.map(Expr::Ident))
}
+ } else if let Some(value) = self.parse_expr() {
+ (None, value)
} else {
- (None, try_or!(self.parse_expr(), {
- self.expected("value");
- continue;
- }))
+ self.expected("value");
+ continue;
};
let behind = val.span.end;
@@ -274,6 +275,8 @@ impl Parser<'_> {
}
}
+type Binop = fn(Box<Spanned<Expr>>, Box<Spanned<Expr>>) -> Expr;
+
// Expressions and values.
impl Parser<'_> {
fn parse_expr(&mut self) -> Option<Spanned<Expr>> {
@@ -297,9 +300,7 @@ impl Parser<'_> {
&mut self,
operand_name: &str,
mut parse_operand: impl FnMut(&mut Self) -> Option<Spanned<Expr>>,
- mut parse_op: impl FnMut(Token) -> Option<
- fn(Box<Spanned<Expr>>, Box<Spanned<Expr>>) -> Expr
- >,
+ mut parse_op: impl FnMut(Token) -> Option<Binop>,
) -> Option<Spanned<Expr>> {
let mut left = parse_operand(self)?;