First implementation moving over to the new exit matcher class system.
This commit is contained in:
@@ -8,6 +8,7 @@ use super::util::maybe_consume_trailing_whitespace_if_not_exiting;
|
||||
use super::util::non_whitespace_character;
|
||||
use super::Context;
|
||||
use crate::parser::element::element;
|
||||
use crate::parser::exiting::ExitClass;
|
||||
use crate::parser::parser_context::ChainBehavior;
|
||||
use crate::parser::parser_context::ContextElement;
|
||||
use crate::parser::parser_context::ExitMatcherNode;
|
||||
@@ -37,7 +38,8 @@ use tracing::span;
|
||||
pub fn plain_list<'r, 's>(context: Context<'r, 's>, input: &'s str) -> Res<&'s str, PlainList<'s>> {
|
||||
let parser_context =
|
||||
context.with_additional_node(ContextElement::ExitMatcherNode(ExitMatcherNode {
|
||||
exit_matcher: ChainBehavior::AndParent(Some(&plain_list_end)),
|
||||
class: ExitClass::Beta,
|
||||
exit_matcher: &plain_list_end,
|
||||
}));
|
||||
let without_consume_context =
|
||||
parser_context.with_additional_node(ContextElement::ConsumeTrailingWhitespace(false));
|
||||
@@ -152,12 +154,14 @@ pub fn plain_list_item<'r, 's>(
|
||||
.with_additional_node(ContextElement::ConsumeTrailingWhitespace(true))
|
||||
.with_additional_node(ContextElement::ListItem(indent_level))
|
||||
.with_additional_node(ContextElement::ExitMatcherNode(ExitMatcherNode {
|
||||
exit_matcher: ChainBehavior::AndParent(Some(&plain_list_item_end)),
|
||||
class: ExitClass::Beta,
|
||||
exit_matcher: &plain_list_item_end,
|
||||
}));
|
||||
let without_consume_context = context
|
||||
.with_additional_node(ContextElement::ListItem(indent_level))
|
||||
.with_additional_node(ContextElement::ExitMatcherNode(ExitMatcherNode {
|
||||
exit_matcher: ChainBehavior::AndParent(Some(&plain_list_item_end)),
|
||||
class: ExitClass::Beta,
|
||||
exit_matcher: &plain_list_item_end,
|
||||
}));
|
||||
|
||||
let with_consume_matcher = parser_with_context!(element)(&with_consume_context);
|
||||
|
||||
Reference in New Issue
Block a user