aboutsummaryrefslogtreecommitdiff
path: root/src/ast/printer.rs
diff options
context:
space:
mode:
authorCody <cody@codyq.dev>2023-02-27 07:21:50 -0600
committerCody <cody@codyq.dev>2023-02-27 07:21:50 -0600
commitebfd74ddf0ef6372624ea171e06f8460d0e1351b (patch)
treed59df0e9600a6f2b86b57949048cf990a3e102ae /src/ast/printer.rs
parenta653a6602fe5ae5eb4739755db7b34bc92ecdadf (diff)
downloadsloth-ebfd74ddf0ef6372624ea171e06f8460d0e1351b.tar.gz
pain
Diffstat (limited to 'src/ast/printer.rs')
-rw-r--r--src/ast/printer.rs38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/ast/printer.rs b/src/ast/printer.rs
new file mode 100644
index 0000000..1aa32ae
--- /dev/null
+++ b/src/ast/printer.rs
@@ -0,0 +1,38 @@
+// use super::{AstVisitor, Expr, Stmt};
+
+// pub struct AstPrettyPrinter;
+// impl AstVisitor<String> for AstPrettyPrinter {
+// fn visit_stmt(&self, stmt: &Stmt) -> String {
+// match stmt {
+// Stmt::Expr(expr) => self.visit_expr(expr),
+// Stmt::Val(name, expr) => format!("(val '{}' <- {})", name,
+// self.visit_expr(expr)), Stmt::Var(name, expr) => format!("(var
+// '{}' <- {})", name, self.visit_expr(expr)), }
+// }
+
+// fn visit_expr(&self, expr: &Expr) -> String {
+// match expr {
+// Expr::Literal(i) => i.to_string(),
+// Expr::Add(lhs, rhs) => {
+// let lhs = self.visit_expr(lhs);
+// let rhs = self.visit_expr(rhs);
+// format!("({lhs} + {rhs})")
+// }
+// Expr::Sub(lhs, rhs) => {
+// let lhs = self.visit_expr(lhs);
+// let rhs = self.visit_expr(rhs);
+// format!("({lhs} - {rhs})")
+// }
+// Expr::Mul(lhs, rhs) => {
+// let lhs = self.visit_expr(lhs);
+// let rhs = self.visit_expr(rhs);
+// format!("({lhs} * {rhs})")
+// }
+// Expr::Div(lhs, rhs) => {
+// let lhs = self.visit_expr(lhs);
+// let rhs = self.visit_expr(rhs);
+// format!("({lhs} / {rhs})")
+// }
+// }
+// }
+// }