low stack fix

This commit is contained in:
jusax23 2024-11-09 20:55:10 +01:00
parent 3339bf8fb0
commit 9f5cec1186
Signed by: jusax23
GPG key ID: 499E2AA870C1CD41
2 changed files with 4 additions and 6 deletions

View file

@ -83,5 +83,5 @@ fn main() {
println!( println!(
"parsed: {:?}", "parsed: {:?}",
grammar.slr_parser(&mut m.iter_mut()).parse() grammar.slr_parser(&mut m.iter_mut()).parse()
) );
} }

View file

@ -110,13 +110,11 @@ where
childs: childs.into_iter().rev().map(|(a, _)| a.clone()).collect(), childs: childs.into_iter().rev().map(|(a, _)| a.clone()).collect(),
}); });
} }
let Some(state) = stack.last() else { let state = stack.last().map(|s| s.1).unwrap_or(self.parse_table.2);
return Err("Unexpected EOS 2".into()); let Some(next) = self.get_goto(&state, rule) else {
};
let Some(next) = self.get_goto(&state.1, rule) else {
return Err(format!( return Err(format!(
"Invalid reduction: state: {} rule: {:?}", "Invalid reduction: state: {} rule: {:?}",
state.1, rule state, rule
)); ));
}; };
stack.push(( stack.push((