mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-10 12:53:03 +00:00
* tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
* src/reduce.c (reduce_grammar_tables): Do not free useless tags, as all tags are free'ed afterwards. From Enrico Scholz.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2001-11-28 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
|
||||
* src/reduce.c (reduce_grammar_tables): Do not free useless tags,
|
||||
as all tags are free'ed afterwards.
|
||||
From Enrico Scholz.
|
||||
|
||||
2001-11-27 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* src/system.h: Use intl/libgettext.h.
|
||||
|
||||
1
THANKS
1
THANKS
@@ -8,6 +8,7 @@ Alexander Belopolsky alexb@rentec.com
|
||||
Daniel Hagerty hag@gnu.org
|
||||
David J. MacKenzie djm@gnu.org
|
||||
Dick Streefland dick.streefland@altium.nl
|
||||
Enrico Scholz enrico.scholz@informatik.tu-chemnitz.de
|
||||
Fabrice Bauzac noon@cote-dazur.com
|
||||
Hans Aberg haberg@matematik.su.se
|
||||
Jesse Thilo jthilo@gnu.org
|
||||
|
||||
@@ -352,10 +352,6 @@ reduce_grammar_tables (void)
|
||||
sprec[n] = sprec[i];
|
||||
tags[n] = tags[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
free (tags[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/* Replace all symbol numbers in valid data structures. */
|
||||
|
||||
@@ -25,7 +25,7 @@ MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
|
||||
|
||||
TESTSUITE_AT = \
|
||||
testsuite.at \
|
||||
output.at calc.at torture.at regression.at
|
||||
output.at reduce.at calc.at torture.at regression.at
|
||||
TESTSUITE = $(srcdir)/testsuite
|
||||
|
||||
AUTOTEST = $(AUTOM4TE) --language=autotest
|
||||
|
||||
@@ -108,7 +108,7 @@ MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
|
||||
|
||||
TESTSUITE_AT = \
|
||||
testsuite.at \
|
||||
output.at calc.at torture.at regression.at
|
||||
output.at reduce.at calc.at torture.at regression.at
|
||||
|
||||
TESTSUITE = $(srcdir)/testsuite
|
||||
|
||||
|
||||
106
tests/reduce.at
Normal file
106
tests/reduce.at
Normal file
@@ -0,0 +1,106 @@
|
||||
# Exercising Bison Grammar Reduction. -*- Autotest -*-
|
||||
# Copyright 2001 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
|
||||
AT_BANNER([[Grammar Reduction.]])
|
||||
|
||||
|
||||
## ------------------- ##
|
||||
## Useless Terminals. ##
|
||||
## ------------------- ##
|
||||
|
||||
AT_SETUP([Useless Terminals])
|
||||
|
||||
AT_DATA([[input.y]],
|
||||
[[%verbose
|
||||
%output="input.c"
|
||||
|
||||
%token useless1
|
||||
%token useless2
|
||||
%token useless3
|
||||
%token useless4
|
||||
%token useless5
|
||||
%token useless6
|
||||
%token useless7
|
||||
%token useless8
|
||||
%token useless9
|
||||
|
||||
%token useful
|
||||
%%
|
||||
exp: useful;
|
||||
]])
|
||||
|
||||
AT_CHECK([[bison input.y]])
|
||||
|
||||
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0,
|
||||
[[Terminals which are not used:
|
||||
useless1
|
||||
useless2
|
||||
useless3
|
||||
useless4
|
||||
useless5
|
||||
useless6
|
||||
useless7
|
||||
useless8
|
||||
useless9
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
|
||||
|
||||
|
||||
## ---------------------- ##
|
||||
## Useless Nonterminals. ##
|
||||
## ---------------------- ##
|
||||
|
||||
AT_SETUP([Useless Nonterminals])
|
||||
|
||||
AT_DATA([[input.y]],
|
||||
[[%verbose
|
||||
%output="input.c"
|
||||
|
||||
%nterm useless1
|
||||
%nterm useless2
|
||||
%nterm useless3
|
||||
%nterm useless4
|
||||
%nterm useless5
|
||||
%nterm useless6
|
||||
%nterm useless7
|
||||
%nterm useless8
|
||||
%nterm useless9
|
||||
|
||||
%token useful
|
||||
%%
|
||||
exp: useful;
|
||||
]])
|
||||
|
||||
AT_CHECK([[bison input.y]])
|
||||
|
||||
AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0,
|
||||
[[Terminals which are not used:
|
||||
useless1
|
||||
useless2
|
||||
useless3
|
||||
useless4
|
||||
useless5
|
||||
useless6
|
||||
useless7
|
||||
useless8
|
||||
useless9
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
@@ -26,6 +26,7 @@ AT_INIT
|
||||
AT_TESTED([bison])
|
||||
|
||||
m4_include([output.at])
|
||||
m4_include([reduce.at])
|
||||
m4_include([calc.at])
|
||||
m4_include([torture.at])
|
||||
m4_include([regression.at])
|
||||
|
||||
Reference in New Issue
Block a user