mirror of
https://github.com/erg-lang/erg.git
synced 2025-10-03 14:04:33 +00:00
fix(parser): skip multi nested dedent
This commit is contained in:
parent
0dba4da58a
commit
0b36b48642
1 changed files with 9 additions and 1 deletions
|
@ -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();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue