diff --git a/parser/src/lib.rs b/parser/src/lib.rs index 6145f75..1005821 100644 --- a/parser/src/lib.rs +++ b/parser/src/lib.rs @@ -5,17 +5,18 @@ extern crate sibillexer; extern crate sibiltypes; +mod node_parser; + use std::iter::Peekable; use sibillexer::Result as LexerResult; +use sibillexer::Token; use sibiltypes::Object; - -#[derive(Debug)] -pub struct ParseError; +use node_parser::{NodeParser, IdParser, ListParser}; pub type Result = std::result::Result; -trait NodeParser { -} +#[derive(Debug)] +pub struct ParseError; pub struct Parser where T: Iterator { input: Peekable, @@ -37,9 +38,10 @@ impl Iterator for Parser where T: Iterator { fn next(&mut self) -> Option { loop { if let Some(lex) = self.input.next() { - println!("{:?}", lex) - } - else { + if let Ok(lex) = lex { + } else { + } + } else { break; } } diff --git a/parser/src/node_parser.rs b/parser/src/node_parser.rs new file mode 100644 index 0000000..ac4c69d --- /dev/null +++ b/parser/src/node_parser.rs @@ -0,0 +1,30 @@ +/* node_parser.rs + * Eryn Wells + */ + +pub trait NodeParser { +} + +pub struct IdParser { +} + +impl IdParser { + pub fn new() -> IdParser { + IdParser { } + } +} + +impl NodeParser for IdParser { +} + +pub struct ListParser { +} + +impl ListParser { + pub fn new() -> ListParser { + ListParser { } + } +} + +impl NodeParser for ListParser { +}