[parser] Skeleton IdParser and ListParser for Ids and Lists respectively

This commit is contained in:
Eryn Wells 2018-08-19 22:30:49 -07:00
parent 281c29ee26
commit cabe40bd7a
2 changed files with 40 additions and 8 deletions

View file

@ -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<Object, ParseError>;
trait NodeParser {
}
#[derive(Debug)]
pub struct ParseError;
pub struct Parser<T> where T: Iterator<Item=LexerResult> {
input: Peekable<T>,
@ -37,9 +38,10 @@ impl<T> Iterator for Parser<T> where T: Iterator<Item=LexerResult> {
fn next(&mut self) -> Option<Self::Item> {
loop {
if let Some(lex) = self.input.next() {
println!("{:?}", lex)
}
else {
if let Ok(lex) = lex {
} else {
}
} else {
break;
}
}

30
parser/src/node_parser.rs Normal file
View file

@ -0,0 +1,30 @@
/* node_parser.rs
* Eryn Wells <eryn@erynwells.me>
*/
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 {
}