grammar: record the kind of %define variable values
authorAkim Demaille <akim@lrde.epita.fr>
Thu, 4 Apr 2013 14:38:17 +0000 (16:38 +0200)
committerAkim Demaille <akim@lrde.epita.fr>
Thu, 4 Apr 2013 14:50:38 +0000 (16:50 +0200)
commit14bfd2e9d9e5a17dfc7cbba44872abccad0c1d65
treeca720c4aad261f0a4449bc283c69c2297e2953ed
parent36a17b50b5b88fcc90d574adb13567ba65755116
grammar: record the kind of %define variable values

Provide a means to tell the difference between "keyword" values (e.g.,
%define api.pull both), "string" values (e.g., %define file.name
"foo"), and "code" values (e.g., %define api.namespace {calc}).

Suggested by Joel E. Denny.
http://lists.gnu.org/archive/html/bison-patches/2013-03/msg00016.html

* src/muscle-tab.h, src/muscle-tab.c (muscle_kind, muscle_kind_new)
(muscle_kind_string): New.
(muscle_percent_define_insert): Take the kind as new argument.
Insert it in the muscle table.
Adjust callers.
* src/getargs.c: Adjust callers.
* src/parse-gram.y: Ditto.
(content.opt): Remove, replaced by...
(value): this new non-terminal, whose semantics value is stored
in the new "value" union member.
Provide a printer.
Support values in braces in additions to keyword and string values.

fuse me
src/getargs.c
src/muscle-tab.c
src/muscle-tab.h
src/parse-gram.y