This series of patches fixes minor issues and a couple of real
problems in glr2.cc. To catch them, self-checking features are added
to glr_stack_item and glr_state.
One test still fails:
748: Incorrect lookahead during nondeterministic GLR: glr2.cc
This test fails twice: it does not behave as expected (some expected
output does not show), and then it crashes (heap-use-after-free).
I see there are more places where typed pointer arithmetics is used
(e.g., in semantic_option). We need to make sure they are safe too,
or use raw pointer arithmetics.
I'll install this soon, unless someone fears I'm breaking something
(Valentin?). It will probably help to fix the last known bug.
Akim Demaille (9):
glr2.cc: add sanity checks in glr_stack_item
glr2.cc: add sanity check in glr_state
glr2.cc: style fixes
glr2.cc: fix pointer arithmethics
glr2.cc: fix yycompressStack
glr2.cc: being pure is not an option
glr2.cc: make yyparse a member function
glr2.cc: make the example more C++
glr.c: comment changes
TODO | 3 +
data/skeletons/glr.c | 16 +-
data/skeletons/glr2.cc | 633 ++++++++++++++++++--------------
examples/c++/glr/ast.hh | 100 +++++
examples/c++/glr/c++-types.test | 2 -
examples/c++/glr/c++-types.yy | 134 +------
examples/c++/glr/local.mk | 1 +
tests/glr-regression.at | 3 -
8 files changed, 484 insertions(+), 408 deletions(-)
create mode 100644 examples/c++/glr/ast.hh
--
2.29.2