use crate::CosyParserExtension;
use crate::ast::Document;
use winnow::Result as PResult;
use winnow::combinator::repeat;
use winnow::prelude::*;
mod block;
mod bracket;
mod bracket_content;
mod bracket_extension;
mod code;
mod code_inline;
mod commandline;
mod deco;
mod hashtag;
mod helpfeel;
mod line;
mod node;
mod quote;
mod strong;
mod table;
mod text;
use block::parse_block;
pub(crate) fn parse_inner<'s, E>(
input: &mut &'s str,
extension: &'s E,
) -> PResult<Document<E::Output>>
where
E: CosyParserExtension,
{
let blocks: Vec<_> =
repeat(0.., |i: &mut &'s str| parse_block(i, extension)).parse_next(input)?;
Ok(Document(blocks))
}