mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 18:23:03 +00:00
As in semantic actions, make @$ in %initial-action, %destructor, and
%printer imply %locations. * src/scan-code.l (SC_SYMBOL_ACTION): Set locations_flag = true when scanning @$. * tests/actions.at (AT_CHECK_ACTION_LOCATIONS): New macro supporting... (@$ in %initial-action implies %locations, @$ in %destructor implies %locations, @$ in %printer implies %locations): ... these new test cases.
This commit is contained in:
11
ChangeLog
11
ChangeLog
@@ -1,3 +1,14 @@
|
|||||||
|
2007-02-10 Joel E. Denny <jdenny@ces.clemson.edu>
|
||||||
|
|
||||||
|
As in semantic actions, make @$ in %initial-action, %destructor, and
|
||||||
|
%printer imply %locations.
|
||||||
|
* src/scan-code.l (SC_SYMBOL_ACTION): Set locations_flag = true when
|
||||||
|
scanning @$.
|
||||||
|
* tests/actions.at (AT_CHECK_ACTION_LOCATIONS): New macro supporting...
|
||||||
|
(@$ in %initial-action implies %locations,
|
||||||
|
@$ in %destructor implies %locations,
|
||||||
|
@$ in %printer implies %locations): ... these new test cases.
|
||||||
|
|
||||||
2007-02-07 Paul Eggert <eggert@cs.ucla.edu>
|
2007-02-07 Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
|
||||||
Undo most of the 2007-02-03 change, switching to the strcase module
|
Undo most of the 2007-02-03 change, switching to the strcase module
|
||||||
|
|||||||
@@ -202,7 +202,10 @@ splice (\\[ \f\t\v]*\n)*
|
|||||||
obstack_sgrow (&obstack_for_string, "]b4_dollar_dollar[");
|
obstack_sgrow (&obstack_for_string, "]b4_dollar_dollar[");
|
||||||
self->is_value_used = true;
|
self->is_value_used = true;
|
||||||
}
|
}
|
||||||
"@$" obstack_sgrow (&obstack_for_string, "]b4_at_dollar[");
|
"@$" {
|
||||||
|
obstack_sgrow (&obstack_for_string, "]b4_at_dollar[");
|
||||||
|
locations_flag = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1247,3 +1247,62 @@ Stack now 0
|
|||||||
]])
|
]])
|
||||||
|
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
|
|
||||||
|
|
||||||
|
## ----------------------- ##
|
||||||
|
## @$ implies %locations. ##
|
||||||
|
## ----------------------- ##
|
||||||
|
|
||||||
|
# Bison once forgot to check for @$ in actions other than semantic actions.
|
||||||
|
|
||||||
|
# AT_CHECK_ACTION_LOCATIONS(ACTION-DIRECTIVE)
|
||||||
|
# -------------------------------------------------------
|
||||||
|
m4_define([AT_CHECK_ACTION_LOCATIONS],
|
||||||
|
[AT_SETUP([[@$ in ]$1[ implies %locations]])
|
||||||
|
|
||||||
|
AT_DATA_GRAMMAR([[input.y]],
|
||||||
|
[[%code {
|
||||||
|
#include <stdio.h>
|
||||||
|
static int yylex (void);
|
||||||
|
static void yyerror (char const *msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
%debug
|
||||||
|
|
||||||
|
]$1[ {
|
||||||
|
printf ("%d\n", @$.first_line);
|
||||||
|
} ]m4_if($1, [%initial-action], [], [[start]])[
|
||||||
|
|
||||||
|
%%
|
||||||
|
|
||||||
|
start: ;
|
||||||
|
|
||||||
|
%%
|
||||||
|
|
||||||
|
static int
|
||||||
|
yylex (void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
yyerror (char const *msg)
|
||||||
|
{
|
||||||
|
fprintf (stderr, "%s\n", msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
return yyparse ();
|
||||||
|
}
|
||||||
|
]])
|
||||||
|
|
||||||
|
AT_CHECK([[bison -o input.c input.y]])
|
||||||
|
AT_COMPILE([[input]])
|
||||||
|
|
||||||
|
AT_CLEANUP])
|
||||||
|
|
||||||
|
AT_CHECK_ACTION_LOCATIONS([[%initial-action]])
|
||||||
|
AT_CHECK_ACTION_LOCATIONS([[%destructor]])
|
||||||
|
AT_CHECK_ACTION_LOCATIONS([[%printer]])
|
||||||
|
|||||||
Reference in New Issue
Block a user