From b2d39e3dedd0ac9610219010bee8e9ccfc478c32 Mon Sep 17 00:00:00 2001 From: Noah Hellman Date: Thu, 19 Jan 2023 22:50:37 +0100 Subject: [PATCH] lex: let closing BraceEqual have - after Hyphen seq e.g. ---} -> -- + -} instead of --- + } --- src/lex.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/lex.rs b/src/lex.rs index 1390d88..652a5c8 100644 --- a/src/lex.rs +++ b/src/lex.rs @@ -133,8 +133,12 @@ impl + Clone> Lexer { current } + fn peek_char_n(&mut self, n: usize) -> char { + self.chars.clone().nth(n).unwrap_or(EOF) + } + fn peek_char(&mut self) -> char { - self.chars.clone().next().unwrap_or(EOF) + self.peek_char_n(0) } fn eat_char(&mut self) -> Option { @@ -219,7 +223,10 @@ impl + Clone> Lexer { self.eat_char(); Close(BraceHyphen) } else { - self.eat_seq(Hyphen) + while self.peek_char() == '-' && self.peek_char_n(1) != '}' { + self.eat_char(); + } + Seq(Hyphen) } }