diff --git a/src/parser/new_context.rs b/src/parser/new_context.rs index cab74fb..1fab8d0 100644 --- a/src/parser/new_context.rs +++ b/src/parser/new_context.rs @@ -9,9 +9,13 @@ // let child2 = child1.with_additional_node(&child2_context); // } +use nom::combinator::recognize; use nom::error::VerboseError; use nom::IResult; +use super::text::bold_end; +use super::text::Res; + type Matcher = dyn for<'s> Fn(&'s str) -> IResult<&'s str, &'s str, VerboseError<&'s str>>; type Link<'p> = Option<&'p dyn NodeType<'p>>; @@ -81,34 +85,38 @@ where ContextTree { head: None } } - pub fn with_additional_node ContextElement<'s>>( - &'r self, - element: F, - ) -> ContextTree<'r, F> { - let new_node = { - let parent: Option<&dyn NodeType<'_>> = match &self.head { - Some(node) => Some(node), - None => None, - }; - Node { - data: element, - parent, - } - }; + // pub fn with_additional_node<'s, F: ContextElement<'s>>( + // &'r self, + // element: F, + // ) -> ContextTree<'r, F> { + // let new_node = { + // let parent: Option<&dyn NodeType<'_>> = match &self.head { + // Some(node) => Some(node), + // None => None, + // }; + // Node { + // data: element, + // parent, + // } + // }; - ContextTree { - head: Some(new_node), - } - } + // ContextTree { + // head: Some(new_node), + // } + // } } fn test_context() { let foo = "foo"; - let context = ContextTree::new(); + // let context = ContextTree::new(); let child1_context = PreviousElementNode { dummy: foo }; - let child1 = context.with_additional_node(&child1_context); + // let child1 = context.with_additional_node(child1_context); let child2_context = FailMatcherNode { fail_matcher: ChainBehavior::AndParent(Some(&recognize_bold_end)), }; - let child2 = child1.with_additional_node(&child2_context); + // let child2 = child1.with_additional_node(child2_context); +} + +fn recognize_bold_end(input: &str) -> Res<&str, &str> { + recognize(bold_end)(input) }