[parser] Integration test of parsing a single Sym!
This commit is contained in:
parent
9a728c9489
commit
d312c41dc7
2 changed files with 24 additions and 1 deletions
|
@ -20,7 +20,7 @@ use program_parser::ProgramParser;
|
||||||
/// The output of calling `parse()` on a Parser is one of these Result objects.
|
/// The output of calling `parse()` on a Parser is one of these Result objects.
|
||||||
pub type Result = std::result::Result<Obj, ParseError>;
|
pub type Result = std::result::Result<Obj, ParseError>;
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug, PartialEq)]
|
||||||
pub enum ParseError {
|
pub enum ParseError {
|
||||||
LexerError{msg: String},
|
LexerError{msg: String},
|
||||||
ParserError{msg: String}
|
ParserError{msg: String}
|
||||||
|
|
23
parser/tests/single_item.rs
Normal file
23
parser/tests/single_item.rs
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
/* parser/tests/single_item.rs
|
||||||
|
* Eryn Wells <eryn@erynwells.me>
|
||||||
|
*/
|
||||||
|
|
||||||
|
//! Tests that the parser can handle inputs of single tokens.
|
||||||
|
|
||||||
|
extern crate sibillexer;
|
||||||
|
extern crate sibilparser;
|
||||||
|
extern crate sibiltypes;
|
||||||
|
|
||||||
|
use sibillexer::{Lex, Token};
|
||||||
|
use sibillexer::Result as LexerResult;
|
||||||
|
use sibilparser::Parser;
|
||||||
|
use sibiltypes::{Obj, Sym};
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn single_sym() {
|
||||||
|
let lex: LexerResult = Ok(Lex::new(Token::Id, "abc", 0, 0));
|
||||||
|
let tokens = vec![lex].into_iter();
|
||||||
|
let mut parser = Parser::new(tokens);
|
||||||
|
assert_eq!(parser.next(), Some(Ok(Obj::new(Sym::with_str("abc")))));
|
||||||
|
assert_eq!(parser.next(), None);
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue