diff options
| author | Cody <cody@codyq.dev> | 2023-02-27 07:21:50 -0600 |
|---|---|---|
| committer | Cody <cody@codyq.dev> | 2023-02-27 07:21:50 -0600 |
| commit | ebfd74ddf0ef6372624ea171e06f8460d0e1351b (patch) | |
| tree | d59df0e9600a6f2b86b57949048cf990a3e102ae /src/ast/printer.rs | |
| parent | a653a6602fe5ae5eb4739755db7b34bc92ecdadf (diff) | |
| download | sloth-ebfd74ddf0ef6372624ea171e06f8460d0e1351b.tar.gz | |
pain
Diffstat (limited to 'src/ast/printer.rs')
| -rw-r--r-- | src/ast/printer.rs | 38 |
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})") +// } +// } +// } +// } |
