Add parsing of '.' (dot)

Signed-off-by: Marcel Müller <neikos@neikos.email>
This commit is contained in:
Marcel Müller 2026-03-15 13:36:34 +01:00
parent 9940881e46
commit 145d305c94

View file

@ -239,6 +239,7 @@ pub enum TokenOperator {
Lesser,
LesserOrEqual,
QuestionMark,
Dot,
}
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
@ -569,6 +570,7 @@ fn parse_operator<'input>(input: &mut Input<'input>) -> PResult<'input, Template
cut_err(fail),
)),
'?' => empty.value(TokenOperator::QuestionMark),
'.' => empty.value(TokenOperator::Dot),
_ => fail,
},
)
@ -930,4 +932,28 @@ mod tests {
)
"#);
}
#[test]
fn parse_dot() {
let input = "{{= foo?.bar }}";
let output = parse(input.into());
insta::assert_debug_snapshot!(output, @r#"
Ok(
ParsedTemplate {
tokens: [
[LeftDelim]"{{" (0..2),
[WantsOutput]"=" (2..3),
[Whitespace]" " (3..4),
[Ident]"foo" (4..7),
[Operator(QuestionMark)]"?" (7..8),
[Operator(Dot)]"." (8..9),
[Ident]"bar" (9..12),
[Whitespace]" " (12..13),
[RightDelim]"}}" (13..15),
],
},
)
"#);
}
}