Looking at this again with fresh eyes.
Going to remove the broken stuff to start with a simpler state.
This commit is contained in:
		
							parent
							
								
									d23f7ce7fe
								
							
						
					
					
						commit
						c958136949
					
				| @ -30,14 +30,14 @@ where | ||||
|         + std::clone::Clone, | ||||
| { | ||||
|     not(&mut context.fail_matcher)(i)?; | ||||
|     if context.can_match_bold { | ||||
|         if let Ok(v) = parser_with_context!(flat_bold)(context.clone())(i) { | ||||
|             return Ok(v); | ||||
|         } | ||||
|     } | ||||
|     if context.can_match_link { | ||||
|         // todo
 | ||||
|     } | ||||
|     // if context.can_match_bold {
 | ||||
|     //     if let Ok(v) = parser_with_context!(flat_bold)(context.clone())(i) {
 | ||||
|     //         return Ok(v);
 | ||||
|     //     }
 | ||||
|     // }
 | ||||
|     // if context.can_match_link {
 | ||||
|     //     // todo
 | ||||
|     // }
 | ||||
|     alt(( | ||||
|         map(span, TextElement::Span), | ||||
|         map(symbol("*"), TextElement::Symbol), | ||||
| @ -48,26 +48,25 @@ where | ||||
|     ))(i) | ||||
| } | ||||
| 
 | ||||
| #[inline(always)] | ||||
| pub fn flat_bold<'a, F>(i: &'a str, context: &mut NomContext<F>) -> Res<&'a str, TextElement<'a>> | ||||
| where | ||||
|     F: for<'b> FnMut(&'b str) -> IResult<&'b str, &'b str, VerboseError<&'b str>>, | ||||
|     F: Clone, | ||||
| { | ||||
|     not(&mut context.fail_matcher)(i)?; | ||||
|     let new_context = context | ||||
|         .without_bold() | ||||
|         .with_additional_fail_matcher(|i| recognize(bold_end)(i)); | ||||
|     let text_element_parser = parser_with_context!(flat_text_element)(new_context); | ||||
|     map( | ||||
|         recognize(tuple(( | ||||
|             bold_start, | ||||
|             many_till(text_element_parser, bold_end), | ||||
|             bold_end, | ||||
|         ))), | ||||
|         |body| TextElement::Bold(Bold { contents: body }), | ||||
|     )(i) | ||||
| } | ||||
| // pub fn flat_bold<'a, F>(i: &'a str, context: &mut NomContext<F>) -> Res<&'a str, TextElement<'a>>
 | ||||
| // where
 | ||||
| //     F: for<'b> FnMut(&'b str) -> IResult<&'b str, &'b str, VerboseError<&'b str>>,
 | ||||
| //     F: Clone,
 | ||||
| // {
 | ||||
| //     not(&mut context.fail_matcher)(i)?;
 | ||||
| //     let new_context = context
 | ||||
| //         .without_bold()
 | ||||
| //         .with_additional_fail_matcher(|i| recognize(bold_end)(i));
 | ||||
| //     let text_element_parser = parser_with_context!(flat_text_element)(new_context);
 | ||||
| //     map(
 | ||||
| //         recognize(tuple((
 | ||||
| //             bold_start,
 | ||||
| //             many_till(text_element_parser, bold_end),
 | ||||
| //             bold_end,
 | ||||
| //         ))),
 | ||||
| //         |body| TextElement::Bold(Bold { contents: body }),
 | ||||
| //     )(i)
 | ||||
| // }
 | ||||
| 
 | ||||
| pub fn paragraph<'a, F>( | ||||
|     i: &'a str, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tom Alexander
						Tom Alexander