From a4980b8dbf1394c2b302f1de7c72d2264426b86e Mon Sep 17 00:00:00 2001 From: Mel Date: Wed, 20 Oct 2021 22:15:08 +0200 Subject: Statement parsing. --- src/parse/ast.rs | 55 ------------------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 src/parse/ast.rs (limited to 'src/parse/ast.rs') diff --git a/src/parse/ast.rs b/src/parse/ast.rs deleted file mode 100644 index 0f7ea34..0000000 --- a/src/parse/ast.rs +++ /dev/null @@ -1,55 +0,0 @@ -use std::fmt::Display; - -use crate::lex::token::Token; - -#[derive(Debug)] -pub enum Expression { - Binary { - left: Box, - op: Token, - right: Box, - }, - Unary { - op: Token, - right: Box, - }, - Group(Box), - Literal(Token), -} - -impl Display for Expression { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - self.nested_fmt(f, 0) - } -} - -impl Expression { - fn nested_fmt(&self, f: &mut std::fmt::Formatter<'_>, depth: usize) -> std::fmt::Result { - let pad = " ".repeat(depth); - match self { - Expression::Binary { left, op, right } => { - writeln!(f, "{}Binary:", pad)?; - writeln!(f, "{}- Left:", pad)?; - left.nested_fmt(f, depth + 1)?; - writeln!(f, "{}- Operator: {:?}", pad, op.variant)?; - writeln!(f, "{}- Right:", pad)?; - right.nested_fmt(f, depth + 1)?; - } - Expression::Unary { op, right } => { - writeln!(f, "{}Unary:", pad)?; - writeln!(f, "{}- Operator: {:?}", pad, op.variant)?; - writeln!(f, "{}- Right:", pad)?; - right.nested_fmt(f, depth + 1)?; - } - Expression::Group(node) => { - writeln!(f, "{}Group:", pad)?; - node.nested_fmt(f, depth + 1)?; - } - Expression::Literal(token) => { - writeln!(f, "{}Literal: {:?}", pad, token.variant)?; - } - } - - Ok(()) - } -} -- cgit 1.4.1