From 2f8f71fc28872201f0a7c038de7c1e7b1216b84e Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Mon, 2 Jan 2017 12:17:26 -0500 Subject: [PATCH] A Program node, and an empty parse() method on Parser --- src/parser/mod.rs | 22 ++++++++++++++++++++++ src/parser/nodes.rs | 12 ++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/parser/nodes.rs diff --git a/src/parser/mod.rs b/src/parser/mod.rs index 6fc0454..61e278e 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -2,12 +2,34 @@ * Eryn Wells */ +mod nodes; + +use lexer::Lexer; +use self::nodes::Program; + pub struct Parser { + lexer: Lexer, } impl Parser { + pub fn new(lexer: Lexer) -> Parser { + Parser { lexer: lexer } + } + + pub fn parse(&mut self) -> Program { + Program { } + } } #[cfg(test)] mod tests { + use super::*; + use super::nodes::*; + use lexer::Lexer; + + #[test] + fn parses_empty_input() { + let mut parser = Parser::new(Lexer::new("")); + assert_eq!(parser.parse(), Program::new()); + } } diff --git a/src/parser/nodes.rs b/src/parser/nodes.rs new file mode 100644 index 0000000..0c43548 --- /dev/null +++ b/src/parser/nodes.rs @@ -0,0 +1,12 @@ +/* parser/nodes.rs + * Eryn Wells + */ + +#[derive(Debug, PartialEq)] +pub struct Program { } + +impl Program { + pub fn new() -> Program { + Program { } + } +}