[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 00/11] support "%define variable {value}"
From: |
Akim Demaille |
Subject: |
[PATCH 00/11] support "%define variable {value}" |
Date: |
Thu, 4 Apr 2013 17:36:17 +0200 |
Hi Joel, hi all,
In order to implement Joel's suggestion for api.value.type, some
preliminary work is needed to extend Bison to accept more types
of %define variable values, and to record how these values were
defined. See
http://lists.gnu.org/archive/html/bison-patches/2013-03/msg00016.html
for more context, but to quote Joel:
> In general for %define, I wonder if we should continue to require quotes
> for values that are keywords (such as variant, full, none). For values
> that are code in the target language, braces seem nice. (For other
> arbitrary values, such as file names maybe, quotes do seem appropriate.)
> Applying that in the case of api.value.type, we'd have:
>
> %define api.value.type union-directive
> %define api.value.type union
> %define api.value.type variant
> %define api.value.type {int}
> %define api.value.type {variant}
What follows is a first, incomplete, step. It is incomplete because
there are not enough tests, the documentation is not properly updated,
and NEWS is not changed. The options -D/-F also need to become
brace-aware, and maybe quotes aware. The M4 code should start to
"typecheck" some of the values (e.g., it should warn for
%define api.namespace "foo" instead of {foo}). But before going
any further, I'd like to receive opinions, obviously especially
Joel's :)
Akim Demaille (11):
muscle: minor refactoring
style: comment changes
muscle: refactor
grammar: split %union to group together related aspects
grammar: style changes
regen
style: fix comments
grammar: record the kind of %define variable values
regen
grammar: do not add a \n at the end of blocks of code
api.namespace: demonstrate and use {...} values instead of "..."
values
doc/bison.texi | 8 +-
src/getargs.c | 4 +-
src/muscle-tab.c | 164 +++++-----
src/muscle-tab.h | 47 ++-
src/parse-gram.c | 912 ++++++++++++++++++++++++++++---------------------------
src/parse-gram.h | 150 ++++-----
src/parse-gram.y | 89 +++---
tests/c++.at | 4 +-
tests/input.at | 6 +-
tests/local.at | 10 +-
10 files changed, 737 insertions(+), 657 deletions(-)
--
1.8.2
- [PATCH 00/11] support "%define variable {value}",
Akim Demaille <=
- [PATCH 05/11] grammar: style changes, Akim Demaille, 2013/04/04
- [PATCH 07/11] style: fix comments, Akim Demaille, 2013/04/04
- [PATCH 11/11] api.namespace: demonstrate and use {...} values instead of "..." values, Akim Demaille, 2013/04/04
- [PATCH 04/11] grammar: split %union to group together related aspects, Akim Demaille, 2013/04/04
- [PATCH 02/11] style: comment changes, Akim Demaille, 2013/04/04
- [PATCH 08/11] grammar: record the kind of %define variable values, Akim Demaille, 2013/04/04
- [PATCH 01/11] muscle: minor refactoring, Akim Demaille, 2013/04/04
- [PATCH 10/11] grammar: do not add a \n at the end of blocks of code, Akim Demaille, 2013/04/04
- [PATCH 03/11] muscle: refactor, Akim Demaille, 2013/04/04
- [PATCH 09/11] regen, Akim Demaille, 2013/04/04