mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-14 23:03:04 +00:00
Warn about unused values.
* src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
a `used' member.
(symbol_list_n_get, symbol_list_n_used_set): New.
(symbol_list_n_type_name_get): Use symbol_list_n_get.
* src/scan-gram.l (handle_action_dollar): Flag used symbols.
* src/reader.c (grammar_current_rule_check): Check that values are
used.
* src/symtab.c (symbol_print): Accept 0.
* tests/existing.at: Remove the type information.
Empty the actions.
Remove useless actions (beware of mid-rule actions: perl -000
-pi -e 's/s*{}(?=[ns]*[|;])//g').
* tests/actions.at (Exotic Dollars): Use unused values.
* tests/calc.at: Likewise.
* tests/glr-regression.at (No users destructors if stack 0 deleted):
Likewise.
* src/gram.c (rule_useful_p, rule_never_reduced_p): Use
rule_useful_p.
This commit is contained in:
@@ -98,6 +98,7 @@ AT_DATA_GRAMMAR([[input.y]],
|
||||
static int yylex (void);
|
||||
# define YYDEBUG 1
|
||||
# define YYERROR_VERBOSE 1
|
||||
# define USE(Var)
|
||||
%}
|
||||
|
||||
%union
|
||||
@@ -112,6 +113,7 @@ AT_DATA_GRAMMAR([[input.y]],
|
||||
exp: a_1 a_2 { $<val>$ = 3; } { $<val>$ = $<val>3 + 1; } a_5
|
||||
sum_of_the_five_previous_values
|
||||
{
|
||||
USE (($1, $2, $5));
|
||||
printf ("%d\n", $6);
|
||||
}
|
||||
;
|
||||
|
||||
@@ -54,6 +54,7 @@ AT_LALR1_CC_IF(
|
||||
# define alarm(seconds) /* empty */
|
||||
#endif
|
||||
#include <ctype.h>
|
||||
#define USE(Var)
|
||||
|
||||
/* Exercise pre-prologue dependency to %union. */
|
||||
typedef int semantic_value;
|
||||
@@ -109,7 +110,7 @@ input:
|
||||
|
||||
line:
|
||||
'\n'
|
||||
| exp '\n' { ]AT_PARAM_IF([*result = global_result = $1;])[ }
|
||||
| exp '\n' { ]AT_PARAM_IF([*result = global_result = $1], [USE ($1)])[; }
|
||||
;
|
||||
|
||||
exp:
|
||||
|
||||
1636
tests/existing.at
1636
tests/existing.at
File diff suppressed because it is too large
Load Diff
@@ -746,13 +746,14 @@ AT_SETUP([No users destructors if stack 0 deleted])
|
||||
AT_DATA_GRAMMAR([glr-regr9.y],
|
||||
[[
|
||||
%{
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
# include <stdio.h>
|
||||
# include <stdlib.h>
|
||||
static void yyerror (char const *);
|
||||
static int yylex (void);
|
||||
#define YYSTACKEXPANDABLE 0
|
||||
# define YYSTACKEXPANDABLE 0
|
||||
static int tokens = 0;
|
||||
static int destructors = 0;
|
||||
# define USE(Var)
|
||||
%}
|
||||
|
||||
%glr-parser
|
||||
@@ -766,7 +767,7 @@ AT_DATA_GRAMMAR([glr-regr9.y],
|
||||
%%
|
||||
|
||||
start:
|
||||
ambig0 'a' { destructors += 2; }
|
||||
ambig0 'a' { destructors += 2; USE ($2); }
|
||||
| ambig1 start { destructors += 1; }
|
||||
| ambig2 start { destructors += 1; }
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user