mod chunk;
mod directive;
mod parser;
pub mod traversal;
use gramatika::{SpannedError, Substr};
pub use self::{
chunk::Chunk,
directive::{Directive, DirectiveKind},
parser::{Branch, PreParsed, Section},
};
pub fn parse<S>(input: S) -> (PreParsed, Substr, Vec<SpannedError>)
where S: Into<Substr> {
use gramatika::ParseStreamer;
let input = input.into();
let mut parser = parser::ParseStream::from(input);
let parsed = parser.parse().unwrap();
let (source, errors) = parser.into_inner();
(parsed, source, errors)
}