low stack fix
This commit is contained in:
parent
3339bf8fb0
commit
9f5cec1186
2 changed files with 4 additions and 6 deletions
|
@ -83,5 +83,5 @@ fn main() {
|
|||
println!(
|
||||
"parsed: {:?}",
|
||||
grammar.slr_parser(&mut m.iter_mut()).parse()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -110,13 +110,11 @@ where
|
|||
childs: childs.into_iter().rev().map(|(a, _)| a.clone()).collect(),
|
||||
});
|
||||
}
|
||||
let Some(state) = stack.last() else {
|
||||
return Err("Unexpected EOS 2".into());
|
||||
};
|
||||
let Some(next) = self.get_goto(&state.1, rule) else {
|
||||
let state = stack.last().map(|s| s.1).unwrap_or(self.parse_table.2);
|
||||
let Some(next) = self.get_goto(&state, rule) else {
|
||||
return Err(format!(
|
||||
"Invalid reduction: state: {} rule: {:?}",
|
||||
state.1, rule
|
||||
state, rule
|
||||
));
|
||||
};
|
||||
stack.push((
|
||||
|
|
Loading…
Reference in a new issue