glr.cc: don't leak glr.c/glr.cc scaffolding to the user

Until we have a decent reimplementation of glr.cc, we have to use
tricks to shoehorn C++ symbols to the C engine of glr.c.  Some of them
are done via #define.  Unfortunately in Bison 3.6 some of these we
done in the header file, which broke valid user code.

Reported by Egor Pugin.
https://lists.gnu.org/r/bug-bison/2020-06/msg00003.html

* data/skeletons/glr.cc: Stop playing tricks with b4_pre_epilogue.
(b4_glr_cc_setup, b4_glr_cc_cleanup): New.
Much cleaner way to instal glr.cc's scaffolding around glr.c.
* data/skeletons/glr.c: Adjust to use them.
This commit is contained in:
Akim Demaille
2020-06-12 07:28:05 +02:00
parent 508ac09939
commit 3f4ffea6f2
5 changed files with 64 additions and 34 deletions

6
TODO
View File

@@ -1,4 +1,7 @@
* Bison 3.7
** glr.cc
Get rid of global_tokens_and_yystype.
** Bistromathic
- Hitting tab on a line with a syntax error is ugly
@@ -148,6 +151,9 @@ Les catégories d'avertissements incluent :
Line -1 and -3 should mention CATEGORIE, not CATEGORY.
* Bison 3.8
** Rewrite glr.cc
Get rid of scaffolding in glr.c.
** Unit rules / Injection rules (Akim Demaille)
Maybe we could expand unit rules (or "injections", see
https://homepages.cwi.nl/~daybuild/daily-books/syntax/2-sdf/sdf.html), i.e.,