[parser] Add a test for parsing bools

Related to #13
This commit is contained in:
Eryn Wells 2018-08-26 17:48:22 -07:00
parent 4fab810d1f
commit ae63ce8e20
2 changed files with 10 additions and 15 deletions

View file

@ -141,17 +141,3 @@ impl<T> Iterator for Parser<T> where T: Iterator<Item=LexerResult> {
out
}
}
#[cfg(test)]
mod tests {
use sibillexer::Lexer;
use sibiltypes::Pair;
use super::Parser;
#[test]
fn it_works() {
let lexer = Lexer::new("(ab)".chars());
let mut parser = Parser::new(lexer);
let obj = parser.next().unwrap().unwrap();
}
}

View file

@ -11,7 +11,7 @@ extern crate sibiltypes;
use sibillexer::{Lex, Token};
use sibillexer::Result as LexerResult;
use sibilparser::Parser;
use sibiltypes::{Obj, Pair, Sym};
use sibiltypes::{Bool, Obj, Pair, Sym};
#[test]
fn single_sym() {
@ -30,3 +30,12 @@ fn single_pair() {
assert_eq!(parser.next(), Some(Ok(Obj::new(Pair::empty()))));
assert_eq!(parser.next(), None);
}
#[test]
fn single_bool() {
let lex: LexerResult = Ok(Lex::new(Token::Bool(true), "#t", 0, 0));
let tokens = vec![lex].into_iter();
let mut parser = Parser::new(tokens);
assert_eq!(parser.next(), Some(Ok(Obj::new(Bool::True))));
assert_eq!(parser.next(), None);
}