Expand expression desugaring

This commit is contained in:
Joscha 2022-11-21 11:43:31 +01:00
parent 13b7db79b0
commit 8278442d3f
3 changed files with 81 additions and 1 deletions

79
src/desugar/expr.rs Normal file
View file

@ -0,0 +1,79 @@
use crate::ast::Expr;
impl Expr {
pub fn desugar(self) -> (Self, bool) {
match self {
Self::Lit(lit) => (Self::Lit(lit), false), // TODO Implement
Self::Call(call) => (Self::Call(call), false), // TODO Implement
Self::Field(field) => (Self::Field(field), false), // TODO Implement
Self::Var(var) => (Self::Var(var), false), // TODO Implement
Self::TableConstr(constr) => (Self::TableConstr(constr), false), // TODO Implement
Self::TableDestr(destr) => (Self::TableDestr(destr), false), // TODO Implement
Self::FuncDef(def) => (Self::FuncDef(def), false), // TODO Implement
Self::Paren {
s0,
inner,
s1,
span,
} => (
Self::Paren {
s0,
inner,
s1,
span,
},
false,
), // TODO Implement
Self::Neg {
minus,
s0,
expr,
span,
} => (
Self::Neg {
minus,
s0,
expr,
span,
},
false,
), // TODO Implement
Self::Not {
not,
s0,
expr,
span,
} => (
Self::Not {
not,
s0,
expr,
span,
},
false,
), // TODO Implement
Self::BinOp {
left,
s0,
op,
s1,
right,
span,
} => (
Self::BinOp {
left,
s0,
op,
s1,
right,
span,
},
false,
), // TODO Implement
}
}
}

View file

@ -5,7 +5,7 @@ impl Program {
pub fn desugar(self) -> (Self, bool) {
match self {
Self::Expr { s0, expr, s1, span } => {
let (expr, desugared) = (expr, false); // TODO Implement
let (expr, desugared) = expr.desugar();
(Self::Expr { s0, expr, s1, span }, desugared)
}