parse expect

This commit is contained in:
Folkert 2021-04-22 23:00:44 +02:00
parent 50942325b9
commit 700e7d9686
12 changed files with 223 additions and 5 deletions

View file

@ -107,6 +107,10 @@ pub fn desugar_def<'a>(arena: &'a Bump, def: &'a Def<'a>) -> Def<'a> {
body_pattern: *body_pattern,
body_expr: desugar_expr(arena, body_expr),
},
Expect(condition) => {
let desugared_condition = &*arena.alloc(desugar_expr(arena, condition));
Expect(desugared_condition)
}
NotYetImplemented(s) => todo!("{}", s),
}
}
@ -356,6 +360,14 @@ pub fn desugar_expr<'a>(arena: &'a Bump, loc_expr: &'a Located<Expr<'a>>) -> &'a
region: loc_expr.region,
})
}
Expect(condition, continuation) => {
let desugared_condition = &*arena.alloc(desugar_expr(arena, &condition));
let desugared_continuation = &*arena.alloc(desugar_expr(arena, &continuation));
arena.alloc(Located {
value: Expect(desugared_condition, desugared_continuation),
region: loc_expr.region,
})
}
}
}