diff --git a/src/parser/text_element_parser.rs b/src/parser/text_element_parser.rs index 432d3c17..3809763a 100644 --- a/src/parser/text_element_parser.rs +++ b/src/parser/text_element_parser.rs @@ -75,7 +75,7 @@ where } }; } - // TODO build a vec of the elements by popping off the newest elements of the context + ret.reverse(); return Ok((remaining, (ret, finish))); } Err(nom::Err::Error(_)) => { @@ -132,16 +132,15 @@ pub fn paragraph<'s, 'r>( context.with_additional_node(ContextElement::FailMatcherNode(FailMatcherNode { fail_matcher: ChainBehavior::AndParent(Some(¶graph_end)), })); - let ret = context_many_till(¶graph_context, flat_text_element, context_paragraph_end)(i); - match ret { - Ok(_) => todo!(), - Err(e) => { - return Err(e); - } - }; - // TODO: FIX THIS - // ret - todo!() + let (remaining, (many, till)) = + context_many_till(¶graph_context, flat_text_element, context_paragraph_end)(i)?; + let many = many + .into_iter() + .filter_map(|token| match token { + Token::TextElement(text_element) => Some(text_element), + }) + .collect(); + Ok((remaining, (many, till))) } fn flat_text_element<'s, 'r>(