mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
lalrl1.cc: give a chance to user defined YYLLOC_DEFAULT.
* data/lalr1.cc (YYLLOC_DEFAULT): Move its definition from the header file to the implementation file, after the user %code sections. * NEWS: Document it. Conflicts: ChangeLog data/lalr1.cc
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2010-05-11 Akim Demaille <demaille@gostai.com>
|
||||
|
||||
lalrl1.cc: give a chance to user defined YYLLOC_DEFAULT.
|
||||
* data/lalr1.cc (YYLLOC_DEFAULT): Move its definition from the
|
||||
header file to the implementation file, after the user %code
|
||||
sections.
|
||||
* NEWS (2.5): Document this.
|
||||
|
||||
2010-05-07 Akim Demaille <demaille@gostai.com>
|
||||
|
||||
c++: use YYRHSLOC.
|
||||
|
||||
7
NEWS
7
NEWS
@@ -215,6 +215,13 @@ Bison News
|
||||
} \
|
||||
while (false)
|
||||
|
||||
** YYLLOC_DEFAULT in C++
|
||||
|
||||
The default implementation of YYLLOC_DEFAULT used to be issued in
|
||||
the header file. It is now output in the implementation file, after
|
||||
the user %code sections so that its #ifndef guard does not try to
|
||||
override the user's YYLLOC_DEFAULT if provided.
|
||||
|
||||
* Changes in version 2.4.3 (????-??-??):
|
||||
|
||||
** Problems with spawning M4 on at least FreeBSD 8 and FreeBSD 9 have
|
||||
|
||||
@@ -69,26 +69,6 @@ dnl FIXME: This is wrong, we want computed header guards.
|
||||
# define YYTOKEN_TABLE ]b4_token_table[
|
||||
#endif
|
||||
|
||||
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
|
||||
If N is 0, then set CURRENT to the empty location which ends
|
||||
the previous symbol: RHS[0] (always defined). */
|
||||
|
||||
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
|
||||
#ifndef YYLLOC_DEFAULT
|
||||
# define YYLLOC_DEFAULT(Current, Rhs, N) \
|
||||
do \
|
||||
if (N) \
|
||||
{ \
|
||||
(Current).begin = YYRHSLOC (Rhs, 1).begin; \
|
||||
(Current).end = YYRHSLOC (Rhs, N).end; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
(Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
|
||||
} \
|
||||
while (false)
|
||||
#endif
|
||||
|
||||
]b4_namespace_open[
|
||||
|
||||
/// A Bison parser.
|
||||
@@ -331,6 +311,26 @@ b4_percent_code_get[]dnl
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
|
||||
If N is 0, then set CURRENT to the empty location which ends
|
||||
the previous symbol: RHS[0] (always defined). */
|
||||
|
||||
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
|
||||
#ifndef YYLLOC_DEFAULT
|
||||
# define YYLLOC_DEFAULT(Current, Rhs, N) \
|
||||
do \
|
||||
if (N) \
|
||||
{ \
|
||||
(Current).begin = YYRHSLOC (Rhs, 1).begin; \
|
||||
(Current).end = YYRHSLOC (Rhs, N).end; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
(Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
|
||||
} \
|
||||
while (false)
|
||||
#endif
|
||||
|
||||
/* Suppress unused-variable warnings by "using" E. */
|
||||
#define YYUSE(e) ((void) (e))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user