fix(parser): skip multi nested dedent

This commit is contained in:
GreasySlug 2023-04-05 23:20:09 +09:00
parent 0dba4da58a
commit 0b36b48642

View file

@ -264,12 +264,20 @@ impl Parser {
} }
fn until_dedent(&mut self) { fn until_dedent(&mut self) {
let mut nest_cnt = 1;
while let Some(t) = self.peek() { while let Some(t) = self.peek() {
match t.kind { match t.kind {
Indent => {
self.skip();
nest_cnt += 1;
}
Dedent => { Dedent => {
self.skip(); self.skip();
nest_cnt -= 1;
if nest_cnt <= 0 {
return; return;
} }
}
EOF => return, EOF => return,
_ => { _ => {
self.skip(); self.skip();