sevenmark_parser/parser/token/
token_brace_close.rs1use crate::ast::{Element, Span, TextElement};
2use crate::parser::ParserInput;
3use winnow::Result;
4use winnow::combinator::{not, preceded};
5use winnow::prelude::*;
6use winnow::stream::Location as StreamLocation;
7use winnow::token::literal;
8
9pub fn token_brace_close_parser(parser_input: &mut ParserInput) -> Result<Element> {
10 let start = parser_input.current_token_start();
11 preceded(not(literal("}}}")), literal("}")).parse_next(parser_input)?;
12 let end = parser_input.previous_token_end();
13
14 Ok(Element::Text(TextElement {
15 span: Span { start, end },
16 value: "}".to_string(),
17 }))
18}