use super::tokenizer::{tokenize, BenToken, BenTokenIndex};
use super::items::BenItem;
pub struct BenParser {
token_buf: Vec<BenToken>,
indices: Vec<BenTokenIndex>
}
impl BenParser {
pub fn new() -> BenParser {
BenParser { token_buf: Vec::new(), indices: Vec::new() }
}
pub fn parse<'a>(&'a mut self, bytes: &'a [u8]) -> BenItem<'a> {
self.token_buf.clear();
self.indices.clear();
if tokenize(bytes, &mut self.token_buf, &mut self.indices) {
BenItem::new(&self.token_buf, bytes, 0)
} else {
BenItem::Error
}
}
}