summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2020-12-14 20:26:41 +0100
committerAkim Demaille <akim.demaille@gmail.com>2020-12-20 18:41:42 +0100
commit0a82316e54fead8c3f1cf41d2213c868ab88f508 (patch)
tree5a00b7bfa63ceae3336e89c95413b30048599627 /m4
parent611348e67bd45dcf0322e9a32ce7160c008c3e26 (diff)
downloadbison-0a82316e54fead8c3f1cf41d2213c868ab88f508.tar.gz
glr2.cc: example: use objects (not pointers) to represent the AST
Currently we are using pointers. The whole point of glr2.cc (vs. glr.cc) is precisely to allow genuine C++ objects to be semantic values. Let's make that work. * data/skeletons/glr2.cc (glr_state::glr_state): Be sure to initialize yysval. (glr_state): Add copy-ctor, assignment and dtor. (glr_state::copyFrom): Be sure to initialize the destination if it was not. (glr_state::~glr_state): Destroy the semantic value. * examples/c++/glr/ast.hh: Rewrite so that we use genuine objects, rather than a traditional OOP hierarchy that requires to deal with pointers. With help from Bruno Belanyi <bruno.belanyi@epita.fr>. * examples/c++/glr/c++-types.yy: Remove memory management. Use true objects. (main): Don't reach yydebug directly. * examples/c++/glr/local.mk: We need C++11.
Diffstat (limited to 'm4')
0 files changed, 0 insertions, 0 deletions