From 5d014484a4a34146bc13a578e81ed0a0080d4697 Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Tue, 9 Jun 2026 14:28:36 -0700 Subject: Loops seem to work!? --- src/parser.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/parser.rs') diff --git a/src/parser.rs b/src/parser.rs index 5f53557..6e479e4 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -103,6 +103,7 @@ impl<'a> SymbolHelper for Option> { SymbolType::Token(_) | SymbolType::View | SymbolType::Output | + SymbolType::Loop | SymbolType::Show => true, _ => false }) @@ -327,7 +328,7 @@ impl Parser { if ctx.next().is_some() { match ctx.cur().unwrap().symbol() { - SymbolType::View | SymbolType::Show | + SymbolType::View | SymbolType::Show | SymbolType::Loop | SymbolType::Output => { let name_sym = ctx.cur().unwrap(); ctx.next(); @@ -640,6 +641,14 @@ impl<'a> TagBuilder<'a> { pub fn build(mut self) -> ParseResult { if let Some(sym) = self.name { match sym.symbol() { + SymbolType::Loop => { + let id = if let ParamValue::Identifier(id) = self.params.swap_remove(0) { + id + } else { + return Err(ParseError::new(Position::none(), "Identifier for loop variable name.")); + }; + Ok(Token::Loop(id, self.children)) + } SymbolType::Show => { let id = if let ParamValue::Identifier(id) = self.params.swap_remove(0) { id -- cgit v1.2.3