Skip to content

Commit

Permalink
Merge pull request #4 from Masynchin/master
Browse files Browse the repository at this point in the history
Simplify call expression parse
  • Loading branch information
orsinium authored Jun 22, 2023
2 parents 3256622 + d23716b commit ddd910a
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions src/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,16 +111,13 @@ fn parse_expression(root: Pair<Rule>) -> Expr {
}
}
Rule::call => {
let mut subpairs = root.into_inner();
let p1 = subpairs.next().unwrap();
let mut target = parse_expression(p1);
for p in subpairs {
target = Expr::Call {
root.into_inner()
.map(parse_expression)
.reduce(|target, arg| Expr::Call {
target: Box::new(target),
arg: Box::new(parse_expression(p)),
}
}
target
arg: Box::new(arg)
})
.unwrap()
}
Rule::identifier => Expr::Id {
name: root.as_str().parse().unwrap(),
Expand Down

0 comments on commit ddd910a

Please sign in to comment.