diff --git a/src/parser/nodes.rs b/src/parser/nodes.rs index 49304ac..d5d4a47 100644 --- a/src/parser/nodes.rs +++ b/src/parser/nodes.rs @@ -2,6 +2,8 @@ * Eryn Wells */ +use std::fmt; + use lexer; use types; @@ -18,5 +20,17 @@ impl Program { pub enum Expression { EOF, Atom(Box), - List { left: lexer::Token, expression: Vec>, right: lexer::Token }, + List { left: lexer::Token, expr: Vec>, right: lexer::Token }, +} + +impl fmt::Debug for Expression { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match *self { + Expression::EOF => write!(f, "EOF"), + Expression::Atom(ref value) => write!(f, "Atom{{ {:?} }}", value), + Expression::List{ left: ref lt, expr: ref expr, right: ref rt } => { + write!(f, "{:?} {:?} {:?}", lt, expr, rt) + }, + } + } }