mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-18 00:33:03 +00:00
* data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
and return properly parenthesized result. * data/lalar1.cc (YYLLOC_DEFAULT): Likewise. * data/yacc.c (YYLLOC_DEFAULT): Likewise. Remove unnecessary parentheses from uses. * doc/bison.texinfo (Location Default Action): Describe the conventions for parentheses.
This commit is contained in:
10
ChangeLog
10
ChangeLog
@@ -1,3 +1,13 @@
|
|||||||
|
2003-06-20 Paul Eggert <eggert@twinsun.com>
|
||||||
|
|
||||||
|
* data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
|
||||||
|
and return properly parenthesized result.
|
||||||
|
* data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
|
||||||
|
* data/yacc.c (YYLLOC_DEFAULT): Likewise.
|
||||||
|
Remove unnecessary parentheses from uses.
|
||||||
|
* doc/bison.texinfo (Location Default Action): Describe the
|
||||||
|
conventions for parentheses.
|
||||||
|
|
||||||
2003-06-19 Paul Eggert <eggert@twinsun.com>
|
2003-06-19 Paul Eggert <eggert@twinsun.com>
|
||||||
|
|
||||||
* data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
|
* data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
|
||||||
|
|||||||
10
data/glr.c
10
data/glr.c
@@ -414,14 +414,14 @@ static const ]b4_int_type_for([b4_stos])[ yystos[] =
|
|||||||
|
|
||||||
#ifndef YYLLOC_DEFAULT
|
#ifndef YYLLOC_DEFAULT
|
||||||
# define YYLLOC_DEFAULT(yyCurrent, yyRhs, YYN) \
|
# define YYLLOC_DEFAULT(yyCurrent, yyRhs, YYN) \
|
||||||
(yyCurrent).first_line = YYRHSLOC(yyRhs,1).first_line; \
|
((yyCurrent).first_line = YYRHSLOC(yyRhs, 1).first_line, \
|
||||||
(yyCurrent).first_column = YYRHSLOC(yyRhs,1).first_column; \
|
(yyCurrent).first_column = YYRHSLOC(yyRhs, 1).first_column, \
|
||||||
(yyCurrent).last_line = YYRHSLOC(yyRhs,YYN).last_line; \
|
(yyCurrent).last_line = YYRHSLOC(yyRhs, YYN).last_line, \
|
||||||
(yyCurrent).last_column = YYRHSLOC(yyRhs,YYN).last_column;
|
(yyCurrent).last_column = YYRHSLOC(yyRhs, YYN).last_column)
|
||||||
#endif
|
#endif
|
||||||
]],[
|
]],[
|
||||||
#ifndef YYLLOC_DEFAULT
|
#ifndef YYLLOC_DEFAULT
|
||||||
# define YYLLOC_DEFAULT(yyCurrent, yyRhs, YYN)
|
# define YYLLOC_DEFAULT(yyCurrent, yyRhs, YYN) ((void) 0)
|
||||||
#endif
|
#endif
|
||||||
])[
|
])[
|
||||||
|
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ b4_syncline([@oline@], [@ofile@])],
|
|||||||
b4_syncline([@oline@], [@ofile@])[
|
b4_syncline([@oline@], [@ofile@])[
|
||||||
#ifndef YYLLOC_DEFAULT
|
#ifndef YYLLOC_DEFAULT
|
||||||
# define YYLLOC_DEFAULT(Current, Rhs, N) \
|
# define YYLLOC_DEFAULT(Current, Rhs, N) \
|
||||||
Current.end = Rhs[N].end;
|
((Current).end = Rhs[N].end)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace yy
|
namespace yy
|
||||||
|
|||||||
14
data/yacc.c
14
data/yacc.c
@@ -501,11 +501,11 @@ while (0)
|
|||||||
are run). */
|
are run). */
|
||||||
|
|
||||||
#ifndef YYLLOC_DEFAULT
|
#ifndef YYLLOC_DEFAULT
|
||||||
# define YYLLOC_DEFAULT(Current, Rhs, N) \
|
# define YYLLOC_DEFAULT(Current, Rhs, N) \
|
||||||
Current.first_line = Rhs[1].first_line; \
|
((Current).first_line = (Rhs)[1].first_line, \
|
||||||
Current.first_column = Rhs[1].first_column; \
|
(Current).first_column = (Rhs)[1].first_column, \
|
||||||
Current.last_line = Rhs[N].last_line; \
|
(Current).last_line = (Rhs)[N].last_line, \
|
||||||
Current.last_column = Rhs[N].last_column;
|
(Current).last_column = (Rhs)[N].last_column)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* YYLEX -- calling `yylex' with the right arguments. */
|
/* YYLEX -- calling `yylex' with the right arguments. */
|
||||||
@@ -983,7 +983,7 @@ yyreduce:
|
|||||||
|
|
||||||
]b4_location_if(
|
]b4_location_if(
|
||||||
[ /* Default location. */
|
[ /* Default location. */
|
||||||
YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);])[
|
YYLLOC_DEFAULT (yyloc, yylsp - yylen, yylen);])[
|
||||||
YY_REDUCE_PRINT (yyn);
|
YY_REDUCE_PRINT (yyn);
|
||||||
switch (yyn)
|
switch (yyn)
|
||||||
]{
|
]{
|
||||||
@@ -1180,7 +1180,7 @@ yyerrlab1:
|
|||||||
YYDPRINTF ((stderr, "Shifting error token, "));
|
YYDPRINTF ((stderr, "Shifting error token, "));
|
||||||
|
|
||||||
*++yyvsp = yylval;
|
*++yyvsp = yylval;
|
||||||
]b4_location_if([ YYLLOC_DEFAULT (yyloc, yylsp, (yylerrsp - yylsp));
|
]b4_location_if([ YYLLOC_DEFAULT (yyloc, yylsp, yylerrsp - yylsp);
|
||||||
*++yylsp = yyloc;])[
|
*++yylsp = yyloc;])[
|
||||||
|
|
||||||
yystate = yyn;
|
yystate = yyn;
|
||||||
|
|||||||
@@ -3210,11 +3210,11 @@ By default, @code{YYLLOC_DEFAULT} is defined this way for simple
|
|||||||
|
|
||||||
@example
|
@example
|
||||||
@group
|
@group
|
||||||
#define YYLLOC_DEFAULT(Current, Rhs, N) \
|
# define YYLLOC_DEFAULT(Current, Rhs, N) \
|
||||||
Current.first_line = Rhs[1].first_line; \
|
((Current).first_line = (Rhs)[1].first_line, \
|
||||||
Current.first_column = Rhs[1].first_column; \
|
(Current).first_column = (Rhs)[1].first_column, \
|
||||||
Current.last_line = Rhs[N].last_line; \
|
(Current).last_line = (Rhs)[N].last_line, \
|
||||||
Current.last_column = Rhs[N].last_column;
|
(Current).last_column = (Rhs)[N].last_column)
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@@ -3223,11 +3223,11 @@ and like this for @acronym{GLR} parsers:
|
|||||||
|
|
||||||
@example
|
@example
|
||||||
@group
|
@group
|
||||||
#define YYLLOC_DEFAULT(Current, Rhs, N) \
|
# define YYLLOC_DEFAULT(yyCurrent, yyRhs, YYN) \
|
||||||
Current.first_line = YYRHSLOC(Rhs,1).first_line; \
|
((yyCurrent).first_line = YYRHSLOC(yyRhs, 1).first_line, \
|
||||||
Current.first_column = YYRHSLOC(Rhs,1).first_column; \
|
(yyCurrent).first_column = YYRHSLOC(yyRhs, 1).first_column, \
|
||||||
Current.last_line = YYRHSLOC(Rhs,N).last_line; \
|
(yyCurrent).last_line = YYRHSLOC(yyRhs, YYN).last_line, \
|
||||||
Current.last_column = YYRHSLOC(Rhs,N).last_column;
|
(yyCurrent).last_column = YYRHSLOC(yyRhs, YYN).last_column)
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@@ -3241,6 +3241,12 @@ result) should be modified by @code{YYLLOC_DEFAULT}.
|
|||||||
@item
|
@item
|
||||||
For consistency with semantic actions, valid indexes for the location
|
For consistency with semantic actions, valid indexes for the location
|
||||||
array range from 1 to @var{n}.
|
array range from 1 to @var{n}.
|
||||||
|
|
||||||
|
@item
|
||||||
|
Your macro should parenthesize its arguments, if need be, since the
|
||||||
|
actual arguments may not be surrounded by parentheses. Also, your
|
||||||
|
macro should expand to something that can be used as a single
|
||||||
|
statement when it is followed by a semicolon.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@node Declarations
|
@node Declarations
|
||||||
|
|||||||
Reference in New Issue
Block a user