1
1
Fork 0
mirror of https://github.com/azur1s/bobbylisp.git synced 2024-10-16 02:37:40 -05:00

tweaked sexpr gen

This commit is contained in:
Natapat Samutpong 2022-02-18 11:31:22 +07:00
parent 9d10030c47
commit c15183ca66
2 changed files with 13 additions and 10 deletions

View file

@ -1,9 +1,12 @@
let foo = 1 + 1; let foo = if 1 == 1 then
5
else
10
end;
if foo == 2 then do
do print(1);
foo + 1; end;
end
else fun bar a b = a + b;
foo - 1; let baz = bar(34 35);
end;

View file

@ -323,9 +323,9 @@ impl Expr {
&format!("({} {})", name.to_sexpr(), args.iter().map(|x| x.to_sexpr()).collect::<Vec<_>>().join(" "))), &format!("({} {})", name.to_sexpr(), args.iter().map(|x| x.to_sexpr()).collect::<Vec<_>>().join(" "))),
Self::Let{ name, value } => out.push_str( Self::Let{ name, value } => out.push_str(
&format!("(let\n {}\n {})", name, value.clone().to_sexpr())), &format!("(let {}\n {})", name, value.clone().to_sexpr())),
Self::Fun{ name, args, body } => out.push_str( Self::Fun{ name, args, body } => out.push_str(
&format!("(fun\n ({})\n {}\n {})", name, args.join(" "), body.to_sexpr())), &format!("(fun {} ({})\n {})", name, args.join(" "), body.to_sexpr())),
Self::If { cond, then, else_ } => out.push_str( Self::If { cond, then, else_ } => out.push_str(
&format!("(if {}\n {}\n {})", cond.to_sexpr(), then.to_sexpr(), else_.to_sexpr())), &format!("(if {}\n {}\n {})", cond.to_sexpr(), then.to_sexpr(), else_.to_sexpr())),