Merge maint into master

* upstream/maint: (48 commits)
  THANKS: update an address
  tests: adjust syncline tests to GCC 7
  glr: fix improperly placed synclines
  bison: be git grep friendly
  Replace ftp with https
  maint: post-release administrivia
  version 3.0.5
  bison: style: indentation fixes
  regen
  bison: please address sanitizer
  C++: style: fix indentation
  NEWS: update
  C++: style: prefer `unsigned` to `unsigned int`
  C++: style: space before paren
  C++: fix -Wdeprecated warnings
  tests: fix -Wdeprecated warning
  maint: update syntax-check exclusions
  autoconf: update
  regen
  Update copyright years
  ...
This commit is contained in:
Akim Demaille
2018-06-17 18:43:59 +02:00
210 changed files with 1339 additions and 1093 deletions

View File

@@ -1 +1 @@
3.0.4 3.0.5

View File

@@ -24,7 +24,7 @@ and nasty bugs.
----- -----
Copyright (C) 1998-2015 Free Software Foundation, Inc. Copyright (C) 1998-2015, 2018 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.

View File

@@ -26733,8 +26733,8 @@
----- -----
Copyright (C) 1987-1988, 1991-2015 Free Software Foundation, Copyright (C) 1987-1988, 1991-2015, 2018 Free Software
Inc. Foundation, Inc.
Copying and distribution of this file, with or without Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice and this modification, are permitted provided the copyright notice and this

View File

@@ -1,6 +1,6 @@
## Process this file with automake to produce Makefile.in. ## Process this file with automake to produce Makefile.in.
# Copyright (C) 2001-2015 Free Software Foundation, Inc. # Copyright (C) 2001-2015, 2018 Free Software Foundation, Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

34
NEWS
View File

@@ -45,6 +45,36 @@ GNU Bison NEWS
input: '0' | exp input: '0' | exp
^^^ ^^^
* Noteworthy changes in release 3.0.5 (2018-05-27) [stable]
** Bug fixes
*** C++: Fix support of 'syntax_error'
One incorrect 'inline' resulted in linking errors about the constructor of
the syntax_error exception.
*** C++: Fix warnings
GCC 7.3 (with -O1 or -O2 but not -O0 or -O3) issued null-dereference
warnings about yyformat being possibly null. It also warned about the
deprecated implicit definition of copy constructors when there's a
user-defined (copy) assignment operator.
*** Location of errors
In C++ parsers, out-of-bounds errors can happen when a rule with an empty
ride-hand side raises a syntax error. The behavior of the default parser
(yacc.c) in such a condition was undefined.
Now all the parsers match the behavior of glr.c: @$ is used as the
location of the error. This handles gracefully rules with and without
rhs.
*** Portability fixes in the test suite
On some platforms, some Java and/or C++ tests were failing.
* Noteworthy changes in release 3.0.4 (2015-01-23) [stable] * Noteworthy changes in release 3.0.4 (2015-01-23) [stable]
** Bug fixes ** Bug fixes
@@ -106,7 +136,7 @@ GNU Bison NEWS
extracted from the documentation: extracted from the documentation:
- rpcalc - rpcalc
Reverse polish calculator, a simple introductory example. Reverse Polish Calculator, a simple introductory example.
- mfcalc - mfcalc
Multi-function Calc, a calculator with memory and functions and located Multi-function Calc, a calculator with memory and functions and located
error messages. error messages.
@@ -2793,7 +2823,7 @@ Output file does not redefine const for C++.
----- -----
Copyright (C) 1995-2015 Free Software Foundation, Inc. Copyright (C) 1995-2015, 2018 Free Software Foundation, Inc.
This file is part of Bison, the GNU Parser Generator. This file is part of Bison, the GNU Parser Generator.

View File

@@ -36,7 +36,7 @@ to the bison package.
----- -----
Copyright (C) 2002, 2005, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2005, 2009-2015, 2018 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.

4
README
View File

@@ -7,7 +7,7 @@ instructions.
Bison requires GNU m4 1.4.6 or later. See: Bison requires GNU m4 1.4.6 or later. See:
ftp://ftp.gnu.org/gnu/m4/m4-1.4.6.tar.gz https://ftp.gnu.org/gnu/m4/m4-1.4.6.tar.gz
** Internationalization ** Internationalization
Bison supports two catalogues: one for Bison itself (i.e., for the Bison supports two catalogues: one for Bison itself (i.e., for the
@@ -44,7 +44,7 @@ End:
----- -----
Copyright (C) 1992, 1998-1999, 2003-2005, 2008-2015 Free Software Copyright (C) 1992, 1998-1999, 2003-2005, 2008-2015, 2018 Free Software
Foundation, Inc. Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.

View File

@@ -12,7 +12,7 @@ the problems you encounter.
----- -----
Copyright (C) 2002, 2004, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2004, 2009-2015, 2018 Free Software Foundation, Inc.
This file is part of GNU Bison. This file is part of GNU Bison.

View File

@@ -9,19 +9,19 @@ Everything related to the development of Bison is on Savannah:
* Administrivia * Administrivia
** If you incorporate a change from somebody on the net: ** If you incorporate a change from somebody on the net:
First, if it is a large change, you must make sure they have signed First, if it is a large change, you must make sure they have signed the
the appropriate paperwork. Second, be sure to add their name and appropriate paperwork. Second, be sure to add their name and email address
email address to THANKS. to THANKS.
** If a change fixes a test, mention the test in the commit message. ** If a change fixes a test, mention the test in the commit message.
** Bug reports ** Bug reports
If somebody reports a new bug, mention his name in the commit message If somebody reports a new bug, mention his name in the commit message and in
and in the test case you write. Put him into THANKS. the test case you write. Put him into THANKS.
The correct response to most actual bugs is to write a new test case The correct response to most actual bugs is to write a new test case which
which demonstrates the bug. Then fix the bug, re-run the test suite, demonstrates the bug. Then fix the bug, re-run the test suite, and check
and check everything in. everything in.
* Hacking * Hacking
@@ -30,17 +30,17 @@ and check everything in.
Which include serious bug fixes, must be mentioned in NEWS. Which include serious bug fixes, must be mentioned in NEWS.
** Translations ** Translations
Only user visible strings are to be translated: error messages, bits Only user visible strings are to be translated: error messages, bits of the
of the .output file etc. This excludes impossible error messages .output file etc. This excludes impossible error messages (comparable to
(comparable to assert/abort), and all the --trace output which is assert/abort), and all the --trace output which is meant for the maintainers
meant for the maintainers only. only.
** Horizontal tabs ** Horizontal tabs
Do not add horizontal tab characters to any file in Bison's repository Do not add horizontal tab characters to any file in Bison's repository
except where required. For example, do not use tabs to format C code. except where required. For example, do not use tabs to format C code.
However, make files, ChangeLog, and some regular expressions require However, make files, ChangeLog, and some regular expressions require tabs.
tabs. Also, test cases might need to contain tabs to check that Bison Also, test cases might need to contain tabs to check that Bison properly
properly processes tabs in its input. processes tabs in its input.
* Working from the repository * Working from the repository
@@ -103,14 +103,16 @@ to perform the first checkout of the submodules, run
$ git submodule update --init $ git submodule update --init
Git submodule support is weak before versions 1.6 and later, upgrade Git if
your version is older.
The next step is to get other files needed to build, which are The next step is to get other files needed to build, which are
extracted from other source packages: extracted from other source packages:
$ ./bootstrap $ ./bootstrap
Bootstrapping updates the submodules to the versions registered in the
top-level directory. To change gnulib, first check out the version you want
in `gnulib`, then commit this change in Bison's repository, and finally run
bootstrap.
If it fails with missing symbols (e.g., "error: possibly undefined macro: If it fails with missing symbols (e.g., "error: possibly undefined macro:
AC_PROG_GNU_M4"), you are likely to have forgotten the submodule AC_PROG_GNU_M4"), you are likely to have forgotten the submodule
initialization part. Otherwise, there you are! Just initialization part. Otherwise, there you are! Just
@@ -137,13 +139,12 @@ explicitly by the user.
*** Updating Bison *** Updating Bison
If you pull a newer version of a branch, say via "git pull", you might If you pull a newer version of a branch, say via "git pull", you might
import requests for updated submodules. A simple "git diff" will import requests for updated submodules. A simple "git diff" will reveal if
reveal if the current version of the submodule (i.e., the actual the current version of the submodule (i.e., the actual contents of the
contents of the gnulib directory) and the current request from the gnulib directory) and the current request from the subscriber (i.e., the
subscriber (i.e., the reference of the version of gnulib that the reference of the version of gnulib that the Bison repository requests)
Bison repository requests) differ. To upgrade the submodules (i.e., differ. To upgrade the submodules (i.e., to check out the version that is
to check out the version that is actually requested by the subscriber, actually requested by the subscriber, run "git submodule update".
run "git submodule update".
$ git pull $ git pull
$ git submodule update $ git submodule update
@@ -167,8 +168,8 @@ Register your changes.
$ git checkin ... $ git checkin ...
For a suggestion of what gnulib commit might be stable enough for a For a suggestion of what gnulib commit might be stable enough for a formal
formal release, see the ChangeLog in the latest gnulib snapshot at: release, see the ChangeLog in the latest gnulib snapshot at:
http://erislabs.net/ianb/projects/gnulib/ http://erislabs.net/ianb/projects/gnulib/
@@ -178,9 +179,9 @@ The Autoconf files we use are currently:
lib/m4sugar/m4sugar.m4 lib/m4sugar/m4sugar.m4
lib/m4sugar/foreach.m4 lib/m4sugar/foreach.m4
These files don't change very often in Autoconf, so it should be These files don't change very often in Autoconf, so it should be relatively
relatively straight-forward to examine the differences in order to straight-forward to examine the differences in order to decide whether to
decide whether to update. update.
* Test suite * Test suite
@@ -243,102 +244,99 @@ suite. So currently, do not try to run valgrind on Mac OS X.
Try to run the test suite with more severe conditions before a Try to run the test suite with more severe conditions before a
release: release:
- Configure the package with --enable-gcc-warnings, so that one checks - Configure the package with --enable-gcc-warnings, so that one checks that
that 1. Bison compiles cleanly, 2. the parsers it produces compile 1. Bison compiles cleanly, 2. the parsers it produces compile cleanly too.
cleanly too.
- Maybe build with -DGNULIB_POSIXCHECK, which suggests gnulib modules - Maybe build with -DGNULIB_POSIXCHECK, which suggests gnulib modules that
that can fix portability issues. See if you really want to pay can fix portability issues. See if you really want to pay attention to
attention to its warnings; there's no need to obey blindly to it its warnings; there's no need to obey blindly to it
(<http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00057.html>). (<http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00057.html>).
- Check with "make syntax-check" if there are issues diagnosed by - Check with "make syntax-check" if there are issues diagnosed by gnulib.
gnulib.
- run "make maintainer-check" which: - run "make maintainer-check" which:
- runs "valgrind -q bison" to run Bison under Valgrind. - runs "valgrind -q bison" to run Bison under Valgrind.
- runs the parsers under Valgrind. - runs the parsers under Valgrind.
- runs the test suite with G++ as C compiler... - runs the test suite with G++ as C compiler...
- run "make maintainer-push-check", which runs "make maintainer-check" - run "make maintainer-push-check", which runs "make maintainer-check" while
while activating the push implementation and its pull interface wrappers activating the push implementation and its pull interface wrappers in many
in many test cases that were originally written to exercise only the test cases that were originally written to exercise only the pull
pull implementation. This makes certain the push implementation can implementation. This makes certain the push implementation can perform
perform every task the pull implementation can. every task the pull implementation can.
- run "make maintainer-xml-check", which runs "make maintainer-check" - run "make maintainer-xml-check", which runs "make maintainer-check" while
while checking Bison's XML automaton report for every working grammar checking Bison's XML automaton report for every working grammar passed to
passed to Bison in the test suite. The check just diffs the output of Bison in the test suite. The check just diffs the output of Bison's
Bison's included XSLT style sheets with the output of --report=all and included XSLT style sheets with the output of --report=all and --graph.
--graph.
- running "make maintainer-release-check" takes care of running - running "make maintainer-release-check" takes care of running
maintainer-check, maintainer-push-check and maintainer-xml-check. maintainer-check, maintainer-push-check and maintainer-xml-check.
- Change tests/atlocal/CFLAGS to add your preferred options. For - Change tests/atlocal/CFLAGS to add your preferred options. For instance,
instance, "-traditional" to check that the parsers are K&R. Note "-traditional" to check that the parsers are K&R. Note that it does not
that it does not make sense for glr.c, which should be ANSI, but make sense for glr.c, which should be ANSI, but currently is actually GNU
currently is actually GNU C, nor for lalr1.cc. C, nor for lalr1.cc.
- Test with a very recent version of GCC for both C and C++. Testing - Test with a very recent version of GCC for both C and C++. Testing with
with older versions that are still in use is nice too. older versions that are still in use is nice too.
* Release Procedure * Release Procedure
This section needs to be updated to take into account features from This section needs to be updated to take into account features from gnulib.
gnulib. In particular, be sure to read README-release. In particular, be sure to read README-release.
** Update the submodules. See above. ** Update the submodules. See above.
** Update maintainer tools, such as Autoconf. See above. ** Update maintainer tools, such as Autoconf. See above.
** Try to get the *.pot files to the Translation Project at least one ** Try to get the *.pot files to the Translation Project at least one
week before a stable release, to give them time to translate them. week before a stable release, to give them time to translate them. Before
Before generating the *.pot files, make sure that po/POTFILES.in and generating the *.pot files, make sure that po/POTFILES.in and
runtime-po/POTFILES.in list all files with translatable strings. runtime-po/POTFILES.in list all files with translatable strings. This
This helps: grep -l '\<_(' * helps: grep -l '\<_(' *
** Tests ** Tests
See above. See above.
** Update the foreign files ** Update the foreign files
Running "./bootstrap" in the top level should update them all for you. Running "./bootstrap" in the top level should update them all for you. This
This covers PO files too. Sometimes a PO file contains problems that covers PO files too. Sometimes a PO file contains problems that causes it
causes it to be rejected by recent Gettext releases; please report to be rejected by recent Gettext releases; please report these to the
these to the Translation Project. Translation Project.
** Update README ** Update README
Make sure the information in README is current. Most notably, make sure Make sure the information in README is current. Most notably, make sure it
it recommends a version of GNU M4 that is compatible with the latest recommends a version of GNU M4 that is compatible with the latest Bison
Bison sources. sources.
** Check copyright years. ** Check copyright years.
We update years in copyright statements throughout Bison once at the We update years in copyright statements throughout Bison once at the start
start of every year by running "make update-copyright". However, before of every year by running "make update-copyright". However, before a
a release, it's good to verify that it's actually been run. Besides the release, it's good to verify that it's actually been run. Besides the
copyright statement for each Bison file, check the copyright statements copyright statement for each Bison file, check the copyright statements that
that the skeletons insert into generated parsers, and check all the skeletons insert into generated parsers, and check all occurrences of
occurrences of PACKAGE_COPYRIGHT_YEAR in configure.ac. PACKAGE_COPYRIGHT_YEAR in configure.ac.
** Update NEWS, commit and tag. ** Update NEWS, commit and tag.
See do-release-commit-and-tag in README-release. For a while, we used See do-release-commit-and-tag in README-release. For a while, we used beta
beta names such as "2.6_rc1". Now that we use gnulib in the release names such as "2.6_rc1". Now that we use gnulib in the release procedure,
procedure, we must use "2.5.90", which has the additional benefit of we must use "2.5.90", which has the additional benefit of being properly
being properly sorted in "git tag -l". sorted in "git tag -l".
** make alpha, beta, or stable ** make alpha, beta, or stable
See README-release. See README-release.
** Upload ** Upload
There are two ways to upload the tarballs to the GNU servers: using There are two ways to upload the tarballs to the GNU servers: using gnupload
gnupload (from gnulib), or by hand. Obviously prefer the former. But (from gnulib), or by hand. Obviously prefer the former. But in either
in either case, be sure to read the following paragraph. case, be sure to read the following paragraph.
*** Setup *** Setup
You need "gnupg". You need "gnupg".
Make sure your public key has been uploaded at least to Make sure your public key has been uploaded at least to keys.gnupg.net. You
keys.gnupg.net. You can upload it with: can upload it with:
gpg --keyserver keys.gnupg.net --send-keys F125BDF3 gpg --keyserver keys.gnupg.net --send-keys F125BDF3
@@ -347,8 +345,8 @@ where F125BDF3 should be replaced with your key ID.
*** Using gnupload *** Using gnupload
You need "ncftp". You need "ncftp".
At the end "make stable" (or alpha/beta) will display the procedure to At the end "make stable" (or alpha/beta) will display the procedure to run.
run. Just copy and paste it in your shell. Just copy and paste it in your shell.
*** By hand *** By hand
@@ -410,9 +408,9 @@ sections that have been removed or renamed):
$ ls -lt $ ls -lt
Remove these files and commit their removal to CVS. For each of these Remove these files and commit their removal to CVS. For each of these
files, add a line to the file .symlinks. This will ensure that files, add a line to the file .symlinks. This will ensure that hyperlinks
hyperlinks to the removed files will redirect to the entire manual; this to the removed files will redirect to the entire manual; this is better than
is better than a 404 error. a 404 error.
There is a problem with 'index.html' being written twice (once for POSIX There is a problem with 'index.html' being written twice (once for POSIX
function 'index', once for the table of contents); you can ignore this function 'index', once for the table of contents); you can ignore this
@@ -431,19 +429,18 @@ Complete/fix the announcement file. The generated list of recipients
(info-gnu@gnu.org, bug-bison@gnu.org, help-bison@gnu.org, (info-gnu@gnu.org, bug-bison@gnu.org, help-bison@gnu.org,
bison-patches@gnu.org, and coordinator@translationproject.org) is bison-patches@gnu.org, and coordinator@translationproject.org) is
appropriate for a stable release or a "serious beta". For any other appropriate for a stable release or a "serious beta". For any other
release, drop at least info-gnu@gnu.org. For an example of how to release, drop at least info-gnu@gnu.org. For an example of how to fill out
fill out the rest of the template, search the mailing list archives the rest of the template, search the mailing list archives for the most
for the most recent release announcement. recent release announcement.
For a stable release, send the same announcement on the comp.compilers For a stable release, send the same announcement on the comp.compilers
newsgroup by sending email to compilers@iecc.com. Do not make any Cc as newsgroup by sending email to compilers@iecc.com. Do not make any Cc as the
the moderator will throw away anything cross-posted or Cc'ed. It really moderator will throw away anything cross-posted or Cc'ed. It really needs
needs to be a separate message. to be a separate message.
** Prepare NEWS ** Prepare NEWS
So that developers don't accidentally add new items to the old NEWS So that developers don't accidentally add new items to the old NEWS entry,
entry, create a new empty entry in line 3 (without the two leading create a new empty entry in line 3 (without the two leading spaces):
spaces):
* Noteworthy changes in release ?.? (????-??-??) [?] * Noteworthy changes in release ?.? (????-??-??) [?]
@@ -451,7 +448,7 @@ Push these changes.
----- -----
Copyright (C) 2002-2005, 2007-2015 Free Software Foundation, Inc. Copyright (C) 2002-2005, 2007-2015, 2018 Free Software Foundation, Inc.
This file is part of GNU Bison. This file is part of GNU Bison.

8
THANKS
View File

@@ -15,6 +15,7 @@ Anthony Heading ajrh@ajrh.net
Antonio Silva Correia amsilvacorreia@hotmail.com Antonio Silva Correia amsilvacorreia@hotmail.com
Arnold Robbins arnold@skeeve.com Arnold Robbins arnold@skeeve.com
Art Haas ahaas@neosoft.com Art Haas ahaas@neosoft.com
Askar Safin safinaskar@mail.ru
Baron Schwartz baron@sequent.org Baron Schwartz baron@sequent.org
Ben Pfaff blp@cs.stanford.edu Ben Pfaff blp@cs.stanford.edu
Benoit Perrot benoit.perrot@epita.fr Benoit Perrot benoit.perrot@epita.fr
@@ -39,6 +40,7 @@ Daniel Hagerty hag@gnu.org
David J. MacKenzie djm@gnu.org David J. MacKenzie djm@gnu.org
David Kastrup dak@gnu.org David Kastrup dak@gnu.org
Dennis Clarke dclarke@blastwave.org Dennis Clarke dclarke@blastwave.org
Derek Clegg derek@me.com
Derek M. Jones derek@knosof.co.uk Derek M. Jones derek@knosof.co.uk
Di-an Jan dianj@freeshell.org Di-an Jan dianj@freeshell.org
Dick Streefland dick.streefland@altium.nl Dick Streefland dick.streefland@altium.nl
@@ -48,6 +50,7 @@ Enrico Scholz enrico.scholz@informatik.tu-chemnitz.de
Eric Blake ebb9@byu.net Eric Blake ebb9@byu.net
Evgeny Stambulchik fnevgeny@plasma-gate.weizmann.ac.il Evgeny Stambulchik fnevgeny@plasma-gate.weizmann.ac.il
Fabrice Bauzac noon@cote-dazur.com Fabrice Bauzac noon@cote-dazur.com
Ferdinand Thiessen ferdinand@fthiessen.de
Florian Krohm florian@edamail.fishkill.ibm.com Florian Krohm florian@edamail.fishkill.ibm.com
Frank Heckenbach frank@g-n-u.de Frank Heckenbach frank@g-n-u.de
Frans Englich frans.englich@telia.com Frans Englich frans.englich@telia.com
@@ -58,7 +61,7 @@ Gilles Espinasse g.esp@free.fr
Goran Uddeborg goeran@uddeborg.se Goran Uddeborg goeran@uddeborg.se
Guido Trentalancia trentalg@aston.ac.uk Guido Trentalancia trentalg@aston.ac.uk
H. Merijn Brand h.m.brand@hccnet.nl H. Merijn Brand h.m.brand@hccnet.nl
Hans Aberg haberg@matematik.su.se Hans Åberg haberg-1@telia.com
Jan Nieuwenhuizen janneke@gnu.org Jan Nieuwenhuizen janneke@gnu.org
Jerry Quinn jlquinn@optonline.net Jerry Quinn jlquinn@optonline.net
Jesse Thilo jthilo@gnu.org Jesse Thilo jthilo@gnu.org
@@ -93,6 +96,7 @@ Michiel De Wilde mdewilde.agilent@gmail.com
Mickael Labau labau_m@epita.fr Mickael Labau labau_m@epita.fr
Mike Castle dalgoda@ix.netcom.com Mike Castle dalgoda@ix.netcom.com
Mike Sullivan Mike.sullivan@Oracle.COM Mike Sullivan Mike.sullivan@Oracle.COM
Nate Guerin nathan.guerin@riseup.net
Neil Booth NeilB@earthling.net Neil Booth NeilB@earthling.net
Nelson H. F. Beebe beebe@math.utah.edu Nelson H. F. Beebe beebe@math.utah.edu
Nick Bowler nbowler@elliptictech.com Nick Bowler nbowler@elliptictech.com
@@ -172,7 +176,7 @@ End:
----- -----
Copyright (C) 2000-2015 Free Software Foundation, Inc. Copyright (C) 2000-2015, 2018 Free Software Foundation, Inc.
This file is part of Bison, the GNU Parser Generator. This file is part of Bison, the GNU Parser Generator.

3
TODO
View File

@@ -369,7 +369,8 @@ End:
----- -----
Copyright (C) 2001-2004, 2006, 2008-2015 Free Software Foundation, Inc. Copyright (C) 2001-2004, 2006, 2008-2015, 2018 Free Software Foundation,
Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.

283
bootstrap
View File

@@ -1,10 +1,10 @@
#! /bin/sh #! /bin/sh
# Print a version string. # Print a version string.
scriptversion=2014-12-08.12; # UTC scriptversion=2018-04-28.14; # UTC
# Bootstrap this package from checked-out sources. # Bootstrap this package from checked-out sources.
# Copyright (C) 2003-2015 Free Software Foundation, Inc. # Copyright (C) 2003-2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@ scriptversion=2014-12-08.12; # UTC
# GNU General Public License for more details. # GNU General Public License for more details.
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
# Originally written by Paul Eggert. The canonical version of this # Originally written by Paul Eggert. The canonical version of this
# script is maintained as build-aux/bootstrap in gnulib, however, to # script is maintained as build-aux/bootstrap in gnulib, however, to
@@ -42,7 +42,7 @@ export LC_ALL
local_gl_dir=gl local_gl_dir=gl
# Honour $PERL, but work even if there is none # Honor $PERL, but work even if there is none.
PERL="${PERL-perl}" PERL="${PERL-perl}"
me=$0 me=$0
@@ -109,9 +109,6 @@ die() { warn_ "$@"; exit 1; }
# Configuration. # Configuration.
# Name of the Makefile.am
gnulib_mk=gnulib.mk
# List of gnulib modules needed. # List of gnulib modules needed.
gnulib_modules= gnulib_modules=
@@ -141,7 +138,7 @@ po_download_command_format=\
# Fallback for downloading .po files (if rsync fails). # Fallback for downloading .po files (if rsync fails).
po_download_command_format2=\ po_download_command_format2=\
"wget --mirror -nd -q -np -A.po -P '%s' \ "wget --mirror -nd -q -np -A.po -P '%s' \
http://translationproject.org/latest/%s/" https://translationproject.org/latest/%s/"
# Prefer a non-empty tarname (4th argument of AC_INIT if given), else # Prefer a non-empty tarname (4th argument of AC_INIT if given), else
# fall back to the package name (1st argument with munging) # fall back to the package name (1st argument with munging)
@@ -170,7 +167,15 @@ source_base=lib
m4_base=m4 m4_base=m4
doc_base=doc doc_base=doc
tests_base=tests tests_base=tests
gnulib_extra_files='' gnulib_extra_files="
build-aux/install-sh
build-aux/mdate-sh
build-aux/texinfo.tex
build-aux/depcomp
build-aux/config.guess
build-aux/config.sub
doc/INSTALL
"
# Additional gnulib-tool options to use. Use "\newline" to break lines. # Additional gnulib-tool options to use. Use "\newline" to break lines.
gnulib_tool_option_extras= gnulib_tool_option_extras=
@@ -264,24 +269,18 @@ case "$0" in
*) test -r "$0.conf" && . ./"$0.conf" ;; *) test -r "$0.conf" && . ./"$0.conf" ;;
esac esac
# Extra files from gnulib, which override files from other sources.
test -z "${gnulib_extra_files}" && \
gnulib_extra_files="
build-aux/install-sh
build-aux/mdate-sh
build-aux/texinfo.tex
build-aux/depcomp
build-aux/config.guess
build-aux/config.sub
doc/INSTALL
"
if test "$vc_ignore" = auto; then if test "$vc_ignore" = auto; then
vc_ignore= vc_ignore=
test -d .git && vc_ignore=.gitignore test -d .git && vc_ignore=.gitignore
test -d CVS && vc_ignore="$vc_ignore .cvsignore" test -d CVS && vc_ignore="$vc_ignore .cvsignore"
fi fi
if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then
use_gnulib=false
else
use_gnulib=true
fi
# Translate configuration into internal form. # Translate configuration into internal form.
# Parse options. # Parse options.
@@ -418,28 +417,30 @@ sort_ver() { # sort -V is not generally available
done done
} }
get_version_sed='
# Move version to start of line.
s/.*[v ]\([0-9]\)/\1/
# Skip lines that do not start with version.
/^[0-9]/!d
# Remove characters after the version.
s/[^.a-z0-9-].*//
# The first component must be digits only.
s/^\([0-9]*\)[a-z-].*/\1/
#the following essentially does s/5.005/5.5/
s/\.0*\([1-9]\)/.\1/g
p
q'
get_version() { get_version() {
app=$1 app=$1
$app --version >/dev/null 2>&1 || { $app --version; return 1; } $app --version >/dev/null 2>&1 || { $app --version; return 1; }
$app --version 2>&1 | $app --version 2>&1 | sed -n "$get_version_sed"
sed -n '# Move version to start of line.
s/.*[v ]\([0-9]\)/\1/
# Skip lines that do not start with version.
/^[0-9]/!d
# Remove characters after the version.
s/[^.a-z0-9-].*//
# The first component must be digits only.
s/^\([0-9]*\)[a-z-].*/\1/
#the following essentially does s/5.005/5.5/
s/\.0*\([1-9]\)/.\1/g
p
q'
} }
check_versions() { check_versions() {
@@ -610,85 +611,87 @@ git_modules_config () {
test -f .gitmodules && git config --file .gitmodules "$@" test -f .gitmodules && git config --file .gitmodules "$@"
} }
if $use_git; then if $use_gnulib; then
gnulib_path=$(git_modules_config submodule.gnulib.path) if $use_git; then
test -z "$gnulib_path" && gnulib_path=gnulib gnulib_path=$(git_modules_config submodule.gnulib.path)
fi test -z "$gnulib_path" && gnulib_path=gnulib
# Get gnulib files. Populate $GNULIB_SRCDIR, possibly updating a
# submodule, for use in the rest of the script.
case ${GNULIB_SRCDIR--} in
-)
# Note that $use_git is necessarily true in this case.
if git_modules_config submodule.gnulib.url >/dev/null; then
echo "$0: getting gnulib files..."
git submodule init -- "$gnulib_path" || exit $?
git submodule update -- "$gnulib_path" || exit $?
elif [ ! -d "$gnulib_path" ]; then
echo "$0: getting gnulib files..."
trap cleanup_gnulib 1 2 13 15
shallow=
git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" ||
cleanup_gnulib
trap - 1 2 13 15
fi fi
GNULIB_SRCDIR=$gnulib_path
;; # Get gnulib files. Populate $GNULIB_SRCDIR, possibly updating a
*) # submodule, for use in the rest of the script.
# Use GNULIB_SRCDIR directly or as a reference.
if $use_git && test -d "$GNULIB_SRCDIR"/.git && \ case ${GNULIB_SRCDIR--} in
git_modules_config submodule.gnulib.url >/dev/null; then -)
echo "$0: getting gnulib files..." # Note that $use_git is necessarily true in this case.
if git submodule -h|grep -- --reference > /dev/null; then if git_modules_config submodule.gnulib.url >/dev/null; then
# Prefer the one-liner available in git 1.6.4 or newer. echo "$0: getting gnulib files..."
git submodule update --init --reference "$GNULIB_SRCDIR" \ git submodule init -- "$gnulib_path" || exit $?
"$gnulib_path" || exit $? git submodule update -- "$gnulib_path" || exit $?
else
# This fallback allows at least git 1.5.5. elif [ ! -d "$gnulib_path" ]; then
if test -f "$gnulib_path"/gnulib-tool; then echo "$0: getting gnulib files..."
# Since file already exists, assume submodule init already complete.
git submodule update -- "$gnulib_path" || exit $? trap cleanup_gnulib 1 2 13 15
else
# Older git can't clone into an empty directory. shallow=
rmdir "$gnulib_path" 2>/dev/null git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
git clone --reference "$GNULIB_SRCDIR" \ git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" ||
"$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \ cleanup_gnulib
&& git submodule init -- "$gnulib_path" \
&& git submodule update -- "$gnulib_path" \ trap - 1 2 13 15
|| exit $?
fi
fi fi
GNULIB_SRCDIR=$gnulib_path GNULIB_SRCDIR=$gnulib_path
;;
*)
# Use GNULIB_SRCDIR directly or as a reference.
if $use_git && test -d "$GNULIB_SRCDIR"/.git && \
git_modules_config submodule.gnulib.url >/dev/null; then
echo "$0: getting gnulib files..."
if git submodule -h|grep -- --reference > /dev/null; then
# Prefer the one-liner available in git 1.6.4 or newer.
git submodule update --init --reference "$GNULIB_SRCDIR" \
"$gnulib_path" || exit $?
else
# This fallback allows at least git 1.5.5.
if test -f "$gnulib_path"/gnulib-tool; then
# Since file already exists, assume submodule init already complete.
git submodule update -- "$gnulib_path" || exit $?
else
# Older git can't clone into an empty directory.
rmdir "$gnulib_path" 2>/dev/null
git clone --reference "$GNULIB_SRCDIR" \
"$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
&& git submodule init -- "$gnulib_path" \
&& git submodule update -- "$gnulib_path" \
|| exit $?
fi
fi
GNULIB_SRCDIR=$gnulib_path
fi
;;
esac
# $GNULIB_SRCDIR now points to the version of gnulib to use, and
# we no longer need to use git or $gnulib_path below here.
if $bootstrap_sync; then
cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
echo "$0: updating bootstrap and restarting..."
case $(sh -c 'echo "$1"' -- a) in
a) ignored=--;;
*) ignored=ignored;;
esac
exec sh -c \
'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
$ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \
"$0" "$@" --no-bootstrap-sync
}
fi fi
;;
esac
# $GNULIB_SRCDIR now points to the version of gnulib to use, and gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
# we no longer need to use git or $gnulib_path below here. <$gnulib_tool || exit $?
if $bootstrap_sync; then
cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
echo "$0: updating bootstrap and restarting..."
case $(sh -c 'echo "$1"' -- a) in
a) ignored=--;;
*) ignored=ignored;;
esac
exec sh -c \
'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
$ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \
"$0" "$@" --no-bootstrap-sync
}
fi fi
gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
<$gnulib_tool || exit $?
# Get translations. # Get translations.
download_po_files() { download_po_files() {
@@ -697,7 +700,7 @@ download_po_files() {
echo "$me: getting translations into $subdir for $domain..." echo "$me: getting translations into $subdir for $domain..."
cmd=$(printf "$po_download_command_format" "$domain" "$subdir") cmd=$(printf "$po_download_command_format" "$domain" "$subdir")
eval "$cmd" && return eval "$cmd" && return
# Fallback to HTTP. # Fallback to HTTPS.
cmd=$(printf "$po_download_command_format2" "$subdir" "$domain") cmd=$(printf "$po_download_command_format2" "$subdir" "$domain")
eval "$cmd" eval "$cmd"
} }
@@ -788,9 +791,9 @@ symlink_to_dir()
# Leave any existing symlink alone, if it already points to the source, # Leave any existing symlink alone, if it already points to the source,
# so that broken build tools that care about symlink times # so that broken build tools that care about symlink times
# aren't confused into doing unnecessary builds. Conversely, if the # aren't confused into doing unnecessary builds. Conversely, if the
# existing symlink's time stamp is older than the source, make it afresh, # existing symlink's timestamp is older than the source, make it afresh,
# so that broken tools aren't confused into skipping needed builds. See # so that broken tools aren't confused into skipping needed builds. See
# <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00326.html>. # <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00326.html>.
test -h "$dst" && test -h "$dst" &&
src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 && src_ls=$(ls -diL "$src" 2>/dev/null) && set $src_ls && src_i=$1 &&
dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 && dst_ls=$(ls -diL "$dst" 2>/dev/null) && set $dst_ls && dst_i=$1 &&
@@ -896,31 +899,33 @@ fi
# Import from gnulib. # Import from gnulib.
gnulib_tool_options="\ if $use_gnulib; then
--import\ gnulib_tool_options="\
--no-changelog\ --no-changelog\
--aux-dir $build_aux\ --aux-dir $build_aux\
--doc-base $doc_base\ --doc-base $doc_base\
--lib $gnulib_name\ --lib $gnulib_name\
--m4-base $m4_base/\ --m4-base $m4_base/\
--source-base $source_base/\ --source-base $source_base/\
--tests-base $tests_base\ --tests-base $tests_base\
--local-dir $local_gl_dir\ --local-dir $local_gl_dir\
$gnulib_tool_option_extras\ $gnulib_tool_option_extras\
" "
if test $use_libtool = 1; then if test $use_libtool = 1; then
case "$gnulib_tool_options " in case "$gnulib_tool_options " in
*' --libtool '*) ;; *' --libtool '*) ;;
*) gnulib_tool_options="$gnulib_tool_options --libtool" ;; *) gnulib_tool_options="$gnulib_tool_options --libtool" ;;
esac esac
fi fi
echo "$0: $gnulib_tool $gnulib_tool_options --import ..." echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
$gnulib_tool $gnulib_tool_options --import $gnulib_modules && $gnulib_tool $gnulib_tool_options --import $gnulib_modules \
|| die "gnulib-tool failed"
for file in $gnulib_files; do for file in $gnulib_files; do
symlink_to_dir "$GNULIB_SRCDIR" $file \ symlink_to_dir "$GNULIB_SRCDIR" $file \
|| die "failed to symlink $file" || die "failed to symlink $file"
done done
fi
bootstrap_post_import_hook \ bootstrap_post_import_hook \
|| die "bootstrap_post_import_hook failed" || die "bootstrap_post_import_hook failed"
@@ -1017,9 +1022,9 @@ bootstrap_epilogue
echo "$0: done. Now you can run './configure'." echo "$0: done. Now you can run './configure'."
# Local variables: # Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp) # eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion=" # time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC" # time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC" # time-stamp-end: "; # UTC"
# End: # End:

View File

@@ -1,6 +1,6 @@
# Bootstrap configuration. # Bootstrap configuration.
# Copyright (C) 2006-2015 Free Software Foundation, Inc. # Copyright (C) 2006-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -81,7 +81,7 @@ gnulib_tool_option_extras='--symlink --makefile-name=gnulib.mk'
bootstrap_post_import_hook() bootstrap_post_import_hook()
{ {
# Massage lib/gnulib.mk before using it later in the bootstrapping process. # Massage lib/gnulib.mk before using it later in the bootstrapping process.
build-aux/prefix-gnulib-mk --lib-name=$gnulib_name lib/$gnulib_mk build-aux/prefix-gnulib-mk --lib-name=$gnulib_name lib/gnulib.mk
# Ensure that ChangeLog exists, for automake. # Ensure that ChangeLog exists, for automake.
test -f ChangeLog || touch ChangeLog test -f ChangeLog || touch ChangeLog

View File

@@ -1,6 +1,4 @@
/announce-gen /announce-gen
/arg-nonnull.h
/c++defs.h
/compile /compile
/config.guess /config.guess
/config.rpath /config.rpath
@@ -16,14 +14,12 @@
/install-sh /install-sh
/javacomp.sh.in /javacomp.sh.in
/javaexec.sh.in /javaexec.sh.in
/link-warning.h
/mdate-sh /mdate-sh
/missing /missing
/prefix-gnulib-mk
/test-driver /test-driver
/texinfo.tex /texinfo.tex
/update-copyright /update-copyright
/useless-if-before-free /useless-if-before-free
/vc-list-files /vc-list-files
/warn-on-use.h
/ylwrap /ylwrap
/prefix-gnulib-mk

View File

@@ -1,4 +1,4 @@
# Copyright (C) 2012-2015 Free Software Foundation, Inc. # Copyright (C) 2012-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

48
build-aux/Linux.valgrind Normal file
View File

@@ -0,0 +1,48 @@
# Copyright (C) 2012-2015, 2018 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
# Valgrind suppression file for Bison.
# Linux prague 4.1.2-2-ARCH #1 SMP PREEMPT Wed Jul 15 08:30:32 UTC 2015
# x86_64 GNU/Linux
{
Probably exception handling from G++ 5.1.
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
fun:pool
fun:__static_initialization_and_destruction_0
fun:_GLOBAL__sub_I_eh_alloc.cc
fun:call_init.part.0
fun:_dl_init
obj:/usr/lib/ld-2.21.so
}
# Linux seattle 2.6.32-5-amd64 #1 SMP Thu Mar 22 17:26:33 UTC 2012
# x86_64 GNU/Linux
{
index
Memcheck:Cond
fun:index
fun:expand_dynamic_string_token
fun:_dl_map_object
fun:map_doit
fun:_dl_catch_error
fun:do_preload
fun:dl_main
fun:_dl_sysdep_start
fun:_dl_start
obj:/lib/ld-2.11.3.so
}

View File

@@ -1,16 +0,0 @@
# Linux seattle 2.6.32-5-amd64 #1 SMP Thu Mar 22 17:26:33 UTC 2012
# x86_64 GNU/Linux
{
index
Memcheck:Cond
fun:index
fun:expand_dynamic_string_token
fun:_dl_map_object
fun:map_doit
fun:_dl_catch_error
fun:do_preload
fun:dl_main
fun:_dl_sysdep_start
fun:_dl_start
obj:/lib/ld-2.11.3.so
}

View File

@@ -1,4 +1,4 @@
# Copyright (C) 2000-2015 Free Software Foundation, Inc. # Copyright (C) 2000-2015, 2018 Free Software Foundation, Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -13,10 +13,10 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
EXTRA_DIST += \ EXTRA_DIST += \
build-aux/cross-options.pl \ build-aux/Darwin.valgrind \
build-aux/darwin11.4.0.valgrind \ build-aux/Linux.valgrind \
build-aux/linux-gnu.valgrind \ build-aux/cross-options.pl \
build-aux/move-if-change \ build-aux/move-if-change \
build-aux/prev-version.txt \ build-aux/prev-version.txt \
build-aux/update-b4-copyright build-aux/update-b4-copyright

View File

@@ -1,4 +0,0 @@
/_Noreturn.h
/arg-nonnull.h
/c++defs.h
/warn-on-use.h

View File

@@ -3,7 +3,7 @@
# Update b4_copyright invocations or b4_copyright_years definitions to # Update b4_copyright invocations or b4_copyright_years definitions to
# include the current year. # include the current year.
# Copyright (C) 2009-2015 Free Software Foundation, Inc. # Copyright (C) 2009-2015, 2018 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -2,7 +2,7 @@
# In configure.ac, update PACKAGE_COPYRIGHT_YEAR to the current year. # In configure.ac, update PACKAGE_COPYRIGHT_YEAR to the current year.
# Copyright (C) 2010-2015 Free Software Foundation, Inc. # Copyright (C) 2010-2015, 2018 Free Software Foundation, Inc.
# #
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

39
cfg.mk
View File

@@ -1,5 +1,5 @@
# Customize maint.mk -*- makefile -*- # Customize maint.mk -*- makefile -*-
# Copyright (C) 2008-2015 Free Software Foundation, Inc. # Copyright (C) 2008-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -34,7 +34,7 @@ _is-dist-target = $(filter-out %clean maintainer-check% maintainer-%-check, \
$(filter maintainer-% dist% alpha beta major,$(MAKECMDGOALS))) $(filter maintainer-% dist% alpha beta major,$(MAKECMDGOALS)))
url_dir_list = \ url_dir_list = \
ftp://$(gnu_rel_host)/gnu/bison https://$(gnu_rel_host)/gnu/bison
# Tests not to run as part of "make distcheck". # Tests not to run as part of "make distcheck".
local-checks-to-skip = \ local-checks-to-skip = \
@@ -158,23 +158,24 @@ sc_space_before_open_paren:
exclude = \ exclude = \
$(foreach a,$(1),$(eval $(subst $$,$$$$,exclude_file_name_regexp--sc_$(a)))) $(foreach a,$(1),$(eval $(subst $$,$$$$,exclude_file_name_regexp--sc_$(a))))
$(call exclude, \ $(call exclude, \
bindtextdomain=^lib/main.c$$ \ bindtextdomain=^lib/main.c$$ \
preprocessor_indentation=^data/|^lib/|^src/parse-gram.[ch]$$ \ preprocessor_indentation=^data/|^lib/|^src/parse-gram.[ch]$$ \
program_name=^lib/main.c$$ \ program_name=^lib/main.c$$ \
prohibit_always-defined_macros=^data/yacc.c$$|^djgpp/ \ prohibit_always-defined_macros=^data/yacc.c$$|^djgpp/ \
prohibit_always-defined_macros+=?|^lib/timevar.c$$ \ prohibit_always-defined_macros+=?|^lib/timevar.c$$ \
prohibit_always-defined_macros+=?|^src/(parse-gram.c|system.h)$$ \ prohibit_always-defined_macros+=?|^src/(parse-gram.c|system.h)$$ \
prohibit_always-defined_macros+=?|^tests/regression.at$$ \ prohibit_always-defined_macros+=?|^tests/regression.at$$ \
prohibit_always_true_header_tests=^djgpp/subpipe.h$$|^lib/timevar.c$$ \ prohibit_always_true_header_tests=^djgpp/subpipe.h$$|^lib/timevar.c$$ \
prohibit_always_true_header_tests+=?|^m4/timevar.m4$$ \ prohibit_always_true_header_tests+=?|^m4/timevar.m4$$ \
prohibit_defined_have_decl_tests=?|^lib/timevar.c$$ \ prohibit_defined_have_decl_tests=?|^lib/timevar.c$$ \
prohibit_doubled_word=^tests/named-refs.at$$ \ prohibit_doubled_word=^tests/named-refs.at$$ \
prohibit_magic_number_exit=^doc/bison.texi$$ \ prohibit_magic_number_exit=^doc/bison.texi$$ \
prohibit_magic_number_exit+=?|^tests/(conflicts|regression).at$$ \ prohibit_magic_number_exit+=?|^tests/(conflicts|regression).at$$ \
prohibit_strcmp=^doc/bison\.texi|tests/local\.at$$ \ prohibit_strcmp=^doc/bison\.texi|tests/local\.at$$ \
prohibit_tab_based_indentation=\.(am|mk)$$|^djgpp/|^\.git \ prohibit_tab_based_indentation=\.(am|mk)$$|^djgpp/|^\.git \
require_config_h_first=^(lib/yyerror|data/(glr|yacc))\.c$$ \ require_config_h_first=^(lib/yyerror|data/(glr|yacc))\.c$$ \
space_before_open_paren=^(data/|djgpp/) \ space_before_open_paren=^(data/|djgpp/) \
unmarked_diagnostics=^(djgpp/|doc/bison.texi$$|tests/c\+\+\.at$$) \ two_space_separator_in_usage=^(bootstrap) \
unmarked_diagnostics=^(djgpp/|doc/bison.texi$$|tests/c\+\+\.at$$) \
) )

View File

@@ -1,6 +1,6 @@
# Configure template for GNU Bison. -*-Autoconf-*- # Configure template for GNU Bison. -*-Autoconf-*-
# #
# Copyright (C) 2001-2015 Free Software Foundation, Inc. # Copyright (C) 2001-2015, 2018 Free Software Foundation, Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@ m4_pattern_forbid([^gl_[A-Z]])
AC_INIT([GNU Bison], AC_INIT([GNU Bison],
m4_esyscmd([build-aux/git-version-gen .tarball-version]), m4_esyscmd([build-aux/git-version-gen .tarball-version]),
[bug-bison@gnu.org]) [bug-bison@gnu.org])
AC_SUBST([PACKAGE_COPYRIGHT_YEAR], [2015]) AC_SUBST([PACKAGE_COPYRIGHT_YEAR], [2018])
AC_DEFINE_UNQUOTED([PACKAGE_COPYRIGHT_YEAR], [$PACKAGE_COPYRIGHT_YEAR], AC_DEFINE_UNQUOTED([PACKAGE_COPYRIGHT_YEAR], [$PACKAGE_COPYRIGHT_YEAR],
[The copyright year for this package]) [The copyright year for this package])
@@ -82,7 +82,7 @@ AC_ARG_ENABLE([gcc-warnings],
AM_CONDITIONAL([ENABLE_GCC_WARNINGS], [test "$enable_gcc_warnings" = yes]) AM_CONDITIONAL([ENABLE_GCC_WARNINGS], [test "$enable_gcc_warnings" = yes])
if test "$enable_gcc_warnings" = yes; then if test "$enable_gcc_warnings" = yes; then
warn_common='-Wall -Wextra -Wno-sign-compare -Wcast-align -Wdocumentation warn_common='-Wall -Wextra -Wno-sign-compare -Wcast-align -Wdocumentation
-Wformat -Wpointer-arith -Wwrite-strings' -Wformat -Wnull-dereference -Wpointer-arith -Wwrite-strings'
warn_c='-Wbad-function-cast -Wshadow -Wstrict-prototypes' warn_c='-Wbad-function-cast -Wshadow -Wstrict-prototypes'
warn_cxx='-Wnoexcept' warn_cxx='-Wnoexcept'
# Warnings for the test suite only. # Warnings for the test suite only.
@@ -90,7 +90,12 @@ if test "$enable_gcc_warnings" = yes; then
# -fno-color-diagnostics: Clang's use of colors in the error # -fno-color-diagnostics: Clang's use of colors in the error
# messages is confusing the tests looking at the compiler's output # messages is confusing the tests looking at the compiler's output
# (e.g., synclines.at). # (e.g., synclines.at).
warn_tests='-Wundef -pedantic -Wsign-compare -fno-color-diagnostics' #
# -Wno-keyword-macro: We use the "#define private public" dirty
# trick in the test suite to check some private implementation
# details for lalr1.cc.
warn_tests='-Wundef -pedantic -Wdeprecated -Wsign-compare -fno-color-diagnostics
-Wno-keyword-macro'
AC_LANG_PUSH([C]) AC_LANG_PUSH([C])
# Clang supports many of GCC's -W options, but only issues warnings # Clang supports many of GCC's -W options, but only issues warnings
@@ -220,20 +225,21 @@ AC_CONFIG_FILES([etc/bench.pl], [chmod +x etc/bench.pl])
AC_CONFIG_TESTDIR(tests) AC_CONFIG_TESTDIR(tests)
AC_CONFIG_FILES([tests/atlocal]) AC_CONFIG_FILES([tests/atlocal])
AC_CONFIG_FILES([tests/bison], [chmod +x tests/bison]) AC_CONFIG_FILES([tests/bison], [chmod +x tests/bison])
AC_CHECK_PROGS([VALGRIND], [valgrind]) AC_CHECK_PROGS([VALGRIND], [valgrind])
case $VALGRIND:$host_os in # Use something simpler that $host_os to select our suppression file.
uname=`uname`
case $VALGRIND:$uname in
'':*) ;; '':*) ;;
*:darwin*) *:Darwin)
# See README-hacking. # See README-hacking.
# VALGRIND+='-q --suppressions=$(abs_top_srcdir)/build-aux/darwin11.4.0.valgrind'
VALGRIND=;; VALGRIND=;;
*:*) *:*)
suppfile=build-aux/$host_os.valgrind suppfile=build-aux/$uname.valgrind
if test -f "$srcdir/$suppfile"; then if test -f "$srcdir/$suppfile"; then
VALGRIND="$VALGRIND --gen-suppressions=all" AC_SUBST([VALGRIND_OPTS_SUPPRESSION],
VALGRIND="$VALGRIND --suppressions=\$(abs_top_srcdir)/$suppfile" ["--suppressions=\$(abs_top_srcdir)/$suppfile"])
fi fi
AC_SUBST([VALGRIND_PREBISON], ["$VALGRIND -q"])
;; ;;
esac esac

View File

@@ -52,7 +52,7 @@ into various formats.
----- -----
Copyright (C) 2002, 2008-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2008-2015, 2018 Free Software Foundation, Inc.
This file is part of GNU Bison. This file is part of GNU Bison.

View File

@@ -2,7 +2,7 @@
# Language-independent M4 Macros for Bison. # Language-independent M4 Macros for Bison.
# Copyright (C) 2002, 2004-2015 Free Software Foundation, Inc. # Copyright (C) 2002, 2004-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -2,7 +2,8 @@
# C++ skeleton dispatching for Bison. # C++ skeleton dispatching for Bison.
# Copyright (C) 2006-2007, 2009-2015 Free Software Foundation, Inc. # Copyright (C) 2006-2007, 2009-2015, 2018 Free Software Foundation,
# Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -2,7 +2,7 @@
# C++ skeleton for Bison # C++ skeleton for Bison
# Copyright (C) 2002-2015 Free Software Foundation, Inc. # Copyright (C) 2002-2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -30,6 +30,16 @@ m4_include(b4_pkgdatadir/[c.m4])
m4_define([b4_comment], m4_define([b4_comment],
[b4_comment_([$1], [$2// ], [$2// ])]) [b4_comment_([$1], [$2// ], [$2// ])])
# b4_inline(hh|cc)
# ----------------
# Expand to `inline\n ` if $1 is hh.
m4_define([b4_inline],
[m4_case([$1],
[cc], [],
[hh], [[inline
]],
[m4_fatal([$0: invalid argument: $1])])])
## -------- ## ## -------- ##
## Checks. ## ## Checks. ##
## -------- ## ## -------- ##
@@ -275,25 +285,22 @@ m4_define([b4_public_types_declare],
]b4_symbol_constructor_declare]) ]b4_symbol_constructor_declare])
# b4_public_types_define # b4_public_types_define(hh|cc)
# ---------------------- # -----------------------------
# Provide the implementation needed by the public types. # Provide the implementation needed by the public types.
m4_define([b4_public_types_define], m4_define([b4_public_types_define],
[[ inline [ b4_inline([$1])b4_parser_class_name[::syntax_error::syntax_error (]b4_locations_if([const location_type& l, ])[const std::string& m)
]b4_parser_class_name[::syntax_error::syntax_error (]b4_locations_if([const location_type& l, ])[const std::string& m)
: std::runtime_error (m)]b4_locations_if([ : std::runtime_error (m)]b4_locations_if([
, location (l)])[ , location (l)])[
{} {}
// basic_symbol. // basic_symbol.
template <typename Base> template <typename Base>
inline
]b4_parser_class_name[::basic_symbol<Base>::basic_symbol () ]b4_parser_class_name[::basic_symbol<Base>::basic_symbol ()
: value () : value ()
{} {}
template <typename Base> template <typename Base>
inline
]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (const basic_symbol& other) ]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (const basic_symbol& other)
: Base (other) : Base (other)
, value ()]b4_locations_if([ , value ()]b4_locations_if([
@@ -304,9 +311,7 @@ m4_define([b4_public_types_define],
[value = other.value;])[ [value = other.value;])[
} }
template <typename Base> template <typename Base>
inline
]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (]b4_join( ]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (]b4_join(
[typename Base::kind_type t], [typename Base::kind_type t],
[const semantic_type& v], [const semantic_type& v],
@@ -323,7 +328,6 @@ m4_define([b4_public_types_define],
]b4_type_foreach([b4_basic_symbol_constructor_define])], [[ ]b4_type_foreach([b4_basic_symbol_constructor_define])], [[
/// Constructor for valueless symbols. /// Constructor for valueless symbols.
template <typename Base> template <typename Base>
inline
]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (]b4_join( ]b4_parser_class_name[::basic_symbol<Base>::basic_symbol (]b4_join(
[typename Base::kind_type t], [typename Base::kind_type t],
b4_locations_if([const location_type& l]))[) b4_locations_if([const location_type& l]))[)
@@ -333,14 +337,12 @@ m4_define([b4_public_types_define],
{}]])[ {}]])[
template <typename Base> template <typename Base>
inline
]b4_parser_class_name[::basic_symbol<Base>::~basic_symbol () ]b4_parser_class_name[::basic_symbol<Base>::~basic_symbol ()
{ {
clear (); clear ();
} }
template <typename Base> template <typename Base>
inline
void void
]b4_parser_class_name[::basic_symbol<Base>::clear () ]b4_parser_class_name[::basic_symbol<Base>::clear ()
{]b4_variant_if([[ {]b4_variant_if([[
@@ -361,7 +363,6 @@ m4_define([b4_public_types_define],
} }
template <typename Base> template <typename Base>
inline
bool bool
]b4_parser_class_name[::basic_symbol<Base>::empty () const ]b4_parser_class_name[::basic_symbol<Base>::empty () const
{ {
@@ -369,11 +370,10 @@ m4_define([b4_public_types_define],
} }
template <typename Base> template <typename Base>
inline
void void
]b4_parser_class_name[::basic_symbol<Base>::move (basic_symbol& s) ]b4_parser_class_name[::basic_symbol<Base>::move (basic_symbol& s)
{ {
super_type::move(s); super_type::move (s);
]b4_variant_if([b4_symbol_variant([this->type_get ()], [value], [move], ]b4_variant_if([b4_symbol_variant([this->type_get ()], [value], [move],
[s.value])], [s.value])],
[value = s.value;])[]b4_locations_if([ [value = s.value;])[]b4_locations_if([
@@ -381,45 +381,38 @@ m4_define([b4_public_types_define],
} }
// by_type. // by_type.
inline ]b4_inline([$1])b4_parser_class_name[::by_type::by_type ()
]b4_parser_class_name[::by_type::by_type ()
: type (empty_symbol) : type (empty_symbol)
{} {}
inline ]b4_inline([$1])b4_parser_class_name[::by_type::by_type (const by_type& other)
]b4_parser_class_name[::by_type::by_type (const by_type& other)
: type (other.type) : type (other.type)
{} {}
inline ]b4_inline([$1])b4_parser_class_name[::by_type::by_type (token_type t)
]b4_parser_class_name[::by_type::by_type (token_type t)
: type (yytranslate_ (t)) : type (yytranslate_ (t))
{} {}
inline ]b4_inline([$1])[void
void
]b4_parser_class_name[::by_type::clear () ]b4_parser_class_name[::by_type::clear ()
{ {
type = empty_symbol; type = empty_symbol;
} }
inline ]b4_inline([$1])[void
void
]b4_parser_class_name[::by_type::move (by_type& that) ]b4_parser_class_name[::by_type::move (by_type& that)
{ {
type = that.type; type = that.type;
that.clear (); that.clear ();
} }
inline ]b4_inline([$1])[int
int
]b4_parser_class_name[::by_type::type_get () const ]b4_parser_class_name[::by_type::type_get () const
{ {
return type; return type;
} }
]b4_token_ctor_if([[ ]b4_token_ctor_if([[
inline ]b4_inline([$1])b4_parser_class_name[::token_type
]b4_parser_class_name[::token_type
]b4_parser_class_name[::by_type::token () const ]b4_parser_class_name[::by_type::token () const
{ {
// YYTOKNUM[NUM] -- (External) token number corresponding to the // YYTOKNUM[NUM] -- (External) token number corresponding to the
@@ -445,14 +438,13 @@ m4_define([b4_symbol_constructor_declare], [])
m4_define([b4_symbol_constructor_define], []) m4_define([b4_symbol_constructor_define], [])
# b4_yytranslate_define # b4_yytranslate_define(cc|hh)
# --------------------- # ----------------------------
# Define yytranslate_. Sometimes used in the header file, # Define yytranslate_. Sometimes used in the header file ($1=hh),
# sometimes in the cc file. # sometimes in the cc file.
m4_define([b4_yytranslate_define], m4_define([b4_yytranslate_define],
[[ // Symbol number corresponding to token number t. [[ // Symbol number corresponding to token number t.
inline ]b4_inline([$1])b4_parser_class_name[::token_number_type
]b4_parser_class_name[::token_number_type
]b4_parser_class_name[::yytranslate_ (]b4_token_ctor_if([token_type], ]b4_parser_class_name[::yytranslate_ (]b4_token_ctor_if([token_type],
[int])[ t) [int])[ t)
{ {
@@ -462,12 +454,12 @@ m4_define([b4_yytranslate_define],
{ {
]b4_translate[ ]b4_translate[
}; };
const unsigned int user_token_number_max_ = ]b4_user_token_number_max[; const unsigned user_token_number_max_ = ]b4_user_token_number_max[;
const token_number_type undef_token_ = ]b4_undef_token_number[; const token_number_type undef_token_ = ]b4_undef_token_number[;
if (static_cast<int>(t) <= yyeof_) if (static_cast<int> (t) <= yyeof_)
return yyeof_; return yyeof_;
else if (static_cast<unsigned int> (t) <= user_token_number_max_) else if (static_cast<unsigned> (t) <= user_token_number_max_)
return translate_table[t]; return translate_table[t];
else else
return undef_token_; return undef_token_;

View File

@@ -2,7 +2,7 @@
# Common code for C-like languages (C, C++, Java, etc.) # Common code for C-like languages (C, C++, Java, etc.)
# Copyright (C) 2012-2015 Free Software Foundation, Inc. # Copyright (C) 2012-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -2,7 +2,8 @@
# C skeleton dispatching for Bison. # C skeleton dispatching for Bison.
# Copyright (C) 2006-2007, 2009-2015 Free Software Foundation, Inc. # Copyright (C) 2006-2007, 2009-2015, 2018 Free Software Foundation,
# Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -2,7 +2,7 @@
# C M4 Macros for Bison. # C M4 Macros for Bison.
# Copyright (C) 2002, 2004-2015 Free Software Foundation, Inc. # Copyright (C) 2002, 2004-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -459,7 +459,8 @@ b4_syncline([@oline@], [@ofile@])
# ------------------------------------ # ------------------------------------
m4_define([b4_predicate_case], m4_define([b4_predicate_case],
[ case $1: [ case $1:
if (! ($2)) YYERROR; if (! (
$2)) YYERROR;
b4_syncline([@oline@], [@ofile@]) b4_syncline([@oline@], [@ofile@])
break;]) break;])

View File

@@ -2,7 +2,7 @@
# GLR skeleton for Bison # GLR skeleton for Bison
# Copyright (C) 2002-2015 Free Software Foundation, Inc. # Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -198,7 +198,7 @@ m4_if(b4_skeleton, ["glr.c"],
[b4_defines_if( [b4_defines_if(
[b4_output_begin([b4_spec_defines_file]) [b4_output_begin([b4_spec_defines_file])
b4_copyright([Skeleton interface for Bison GLR parsers in C], b4_copyright([Skeleton interface for Bison GLR parsers in C],
[2002-2015])[ [2002-2015, 2018])[
]b4_cpp_guard_open([b4_spec_defines_file])[ ]b4_cpp_guard_open([b4_spec_defines_file])[
]b4_shared_declarations[ ]b4_shared_declarations[
@@ -213,7 +213,7 @@ b4_copyright([Skeleton interface for Bison GLR parsers in C],
b4_output_begin([b4_parser_file_name]) b4_output_begin([b4_parser_file_name])
b4_copyright([Skeleton implementation for Bison GLR parsers in C], b4_copyright([Skeleton implementation for Bison GLR parsers in C],
[2002-2015])[ [2002-2015, 2018])[
/* C GLR parser skeleton written by Paul Hilfinger. */ /* C GLR parser skeleton written by Paul Hilfinger. */
@@ -808,6 +808,7 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
*yyvalp = yyval_default; *yyvalp = yyval_default;
else else
*yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;]b4_locations_if([[ *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;]b4_locations_if([[
/* Default location. */
YYLLOC_DEFAULT ((*yylocp), (yyvsp - yyrhslen), yyrhslen); YYLLOC_DEFAULT ((*yylocp), (yyvsp - yyrhslen), yyrhslen);
yystackp->yyerror_range[1].yystate.yyloc = *yylocp; yystackp->yyerror_range[1].yystate.yyloc = *yylocp;
]])[ ]])[
@@ -2074,6 +2075,7 @@ yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[)
case N: \ case N: \
yyformat = S; \ yyformat = S; \
break break
default: /* Avoid compiler warnings. */
YYCASE_(0, YY_("syntax error")); YYCASE_(0, YY_("syntax error"));
YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(1, YY_("syntax error, unexpected %s"));
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
@@ -2294,8 +2296,8 @@ b4_dollar_popdef])[]dnl
{ {
yyrule = yydefaultAction (yystate); yyrule = yydefaultAction (yystate);
if (yyrule == 0) if (yyrule == 0)
{ {]b4_locations_if([[
]b4_locations_if([[ yystack.yyerror_range[1].yystate.yyloc = yylloc;]])[ yystack.yyerror_range[1].yystate.yyloc = yylloc;]])[
yyreportSyntaxError (&yystack]b4_user_args[); yyreportSyntaxError (&yystack]b4_user_args[);
goto yyuser_error; goto yyuser_error;
} }
@@ -2334,8 +2336,8 @@ b4_dollar_popdef])[]dnl
yystack.yyerrState -= 1; yystack.yyerrState -= 1;
} }
else if (yyisErrorAction (yyaction)) else if (yyisErrorAction (yyaction))
{ {]b4_locations_if([[
]b4_locations_if([[ yystack.yyerror_range[1].yystate.yyloc = yylloc;]])[ yystack.yyerror_range[1].yystate.yyloc = yylloc;]])[
yyreportSyntaxError (&yystack]b4_user_args[); yyreportSyntaxError (&yystack]b4_user_args[);
goto yyuser_error; goto yyuser_error;
} }
@@ -2380,8 +2382,8 @@ b4_dollar_popdef])[]dnl
if (yystack.yytops.yysize == 0) if (yystack.yytops.yysize == 0)
yyFail (&yystack][]b4_lpure_args[, YY_("syntax error")); yyFail (&yystack][]b4_lpure_args[, YY_("syntax error"));
YYCHK1 (yyresolveStack (&yystack]b4_user_args[)); YYCHK1 (yyresolveStack (&yystack]b4_user_args[));
YYDPRINTF ((stderr, "Returning to deterministic operation.\n")); YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));]b4_locations_if([[
]b4_locations_if([[ yystack.yyerror_range[1].yystate.yyloc = yylloc;]])[ yystack.yyerror_range[1].yystate.yyloc = yylloc;]])[
yyreportSyntaxError (&yystack]b4_user_args[); yyreportSyntaxError (&yystack]b4_user_args[);
goto yyuser_error; goto yyuser_error;
} }
@@ -2462,9 +2464,9 @@ b4_dollar_popdef])[]dnl
{ {
while (yystates[yyk]) while (yystates[yyk])
{ {
yyGLRState *yys = yystates[yyk]; yyGLRState *yys = yystates[yyk];]b4_locations_if([[
]b4_locations_if([[ yystack.yyerror_range[1].yystate.yyloc = yys->yyloc;]] yystack.yyerror_range[1].yystate.yyloc = yys->yyloc;]])[
)[ if (yys->yypred != YY_NULLPTR) if (yys->yypred != YY_NULLPTR)
yydestroyGLRState ("Cleanup: popping", yys]b4_user_args[); yydestroyGLRState ("Cleanup: popping", yys]b4_user_args[);
yystates[yyk] = yys->yypred; yystates[yyk] = yys->yypred;
yystack.yynextFree -= 1; yystack.yynextFree -= 1;

View File

@@ -1,6 +1,6 @@
# C++ GLR skeleton for Bison # C++ GLR skeleton for Bison
# Copyright (C) 2002-2015 Free Software Foundation, Inc. # Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -177,7 +177,7 @@ m4_pushdef([b4_parse_param], m4_defn([b4_parse_param_orig]))dnl
| Print this symbol. | | Print this symbol. |
`--------------------*/ `--------------------*/
inline void void
]b4_parser_class_name[::yy_symbol_value_print_ (int yytype, ]b4_parser_class_name[::yy_symbol_value_print_ (int yytype,
const semantic_type* yyvaluep]b4_locations_if([[, const semantic_type* yyvaluep]b4_locations_if([[,
const location_type* yylocationp]])[) const location_type* yylocationp]])[)
@@ -329,7 +329,7 @@ b4_percent_define_flag_if([[global_tokens_and_yystype]],
b4_defines_if( b4_defines_if(
[b4_output_begin([b4_spec_defines_file]) [b4_output_begin([b4_spec_defines_file])
b4_copyright([Skeleton interface for Bison GLR parsers in C++], b4_copyright([Skeleton interface for Bison GLR parsers in C++],
[2002-2015])[ [2002-2015, 2018])[
// C++ GLR parser skeleton written by Akim Demaille. // C++ GLR parser skeleton written by Akim Demaille.

View File

@@ -2,7 +2,7 @@
# Java skeleton dispatching for Bison. # Java skeleton dispatching for Bison.
# Copyright (C) 2007, 2009-2015 Free Software Foundation, Inc. # Copyright (C) 2007, 2009-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -2,7 +2,7 @@
# Java language support for Bison # Java language support for Bison
# Copyright (C) 2007-2015 Free Software Foundation, Inc. # Copyright (C) 2007-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
# C++ skeleton for Bison # C++ skeleton for Bison
# Copyright (C) 2002-2015 Free Software Foundation, Inc. # Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -131,7 +131,7 @@ m4_ifdef([b4_lex_param], [, ]b4_lex_param))])])
m4_pushdef([b4_copyright_years], m4_pushdef([b4_copyright_years],
[2002-2015]) [2002-2015, 2018])
m4_define([b4_parser_class_name], m4_define([b4_parser_class_name],
[b4_percent_define_get([[parser_class_name]])]) [b4_percent_define_get([[parser_class_name]])])
@@ -142,9 +142,9 @@ b4_bison_locations_if([# Backward compatibility.
m4_include(b4_pkgdatadir/[stack.hh]) m4_include(b4_pkgdatadir/[stack.hh])
b4_variant_if([m4_include(b4_pkgdatadir/[variant.hh])]) b4_variant_if([m4_include(b4_pkgdatadir/[variant.hh])])
# b4_shared_declarations # b4_shared_declarations(hh|cc)
# ---------------------- # -----------------------------
# Declaration that might either go into the header (if --defines) # Declaration that might either go into the header (if --defines, $1 = hh)
# or open coded in the parser body. # or open coded in the parser body.
m4_define([b4_shared_declarations], m4_define([b4_shared_declarations],
[b4_percent_code_get([[requires]])[ [b4_percent_code_get([[requires]])[
@@ -314,6 +314,8 @@ b4_location_define])])[
typedef basic_symbol<by_state> super_type; typedef basic_symbol<by_state> super_type;
/// Construct an empty symbol. /// Construct an empty symbol.
stack_symbol_type (); stack_symbol_type ();
/// Copy construct.
stack_symbol_type (const stack_symbol_type& that);
/// Steal the contents from \a sym to build this. /// Steal the contents from \a sym to build this.
stack_symbol_type (state_type s, symbol_type& sym); stack_symbol_type (state_type s, symbol_type& sym);
/// Assignment, needed by push_back. /// Assignment, needed by push_back.
@@ -342,7 +344,7 @@ b4_location_define])])[
void yypush_ (const char* m, state_type s, symbol_type& sym); void yypush_ (const char* m, state_type s, symbol_type& sym);
/// Pop \a n symbols the three stacks. /// Pop \a n symbols the three stacks.
void yypop_ (unsigned int n = 1); void yypop_ (unsigned n = 1);
/// Constants. /// Constants.
enum enum
@@ -359,8 +361,8 @@ b4_location_define])])[
]b4_parse_param_vars[ ]b4_parse_param_vars[
}; };
]b4_token_ctor_if([b4_yytranslate_define ]b4_token_ctor_if([b4_yytranslate_define([$1])[
b4_public_types_define])[ ]b4_public_types_define([$1])])[
]b4_namespace_close[ ]b4_namespace_close[
]b4_percent_define_flag_if([[global_tokens_and_yystype]], ]b4_percent_define_flag_if([[global_tokens_and_yystype]],
@@ -386,7 +388,7 @@ b4_copyright([Skeleton interface for Bison LALR(1) parsers in C++])
// C++ LALR(1) parser skeleton written by Akim Demaille. // C++ LALR(1) parser skeleton written by Akim Demaille.
]b4_cpp_guard_open([b4_spec_defines_file])[ ]b4_cpp_guard_open([b4_spec_defines_file])[
]b4_shared_declarations[ ]b4_shared_declarations(hh)[
]b4_cpp_guard_close([b4_spec_defines_file]) ]b4_cpp_guard_close([b4_spec_defines_file])
b4_output_end() b4_output_end()
]) ])
@@ -406,7 +408,7 @@ m4_if(b4_prefix, [yy], [],
]b4_null_define[ ]b4_null_define[
]b4_defines_if([[#include "@basename(]b4_spec_defines_file[@)"]], ]b4_defines_if([[#include "@basename(]b4_spec_defines_file[@)"]],
[b4_shared_declarations])[ [b4_shared_declarations([cc])])[
// User implementation prologue. // User implementation prologue.
]b4_user_post_prologue[ ]b4_user_post_prologue[
@@ -443,7 +445,7 @@ m4_if(b4_prefix, [yy], [],
{ \ { \
*yycdebug_ << Title << ' '; \ *yycdebug_ << Title << ' '; \
yy_print_ (*yycdebug_, Symbol); \ yy_print_ (*yycdebug_, Symbol); \
*yycdebug_ << std::endl; \ *yycdebug_ << '\n'; \
} \ } \
} while (false) } while (false)
@@ -462,9 +464,9 @@ m4_if(b4_prefix, [yy], [],
#else // !]b4_api_PREFIX[DEBUG #else // !]b4_api_PREFIX[DEBUG
# define YYCDEBUG if (false) std::cerr # define YYCDEBUG if (false) std::cerr
# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE(Symbol) # define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol)
# define YY_REDUCE_PRINT(Rule) static_cast<void>(0) # define YY_REDUCE_PRINT(Rule) static_cast<void> (0)
# define YY_STACK_PRINT() static_cast<void>(0) # define YY_STACK_PRINT() static_cast<void> (0)
#endif // !]b4_api_PREFIX[DEBUG #endif // !]b4_api_PREFIX[DEBUG
@@ -533,27 +535,23 @@ m4_if(b4_prefix, [yy], [],
| Symbol types. | | Symbol types. |
`---------------*/ `---------------*/
]b4_token_ctor_if([], [b4_public_types_define])[ ]b4_token_ctor_if([], [b4_public_types_define([cc])])[
// by_state. // by_state.
inline
]b4_parser_class_name[::by_state::by_state () ]b4_parser_class_name[::by_state::by_state ()
: state (empty_state) : state (empty_state)
{} {}
inline
]b4_parser_class_name[::by_state::by_state (const by_state& other) ]b4_parser_class_name[::by_state::by_state (const by_state& other)
: state (other.state) : state (other.state)
{} {}
inline
void void
]b4_parser_class_name[::by_state::clear () ]b4_parser_class_name[::by_state::clear ()
{ {
state = empty_state; state = empty_state;
} }
inline
void void
]b4_parser_class_name[::by_state::move (by_state& that) ]b4_parser_class_name[::by_state::move (by_state& that)
{ {
@@ -561,12 +559,10 @@ m4_if(b4_prefix, [yy], [],
that.clear (); that.clear ();
} }
inline
]b4_parser_class_name[::by_state::by_state (state_type s) ]b4_parser_class_name[::by_state::by_state (state_type s)
: state (s) : state (s)
{} {}
inline
]b4_parser_class_name[::symbol_number_type ]b4_parser_class_name[::symbol_number_type
]b4_parser_class_name[::by_state::type_get () const ]b4_parser_class_name[::by_state::type_get () const
{ {
@@ -576,12 +572,17 @@ m4_if(b4_prefix, [yy], [],
return yystos_[state]; return yystos_[state];
} }
inline
]b4_parser_class_name[::stack_symbol_type::stack_symbol_type () ]b4_parser_class_name[::stack_symbol_type::stack_symbol_type ()
{} {}
]b4_parser_class_name[::stack_symbol_type::stack_symbol_type (const stack_symbol_type& that)
: super_type (that.state]b4_locations_if([, that.location])[)
{
]b4_variant_if([b4_symbol_variant([that.type_get ()],
[value], [copy], [that.value])],
[[value = that.value;]])[
}
inline
]b4_parser_class_name[::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that) ]b4_parser_class_name[::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that)
: super_type (s]b4_locations_if([, that.location])[) : super_type (s]b4_locations_if([, that.location])[)
{ {
@@ -592,7 +593,6 @@ m4_if(b4_prefix, [yy], [],
that.type = empty_symbol; that.type = empty_symbol;
} }
inline
]b4_parser_class_name[::stack_symbol_type& ]b4_parser_class_name[::stack_symbol_type&
]b4_parser_class_name[::stack_symbol_type::operator= (const stack_symbol_type& that) ]b4_parser_class_name[::stack_symbol_type::operator= (const stack_symbol_type& that)
{ {
@@ -606,7 +606,6 @@ m4_if(b4_prefix, [yy], [],
template <typename Base> template <typename Base>
inline
void void
]b4_parser_class_name[::yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const ]b4_parser_class_name[::yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const
{ {
@@ -638,7 +637,6 @@ m4_if(b4_prefix, [yy], [],
} }
#endif #endif
inline
void void
]b4_parser_class_name[::yypush_ (const char* m, state_type s, symbol_type& sym) ]b4_parser_class_name[::yypush_ (const char* m, state_type s, symbol_type& sym)
{ {
@@ -646,7 +644,6 @@ m4_if(b4_prefix, [yy], [],
yypush_ (m, t); yypush_ (m, t);
} }
inline
void void
]b4_parser_class_name[::yypush_ (const char* m, stack_symbol_type& s) ]b4_parser_class_name[::yypush_ (const char* m, stack_symbol_type& s)
{ {
@@ -655,9 +652,8 @@ m4_if(b4_prefix, [yy], [],
yystack_.push (s); yystack_.push (s);
} }
inline
void void
]b4_parser_class_name[::yypop_ (unsigned int n) ]b4_parser_class_name[::yypop_ (unsigned n)
{ {
yystack_.pop (n); yystack_.pop (n);
} }
@@ -689,7 +685,7 @@ m4_if(b4_prefix, [yy], [],
} }
#endif // ]b4_api_PREFIX[DEBUG #endif // ]b4_api_PREFIX[DEBUG
inline ]b4_parser_class_name[::state_type ]b4_parser_class_name[::state_type
]b4_parser_class_name[::yy_lr_goto_state_ (state_type yystate, int yysym) ]b4_parser_class_name[::yy_lr_goto_state_ (state_type yystate, int yysym)
{ {
int yyr = yypgoto_[yysym - yyntokens_] + yystate; int yyr = yypgoto_[yysym - yyntokens_] + yystate;
@@ -699,13 +695,13 @@ m4_if(b4_prefix, [yy], [],
return yydefgoto_[yysym - yyntokens_]; return yydefgoto_[yysym - yyntokens_];
} }
inline bool bool
]b4_parser_class_name[::yy_pact_value_is_default_ (int yyvalue) ]b4_parser_class_name[::yy_pact_value_is_default_ (int yyvalue)
{ {
return yyvalue == yypact_ninf_; return yyvalue == yypact_ninf_;
} }
inline bool bool
]b4_parser_class_name[::yy_table_value_is_error_ (int yyvalue) ]b4_parser_class_name[::yy_table_value_is_error_ (int yyvalue)
{ {
return yyvalue == yytable_ninf_; return yyvalue == yytable_ninf_;
@@ -736,7 +732,7 @@ m4_if(b4_prefix, [yy], [],
// avoid gratuitous conflicts when merging into the master branch. // avoid gratuitous conflicts when merging into the master branch.
try try
{ {
YYCDEBUG << "Starting parse" << std::endl; YYCDEBUG << "Starting parse\n";
]m4_ifdef([b4_initial_action], [ ]m4_ifdef([b4_initial_action], [
b4_dollar_pushdef([yyla.value], [], [yyla.location])dnl b4_dollar_pushdef([yyla.value], [], [yyla.location])dnl
@@ -753,7 +749,7 @@ b4_dollar_popdef])[]dnl
// A new symbol was pushed on the stack. // A new symbol was pushed on the stack.
yynewstate: yynewstate:
YYCDEBUG << "Entering state " << yystack_[0].state << std::endl; YYCDEBUG << "Entering state " << yystack_[0].state << '\n';
// Accept? // Accept?
if (yystack_[0].state == yyfinal_) if (yystack_[0].state == yyfinal_)
@@ -827,7 +823,7 @@ b4_dollar_popdef])[]dnl
yylen = yyr2_[yyn]; yylen = yyr2_[yyn];
{ {
stack_symbol_type yylhs; stack_symbol_type yylhs;
yylhs.state = yy_lr_goto_state_(yystack_[yylen].state, yyr1_[yyn]);]b4_variant_if([ yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);]b4_variant_if([
/* Variants are always initialized to an empty instance of the /* Variants are always initialized to an empty instance of the
correct type. The default '$$ = $1' action is NOT applied correct type. The default '$$ = $1' action is NOT applied
when using variants. */ when using variants. */
@@ -844,10 +840,11 @@ b4_dollar_popdef])[]dnl
yylhs.value = yystack_@{0@}.value;])[ yylhs.value = yystack_@{0@}.value;])[
]b4_locations_if([dnl ]b4_locations_if([dnl
[ [
// Compute the default @@$. // Default location.
{ {
slice<stack_symbol_type, stack_type> slice (yystack_, yylen); slice<stack_symbol_type, stack_type> slice (yystack_, yylen);
YYLLOC_DEFAULT (yylhs.location, slice, yylen); YYLLOC_DEFAULT (yylhs.location, slice, yylen);
yyerror_range[1].location = yylhs.location;
}]])[ }]])[
// Perform the reduction. // Perform the reduction.
@@ -918,8 +915,7 @@ b4_dollar_popdef])[]dnl
YYERROR and the label yyerrorlab therefore never appears in user YYERROR and the label yyerrorlab therefore never appears in user
code. */ code. */
if (false) if (false)
goto yyerrorlab;]b4_locations_if([[ goto yyerrorlab;
yyerror_range[1].location = yystack_[yylen - 1].location;]])[
/* Do not reclaim the symbols of the rule whose action triggered /* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */ this YYERROR. */
yypop_ (yylen); yypop_ (yylen);
@@ -993,8 +989,7 @@ b4_dollar_popdef])[]dnl
} }
catch (...) catch (...)
{ {
YYCDEBUG << "Exception caught: cleaning lookahead and stack" YYCDEBUG << "Exception caught: cleaning lookahead and stack\n";
<< std::endl;
// Do not try to display the values of the reclaimed symbols, // Do not try to display the values of the reclaimed symbols,
// as their printer might throw an exception. // as their printer might throw an exception.
if (!yyla.empty ()) if (!yyla.empty ())
@@ -1013,7 +1008,7 @@ b4_dollar_popdef])[]dnl
]b4_parser_class_name[::error (const syntax_error& yyexc) ]b4_parser_class_name[::error (const syntax_error& yyexc)
{ {
error (]b4_join(b4_locations_if([yyexc.location]), error (]b4_join(b4_locations_if([yyexc.location]),
[[yyexc.what()]])[); [[yyexc.what ()]])[);
} }
// Generate an error message. // Generate an error message.
@@ -1091,12 +1086,13 @@ b4_error_verbose_if([state_type yystate, const symbol_type& yyla],
case N: \ case N: \
yyformat = S; \ yyformat = S; \
break break
YYCASE_(0, YY_("syntax error")); default: // Avoid compiler warnings.
YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_ (0, YY_("syntax error"));
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); YYCASE_ (1, YY_("syntax error, unexpected %s"));
YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); YYCASE_ (2, YY_("syntax error, unexpected %s, expecting %s"));
YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); YYCASE_ (3, YY_("syntax error, unexpected %s, expecting %s or %s"));
YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); YYCASE_ (4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
YYCASE_ (5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
#undef YYCASE_ #undef YYCASE_
} }
@@ -1144,18 +1140,18 @@ b4_error_verbose_if([state_type yystate, const symbol_type& yyla],
i_end = yystack_.end (); i_end = yystack_.end ();
i != i_end; ++i) i != i_end; ++i)
*yycdebug_ << ' ' << i->state; *yycdebug_ << ' ' << i->state;
*yycdebug_ << std::endl; *yycdebug_ << '\n';
} }
// Report on the debug stream that the rule \a yyrule is going to be reduced. // Report on the debug stream that the rule \a yyrule is going to be reduced.
void void
]b4_parser_class_name[::yy_reduce_print_ (int yyrule) ]b4_parser_class_name[::yy_reduce_print_ (int yyrule)
{ {
unsigned int yylno = yyrline_[yyrule]; unsigned yylno = yyrline_[yyrule];
int yynrhs = yyr2_[yyrule]; int yynrhs = yyr2_[yyrule];
// Print the symbols being reduced, and their result. // Print the symbols being reduced, and their result.
*yycdebug_ << "Reducing stack by rule " << yyrule - 1 *yycdebug_ << "Reducing stack by rule " << yyrule - 1
<< " (line " << yylno << "):" << std::endl; << " (line " << yylno << "):\n";
// The symbols being reduced. // The symbols being reduced.
for (int yyi = 0; yyi < yynrhs; yyi++) for (int yyi = 0; yyi < yynrhs; yyi++)
YY_SYMBOL_PRINT (" $" << yyi + 1 << " =", YY_SYMBOL_PRINT (" $" << yyi + 1 << " =",
@@ -1163,7 +1159,7 @@ b4_error_verbose_if([state_type yystate, const symbol_type& yyla],
} }
#endif // ]b4_api_PREFIX[DEBUG #endif // ]b4_api_PREFIX[DEBUG
]b4_token_ctor_if([], [b4_yytranslate_define])[ ]b4_token_ctor_if([], [b4_yytranslate_define([cc])])[
]b4_namespace_close[ ]b4_namespace_close[
]b4_epilogue[]dnl ]b4_epilogue[]dnl
b4_output_end() b4_output_end()

View File

@@ -1,6 +1,6 @@
# Java skeleton for Bison -*- autoconf -*- # Java skeleton for Bison -*- autoconf -*-
# Copyright (C) 2007-2015 Free Software Foundation, Inc. # Copyright (C) 2007-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -84,7 +84,7 @@ m4_define([b4_define_state],[[
b4_output_begin([b4_parser_file_name]) b4_output_begin([b4_parser_file_name])
b4_copyright([Skeleton implementation for Bison LALR(1) parsers in Java], b4_copyright([Skeleton implementation for Bison LALR(1) parsers in Java],
[2007-2015]) [2007-2015, 2018])
b4_percent_define_ifdef([package], [package b4_percent_define_get([package]); b4_percent_define_ifdef([package], [package b4_percent_define_get([package]);
])[/* First part of user declarations. */ ])[/* First part of user declarations. */

View File

@@ -1,4 +1,4 @@
## Copyright (C) 2002, 2005-2015 Free Software Foundation, Inc. ## Copyright (C) 2002, 2005-2015, 2018 Free Software Foundation, Inc.
## This program is free software: you can redistribute it and/or modify ## 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 ## it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
# C++ skeleton for Bison # C++ skeleton for Bison
# Copyright (C) 2002-2015 Free Software Foundation, Inc. # Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
m4_pushdef([b4_copyright_years], m4_pushdef([b4_copyright_years],
[2002-2015]) [2002-2015, 2018])
# b4_position_define # b4_position_define
# ------------------ # ------------------
@@ -28,19 +28,18 @@ m4_define([b4_position_define],
public:]m4_ifdef([b4_location_constructors], [[ public:]m4_ifdef([b4_location_constructors], [[
/// Construct a position. /// Construct a position.
explicit position (]b4_percent_define_get([[filename_type]])[* f = YY_NULLPTR, explicit position (]b4_percent_define_get([[filename_type]])[* f = YY_NULLPTR,
unsigned int l = ]b4_location_initial_line[u, unsigned l = ]b4_location_initial_line[u,
unsigned int c = ]b4_location_initial_column[u) unsigned c = ]b4_location_initial_column[u)
: filename (f) : filename (f)
, line (l) , line (l)
, column (c) , column (c)
{ {}
}
]])[ ]])[
/// Initialization. /// Initialization.
void initialize (]b4_percent_define_get([[filename_type]])[* fn = YY_NULLPTR, void initialize (]b4_percent_define_get([[filename_type]])[* fn = YY_NULLPTR,
unsigned int l = ]b4_location_initial_line[u, unsigned l = ]b4_location_initial_line[u,
unsigned int c = ]b4_location_initial_column[u) unsigned c = ]b4_location_initial_column[u)
{ {
filename = fn; filename = fn;
line = l; line = l;
@@ -69,15 +68,15 @@ m4_define([b4_position_define],
/// File name to which this position refers. /// File name to which this position refers.
]b4_percent_define_get([[filename_type]])[* filename; ]b4_percent_define_get([[filename_type]])[* filename;
/// Current line number. /// Current line number.
unsigned int line; unsigned line;
/// Current column number. /// Current column number.
unsigned int column; unsigned column;
private: private:
/// Compute max(min, lhs+rhs) (provided min <= lhs). /// Compute max(min, lhs+rhs) (provided min <= lhs).
static unsigned int add_ (unsigned int lhs, int rhs, unsigned int min) static unsigned add_ (unsigned lhs, int rhs, unsigned min)
{ {
return (0 < rhs || -static_cast<unsigned int>(rhs) < lhs return (0 < rhs || -static_cast<unsigned>(rhs) < lhs
? rhs + lhs ? rhs + lhs
: min); : min);
} }
@@ -157,30 +156,27 @@ m4_define([b4_location_define],
location (const position& b, const position& e) location (const position& b, const position& e)
: begin (b) : begin (b)
, end (e) , end (e)
{ {}
}
/// Construct a 0-width location in \a p. /// Construct a 0-width location in \a p.
explicit location (const position& p = position ()) explicit location (const position& p = position ())
: begin (p) : begin (p)
, end (p) , end (p)
{ {}
}
/// Construct a 0-width location in \a f, \a l, \a c. /// Construct a 0-width location in \a f, \a l, \a c.
explicit location (]b4_percent_define_get([[filename_type]])[* f, explicit location (]b4_percent_define_get([[filename_type]])[* f,
unsigned int l = ]b4_location_initial_line[u, unsigned l = ]b4_location_initial_line[u,
unsigned int c = ]b4_location_initial_column[u) unsigned c = ]b4_location_initial_column[u)
: begin (f, l, c) : begin (f, l, c)
, end (f, l, c) , end (f, l, c)
{ {}
}
])[ ])[
/// Initialization. /// Initialization.
void initialize (]b4_percent_define_get([[filename_type]])[* f = YY_NULLPTR, void initialize (]b4_percent_define_get([[filename_type]])[* f = YY_NULLPTR,
unsigned int l = ]b4_location_initial_line[u, unsigned l = ]b4_location_initial_line[u,
unsigned int c = ]b4_location_initial_column[u) unsigned c = ]b4_location_initial_column[u)
{ {
begin.initialize (f, l, c); begin.initialize (f, l, c);
end = begin; end = begin;
@@ -278,7 +274,7 @@ m4_define([b4_location_define],
inline std::basic_ostream<YYChar>& inline std::basic_ostream<YYChar>&
operator<< (std::basic_ostream<YYChar>& ostr, const location& loc) operator<< (std::basic_ostream<YYChar>& ostr, const location& loc)
{ {
unsigned int end_col = 0 < loc.end.column ? loc.end.column - 1 : 0; unsigned end_col = 0 < loc.end.column ? loc.end.column - 1 : 0;
ostr << loc.begin; ostr << loc.begin;
if (loc.end.filename if (loc.end.filename
&& (!loc.begin.filename && (!loc.begin.filename

View File

@@ -1,6 +1,6 @@
# C++ skeleton for Bison # C++ skeleton for Bison
# Copyright (C) 2002-2015 Free Software Foundation, Inc. # Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -16,12 +16,13 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
m4_pushdef([b4_copyright_years], m4_pushdef([b4_copyright_years],
[2002-2015]) [2002-2015, 2018])
# b4_stack_define # b4_stack_define
# --------------- # ---------------
m4_define([b4_stack_define], m4_define([b4_stack_define],
[[ template <class T, class S = std::vector<T> > [[ /// A stack with random access from its top.
template <class T, class S = std::vector<T> >
class stack class stack
{ {
public: public:
@@ -35,20 +36,24 @@ m4_define([b4_stack_define],
seq_.reserve (200); seq_.reserve (200);
} }
stack (unsigned int n) stack (unsigned n)
: seq_ (n) : seq_ (n)
{} {}
inline /// Random access.
///
/// Index 0 returns the topmost element.
T& T&
operator[] (unsigned int i) operator[] (unsigned i)
{ {
return seq_[seq_.size () - 1 - i]; return seq_[seq_.size () - 1 - i];
} }
inline /// Random access.
///
/// Index 0 returns the topmost element.
const T& const T&
operator[] (unsigned int i) const operator[] (unsigned i) const
{ {
return seq_[seq_.size () - 1 - i]; return seq_[seq_.size () - 1 - i];
} }
@@ -56,7 +61,6 @@ m4_define([b4_stack_define],
/// Steal the contents of \a t. /// Steal the contents of \a t.
/// ///
/// Close to move-semantics. /// Close to move-semantics.
inline
void void
push (T& t) push (T& t)
{ {
@@ -64,9 +68,8 @@ m4_define([b4_stack_define],
operator[](0).move (t); operator[](0).move (t);
} }
inline
void void
pop (unsigned int n = 1) pop (unsigned n = 1)
{ {
for (; n; --n) for (; n; --n)
seq_.pop_back (); seq_.pop_back ();
@@ -78,21 +81,18 @@ m4_define([b4_stack_define],
seq_.clear (); seq_.clear ();
} }
inline
typename S::size_type typename S::size_type
size () const size () const
{ {
return seq_.size (); return seq_.size ();
} }
inline
const_iterator const_iterator
begin () const begin () const
{ {
return seq_.rbegin (); return seq_.rbegin ();
} }
inline
const_iterator const_iterator
end () const end () const
{ {
@@ -111,21 +111,20 @@ m4_define([b4_stack_define],
class slice class slice
{ {
public: public:
slice (const S& stack, unsigned int range) slice (const S& stack, unsigned range)
: stack_ (stack) : stack_ (stack)
, range_ (range) , range_ (range)
{} {}
inline
const T& const T&
operator [] (unsigned int i) const operator [] (unsigned i) const
{ {
return stack_[range_ - i]; return stack_[range_ - i];
} }
private: private:
const S& stack_; const S& stack_;
unsigned int range_; unsigned range_;
}; };
]]) ]])

View File

@@ -1,6 +1,6 @@
# C++ skeleton for Bison # C++ skeleton for Bison
# Copyright (C) 2002-2015 Free Software Foundation, Inc. # Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
m4_define([b4_symbol_variant], m4_define([b4_symbol_variant],
[m4_pushdef([b4_dollar_dollar], [m4_pushdef([b4_dollar_dollar],
[$2.$3< $][3 > (m4_shift3($@))])dnl [$2.$3< $][3 > (m4_shift3($@))])dnl
switch ($1) switch ($1)
{ {
b4_type_foreach([b4_type_action_])[]dnl b4_type_foreach([b4_type_action_])[]dnl
default: default:

View File

@@ -3,7 +3,7 @@
<!-- <!--
bison.xsl - common templates for Bison XSLT. bison.xsl - common templates for Bison XSLT.
Copyright (C) 2007-2015 Free Software Foundation, Inc. Copyright (C) 2007-2015, 2018 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.

View File

@@ -3,7 +3,7 @@
<!-- <!--
xml2dot.xsl - transform Bison XML Report into DOT. xml2dot.xsl - transform Bison XML Report into DOT.
Copyright (C) 2007-2015 Free Software Foundation, Inc. Copyright (C) 2007-2015, 2018 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.

View File

@@ -3,7 +3,7 @@
<!-- <!--
xml2text.xsl - transform Bison XML Report into plain text. xml2text.xsl - transform Bison XML Report into plain text.
Copyright (C) 2007-2015 Free Software Foundation, Inc. Copyright (C) 2007-2015, 2018 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.

View File

@@ -3,7 +3,7 @@
<!-- <!--
xml2html.xsl - transform Bison XML Report into XHTML. xml2html.xsl - transform Bison XML Report into XHTML.
Copyright (C) 2007-2015 Free Software Foundation, Inc. Copyright (C) 2007-2015, 2018 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.

View File

@@ -1,11 +1,11 @@
-*- C -*- -*- C -*-
# Yacc compatible skeleton for Bison # Yacc compatible skeleton for Bison
# Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, # Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software
# Inc. # Foundation, Inc.
m4_pushdef([b4_copyright_years], m4_pushdef([b4_copyright_years],
[1984, 1989-1990, 2000-2015]) [1984, 1989-1990, 2000-2015, 2018])
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@@ -1207,6 +1207,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
case N: \ case N: \
yyformat = S; \ yyformat = S; \
break break
default: /* Avoid compiler warnings. */
YYCASE_(0, YY_("syntax error")); YYCASE_(0, YY_("syntax error"));
YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(1, YY_("syntax error, unexpected %s"));
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
@@ -1641,8 +1642,9 @@ yyreduce:
yyval = yyvsp[1-yylen]; yyval = yyvsp[1-yylen];
]b4_locations_if( ]b4_locations_if(
[[ /* Default location. */ [[ /* Default location. */
YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);]])[ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
yyerror_range[1] = yyloc;]])[
YY_REDUCE_PRINT (yyn);]b4_lac_if([[ YY_REDUCE_PRINT (yyn);]b4_lac_if([[
{ {
int yychar_backup = yychar; int yychar_backup = yychar;
@@ -1782,8 +1784,7 @@ yyerrorlab:
if (/*CONSTCOND*/ 0) if (/*CONSTCOND*/ 0)
goto yyerrorlab; goto yyerrorlab;
]b4_locations_if([[ yyerror_range[1] = yylsp[1-yylen]; /* Do not reclaim the symbols of the rule whose action triggered
]])[ /* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */ this YYERROR. */
YYPOPSTACK (yylen); YYPOPSTACK (yylen);
yylen = 0; yylen = 0;

View File

@@ -1,7 +1,7 @@
# DJGPP Maintainer's Makefile -*-Makefile-*- # DJGPP Maintainer's Makefile -*-Makefile-*-
# Requires GNU sed # Requires GNU sed
## Copyright (C) 2005-2015 Free Software Foundation, Inc. ## Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
This is a port of GNU Bison @VERSION@ to MSDOS/DJGPP. This is a port of GNU Bison @VERSION@ to MSDOS/DJGPP.
Copyright (C) 2005-2015 Free Software Foundation, Inc. Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View File

@@ -4,7 +4,7 @@ Rem Configure Bison for DJGPP.
Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line
Rem format, or else stock DOS/Windows shells will refuse to run it. Rem format, or else stock DOS/Windows shells will refuse to run it.
Rem Copyright (C) 2005-2015 Free Software Foundation, Inc. Rem Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
Rem This program is free software: you can redistribute it and/or modify Rem This program is free software: you can redistribute it and/or modify
Rem it under the terms of the GNU General Public License as published by Rem it under the terms of the GNU General Public License as published by

View File

@@ -2,7 +2,7 @@
# Sed script for additional DJGPP specific editing # Sed script for additional DJGPP specific editing
# of the configure script generated by autoconf 2.62. # of the configure script generated by autoconf 2.62.
# Copyright (C) 2005-2015 Free Software Foundation, Inc. # Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -3,7 +3,7 @@
# This is the config.site file for configuring GNU packages # This is the config.site file for configuring GNU packages
# which are to be built with DJGPP tools. # which are to be built with DJGPP tools.
# Copyright (C) 2005-2015 Free Software Foundation, Inc. # Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
# sed script for DJGPP specific editing of config.hin # sed script for DJGPP specific editing of config.hin
# Copyright (C) 2005-2015 Free Software Foundation, Inc. # Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -7,7 +7,7 @@ Rem This batch file unpacks the Bison distribution while simultaneously
Rem renaming some of the files whose names are invalid on DOS or conflict Rem renaming some of the files whose names are invalid on DOS or conflict
Rem with other file names after truncation to DOS 8+3 namespace. Rem with other file names after truncation to DOS 8+3 namespace.
Rem Rem
Rem Copyright (C) 2005-2015 Free Software Foundation, Inc. Rem Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
Rem Rem
Rem This program is free software: you can redistribute it and/or modify Rem This program is free software: you can redistribute it and/or modify
Rem it under the terms of the GNU General Public License as published by Rem it under the terms of the GNU General Public License as published by

View File

@@ -1,4 +1,4 @@
## Copyright (C) 2008-2015 Free Software Foundation, Inc. ## Copyright (C) 2008-2015, 2018 Free Software Foundation, Inc.
## This program is free software: you can redistribute it and/or modify ## 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 ## it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Subprocesses with pipes. /* Subprocesses with pipes.
Copyright (C) 2005-2015 Free Software Foundation, Inc. Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Subprocesses with pipes. /* Subprocesses with pipes.
Copyright (C) 2005-2015 Free Software Foundation, Inc. Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View File

@@ -2,7 +2,7 @@
# Sed script for additional DJGPP specific editing # Sed script for additional DJGPP specific editing
# of the testsuite script generated by autoconf 2.61. # of the testsuite script generated by autoconf 2.61.
# Copyright (C) 2007-2015 Free Software Foundation, Inc. # Copyright (C) 2007-2015, 2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -35,7 +35,7 @@
This manual (@value{UPDATED}) is for GNU Bison (version This manual (@value{UPDATED}) is for GNU Bison (version
@value{VERSION}), the GNU parser generator. @value{VERSION}), the GNU parser generator.
Copyright @copyright{} 1988-1993, 1995, 1998-2015 Free Software Copyright @copyright{} 1988-1993, 1995, 1998-2015, 2018 Free Software
Foundation, Inc. Foundation, Inc.
@quotation @quotation
@@ -143,7 +143,7 @@ Writing GLR Parsers
Examples Examples
* RPN Calc:: Reverse polish notation calculator; * RPN Calc:: Reverse Polish Notation Calculator;
a first example with no operator precedence. a first example with no operator precedence.
* Infix Calc:: Infix (algebraic) notation calculator. * Infix Calc:: Infix (algebraic) notation calculator.
Operator precedence is introduced. Operator precedence is introduced.
@@ -1493,7 +1493,7 @@ simple program, all the rest of the program can go here.
@cindex examples, simple @cindex examples, simple
Now we show and explain several sample programs written using Bison: a Now we show and explain several sample programs written using Bison: a
reverse polish notation calculator, an algebraic (infix) notation Reverse Polish Notation calculator, an algebraic (infix) notation
calculator --- later extended to track ``locations'' --- calculator --- later extended to track ``locations'' ---
and a multi-function calculator. All and a multi-function calculator. All
produce usable, though limited, interactive desk-top calculators. produce usable, though limited, interactive desk-top calculators.
@@ -1503,7 +1503,7 @@ languages are written the same way. You can copy these examples into a
source file to try them. source file to try them.
@menu @menu
* RPN Calc:: Reverse polish notation calculator; * RPN Calc:: Reverse Polish Notation Calculator;
a first example with no operator precedence. a first example with no operator precedence.
* Infix Calc:: Infix (algebraic) notation calculator. * Infix Calc:: Infix (algebraic) notation calculator.
Operator precedence is introduced. Operator precedence is introduced.
@@ -1516,13 +1516,12 @@ source file to try them.
@node RPN Calc @node RPN Calc
@section Reverse Polish Notation Calculator @section Reverse Polish Notation Calculator
@cindex reverse polish notation @cindex Reverse Polish Notation
@cindex polish notation calculator
@cindex @code{rpcalc} @cindex @code{rpcalc}
@cindex calculator, simple @cindex calculator, simple
The first example is that of a simple double-precision @dfn{reverse polish The first example is that of a simple double-precision @dfn{Reverse Polish
notation} calculator (a calculator using postfix operators). This example Notation} calculator (a calculator using postfix operators). This example
provides a good starting point, since operator precedence is not an issue. provides a good starting point, since operator precedence is not an issue.
The second example will illustrate how operator precedence is handled. The second example will illustrate how operator precedence is handled.
@@ -1542,12 +1541,12 @@ The source code for this calculator is named @file{rpcalc.y}. The
@node Rpcalc Declarations @node Rpcalc Declarations
@subsection Declarations for @code{rpcalc} @subsection Declarations for @code{rpcalc}
Here are the C and Bison declarations for the reverse polish notation Here are the C and Bison declarations for the Reverse Polish Notation
calculator. As in C, comments are placed between @samp{/*@dots{}*/}. calculator. As in C, comments are placed between @samp{/*@dots{}*/}.
@comment file: rpcalc.y @comment file: rpcalc.y
@example @example
/* Reverse polish notation calculator. */ /* Reverse Polish Notation calculator. */
@group @group
%@{ %@{
@@ -1598,7 +1597,7 @@ declared is @code{NUM}, the token type for numeric constants.
@node Rpcalc Rules @node Rpcalc Rules
@subsection Grammar Rules for @code{rpcalc} @subsection Grammar Rules for @code{rpcalc}
Here are the grammar rules for the reverse polish notation calculator. Here are the grammar rules for the Reverse Polish Notation calculator.
@comment file: rpcalc.y @comment file: rpcalc.y
@example @example
@@ -8933,7 +8932,7 @@ clear the flag.
Developing a parser can be a challenge, especially if you don't understand Developing a parser can be a challenge, especially if you don't understand
the algorithm (@pxref{Algorithm, ,The Bison Parser Algorithm}). This the algorithm (@pxref{Algorithm, ,The Bison Parser Algorithm}). This
chapter explains how understand and debug a parser. chapter explains how to understand and debug a parser.
The first sections focus on the static part of the parser: its structure. The first sections focus on the static part of the parser: its structure.
They explain how to generate and read the detailed description of the They explain how to generate and read the detailed description of the
@@ -10901,12 +10900,12 @@ Regular union-based code in Lex scanner typically look like:
@example @example
[0-9]+ @{ [0-9]+ @{
yylval.ival = text_to_int (yytext); yylval->ival = text_to_int (yytext);
return yy::parser::INTEGER; return yy::parser::token::INTEGER;
@} @}
[a-z]+ @{ [a-z]+ @{
yylval.sval = new std::string (yytext); yylval->sval = new std::string (yytext);
return yy::parser::IDENTIFIER; return yy::parser::token::IDENTIFIER;
@} @}
@end example @end example
@@ -10915,12 +10914,12 @@ initialized. So the code would look like:
@example @example
[0-9]+ @{ [0-9]+ @{
yylval.build<int>() = text_to_int (yytext); yylval->build<int> () = text_to_int (yytext);
return yy::parser::INTEGER; return yy::parser::token::INTEGER;
@} @}
[a-z]+ @{ [a-z]+ @{
yylval.build<std::string> = yytext; yylval->build<std::string> () = yytext;
return yy::parser::IDENTIFIER; return yy::parser::token::IDENTIFIER;
@} @}
@end example @end example
@@ -10929,12 +10928,12 @@ or
@example @example
[0-9]+ @{ [0-9]+ @{
yylval.build(text_to_int (yytext)); yylval->build (text_to_int (yytext));
return yy::parser::INTEGER; return yy::parser::token::INTEGER;
@} @}
[a-z]+ @{ [a-z]+ @{
yylval.build(yytext); yylval->build (yytext);
return yy::parser::IDENTIFIER; return yy::parser::token::IDENTIFIER;
@} @}
@end example @end example
@@ -10962,8 +10961,8 @@ it is still possible to give an integer as semantic value for a string.
So for each token type, Bison generates named constructors as follows. So for each token type, Bison generates named constructors as follows.
@deftypemethod {symbol_type} {} make_@var{token} (const @var{value_type}& @var{value}, const location_type& @var{location}) @deftypemethod {symbol_type} {} {make_@var{token}} (const @var{value_type}& @var{value}, const location_type& @var{location})
@deftypemethodx {symbol_type} {} make_@var{token} (const location_type& @var{location}) @deftypemethodx {symbol_type} {} {make_@var{token}} (const location_type& @var{location})
Build a complete terminal symbol for the token type @var{token} (not Build a complete terminal symbol for the token type @var{token} (not
including the @code{api.token.prefix}) whose possible semantic value is including the @code{api.token.prefix}) whose possible semantic value is
@var{value} of adequate @var{value_type}. If location tracking is enabled, @var{value} of adequate @var{value_type}. If location tracking is enabled,
@@ -10983,20 +10982,18 @@ For instance, given the following declarations:
Bison generates the following functions: Bison generates the following functions:
@example @example
symbol_type make_IDENTIFIER(const std::string& v, symbol_type make_IDENTIFIER (const std::string&, const location_type&);
const location_type& l); symbol_type make_INTEGER (const int&, const location_type&);
symbol_type make_INTEGER(const int& v, symbol_type make_COLON (const location_type&);
const location_type& loc);
symbol_type make_COLON(const location_type& loc);
@end example @end example
@noindent @noindent
which should be used in a Lex-scanner as follows. which should be used in a Lex-scanner as follows.
@example @example
[0-9]+ return yy::parser::make_INTEGER(text_to_int (yytext), loc); [0-9]+ return yy::parser::make_INTEGER (text_to_int (yytext), loc);
[a-z]+ return yy::parser::make_IDENTIFIER(yytext, loc); [a-z]+ return yy::parser::make_IDENTIFIER (yytext, loc);
":" return yy::parser::make_COLON(loc); ":" return yy::parser::make_COLON (loc);
@end example @end example
Tokens that do not have an identifier are not accessible: you cannot simply Tokens that do not have an identifier are not accessible: you cannot simply
@@ -11177,13 +11174,13 @@ calcxx_driver::parse (const std::string &f)
void void
calcxx_driver::error (const yy::location& l, const std::string& m) calcxx_driver::error (const yy::location& l, const std::string& m)
@{ @{
std::cerr << l << ": " << m << std::endl; std::cerr << l << ": " << m << '\n';
@} @}
void void
calcxx_driver::error (const std::string& m) calcxx_driver::error (const std::string& m)
@{ @{
std::cerr << m << std::endl; std::cerr << m << '\n';
@} @}
@end example @end example
@@ -11461,13 +11458,13 @@ The rules are simple. The driver is used to report errors.
@comment file: calc++-scanner.ll @comment file: calc++-scanner.ll
@example @example
"-" return yy::calcxx_parser::make_MINUS(loc); "-" return yy::calcxx_parser::make_MINUS (loc);
"+" return yy::calcxx_parser::make_PLUS(loc); "+" return yy::calcxx_parser::make_PLUS (loc);
"*" return yy::calcxx_parser::make_STAR(loc); "*" return yy::calcxx_parser::make_STAR (loc);
"/" return yy::calcxx_parser::make_SLASH(loc); "/" return yy::calcxx_parser::make_SLASH (loc);
"(" return yy::calcxx_parser::make_LPAREN(loc); "(" return yy::calcxx_parser::make_LPAREN (loc);
")" return yy::calcxx_parser::make_RPAREN(loc); ")" return yy::calcxx_parser::make_RPAREN (loc);
":=" return yy::calcxx_parser::make_ASSIGN(loc); ":=" return yy::calcxx_parser::make_ASSIGN (loc);
@group @group
@{int@} @{ @{int@} @{
@@ -11475,12 +11472,12 @@ The rules are simple. The driver is used to report errors.
long n = strtol (yytext, NULL, 10); long n = strtol (yytext, NULL, 10);
if (! (INT_MIN <= n && n <= INT_MAX && errno != ERANGE)) if (! (INT_MIN <= n && n <= INT_MAX && errno != ERANGE))
driver.error (loc, "integer is out of range"); driver.error (loc, "integer is out of range");
return yy::calcxx_parser::make_NUMBER(n, loc); return yy::calcxx_parser::make_NUMBER (n, loc);
@} @}
@end group @end group
@{id@} return yy::calcxx_parser::make_IDENTIFIER(yytext, loc); @{id@} return yy::calcxx_parser::make_IDENTIFIER (yytext, loc);
. driver.error (loc, "invalid character"); . driver.error (loc, "invalid character");
<<EOF>> return yy::calcxx_parser::make_END(loc); <<EOF>> return yy::calcxx_parser::make_END (loc);
%% %%
@end example @end example
@@ -11536,7 +11533,7 @@ main (int argc, char *argv[])
else if (argv[i] == std::string ("-s")) else if (argv[i] == std::string ("-s"))
driver.trace_scanning = true; driver.trace_scanning = true;
else if (!driver.parse (argv[i])) else if (!driver.parse (argv[i]))
std::cout << driver.result << std::endl; std::cout << driver.result << '\n';
else else
res = 1; res = 1;
return res; return res;
@@ -12543,7 +12540,7 @@ is turned on by default. If you have problems building in the @file{po}
subdirectory, it indicates that your system's internationalization subdirectory, it indicates that your system's internationalization
support is lacking. You can re-configure Bison with support is lacking. You can re-configure Bison with
@option{--disable-nls} to turn off this support, or you can install GNU @option{--disable-nls} to turn off this support, or you can install GNU
gettext from @url{ftp://ftp.gnu.org/gnu/gettext/} and re-configure gettext from @url{https://ftp.gnu.org/gnu/gettext/} and re-configure
Bison. See the file @file{ABOUT-NLS} for more information. Bison. See the file @file{ABOUT-NLS} for more information.
@@ -12572,7 +12569,7 @@ I found a bug. What should I include in the bug report?
@end quotation @end quotation
Before you send a bug report, make sure you are using the latest Before you send a bug report, make sure you are using the latest
version. Check @url{ftp://ftp.gnu.org/pub/gnu/bison/} or one of its version. Check @url{https://ftp.gnu.org/pub/gnu/bison/} or one of its
mirrors. Be sure to include the version number in your bug report. If mirrors. Be sure to include the version number in your bug report. If
the bug is present in the latest version but not in a previous version, the bug is present in the latest version but not in a previous version,
try to determine the most recent version which did not contain the bug. try to determine the most recent version which did not contain the bug.
@@ -13348,7 +13345,7 @@ A reentrant subprogram is a subprogram which can be in invoked any
number of times in parallel, without interference between the various number of times in parallel, without interference between the various
invocations. @xref{Pure Decl, ,A Pure (Reentrant) Parser}. invocations. @xref{Pure Decl, ,A Pure (Reentrant) Parser}.
@item Reverse polish notation @item Reverse Polish Notation
A language in which all operators are postfix operators. A language in which all operators are postfix operators.
@item Right recursion @item Right recursion

View File

@@ -1,4 +1,5 @@
## Copyright (C) 2001-2003, 2005-2015 Free Software Foundation, Inc. ## Copyright (C) 2001-2003, 2005-2015, 2018 Free Software Foundation,
## Inc.
## This program is free software: you can redistribute it and/or modify ## 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 ## it under the terms of the GNU General Public License as published by

View File

@@ -19,7 +19,8 @@
\def\finalout{\overfullrule=0pt} \def\finalout{\overfullrule=0pt}
%\finalout %\finalout
% Copyright (c) 1998, 2001, 2009-2015 Free Software Foundation, Inc. % Copyright (c) 1998, 2001, 2009-2015, 2018 Free Software Foundation,
% Inc.
% %
% This file is part of Bison. % This file is part of Bison.
% %

View File

@@ -16,7 +16,7 @@ straightforward use of _build/src/bison would.)
-- --
Copyright (C) 2006, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2006, 2009-2015, 2018 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.

View File

@@ -1,6 +1,6 @@
#! /usr/bin/perl -w #! /usr/bin/perl -w
# Copyright (C) 2006, 2008-2015 Free Software Foundation, Inc. # Copyright (C) 2006, 2008-2015, 2018 Free Software Foundation, Inc.
# #
# This file is part of Bison, the GNU Compiler Compiler. # This file is part of Bison, the GNU Compiler Compiler.
# #
@@ -738,7 +738,7 @@ yy::parser::token_type yylex(yy::parser::semantic_type* yylvalp,
void void
yy::parser::error(const yy::parser::location_type& loc, const std::string& msg) yy::parser::error(const yy::parser::location_type& loc, const std::string& msg)
{ {
std::cerr << loc << ": " << msg << std::endl; std::cerr << loc << ": " << msg << '\n';
} }
int main(int argc, char *argv[]) int main(int argc, char *argv[])

View File

@@ -1,4 +1,4 @@
## Copyright (C) 2006, 2008-2015 Free Software Foundation, Inc. ## Copyright (C) 2006, 2008-2015, 2018 Free Software Foundation, Inc.
## This program is free software: you can redistribute it and/or modify ## 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 ## it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Copyright (C) 2005-2015 Free Software Foundation, Inc. # Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -1,4 +1,5 @@
# Copyright (C) 2005-2006, 2008-2015 Free Software Foundation, Inc. # Copyright (C) 2005-2006, 2008-2015, 2018 Free Software Foundation,
# Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -3,8 +3,8 @@
# This file is part of GNU Bison # This file is part of GNU Bison
# Copyright (C) 1992, 2000-2001, 2005-2006, 2009-2015 Free Software # Copyright (C) 1992, 2000-2001, 2005-2006, 2009-2015, 2018 Free
# Foundation, Inc. # Software Foundation, Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -1,4 +1,4 @@
# Copyright (C) 2005, 2008-2015 Free Software Foundation, Inc. # Copyright (C) 2005, 2008-2015, 2018 Free Software Foundation, Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -1,4 +1,5 @@
# Copyright (C) 2005-2006, 2008-2015 Free Software Foundation, Inc. # Copyright (C) 2005-2006, 2008-2015, 2018 Free Software Foundation,
# Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Copyright (C) 2005-2015 Free Software Foundation, Inc. # Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -1,4 +1,5 @@
# Copyright (C) 2005-2006, 2008-2015 Free Software Foundation, Inc. # Copyright (C) 2005-2006, 2008-2015, 2018 Free Software Foundation,
# Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Copyright (C) 2005-2015 Free Software Foundation, Inc. # Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Copyright (C) 2005-2015 Free Software Foundation, Inc. # Copyright (C) 2005-2015, 2018 Free Software Foundation, Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -1,5 +1,5 @@
/* /*
Copyright (C) 2008-2015 Free Software Foundation, Inc. Copyright (C) 2008-2015, 2018 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@@ -25,9 +25,9 @@
%code requires // *.hh %code requires // *.hh
{ {
#include <list>
#include <string> #include <string>
typedef std::list<std::string> strings_type; #include <vector>
typedef std::vector<std::string> strings_type;
} }
%code // *.cc %code // *.cc
@@ -43,14 +43,14 @@ typedef std::list<std::string> strings_type;
static parser::symbol_type yylex (); static parser::symbol_type yylex ();
} }
// Printing a list of strings. // Printing a vector of strings.
// Koening look up will look into std, since that's an std::list. // Koening look up will look into std, since that's an std::vector.
namespace std namespace std
{ {
std::ostream& std::ostream&
operator<< (std::ostream& o, const strings_type& ss) operator<< (std::ostream& o, const strings_type& ss)
{ {
o << "(" << &ss << ") {"; o << '(' << &ss << ") {";
const char *sep = ""; const char *sep = "";
for (strings_type::const_iterator i = ss.begin(), end = ss.end(); for (strings_type::const_iterator i = ss.begin(), end = ss.end();
i != end; ++i) i != end; ++i)
@@ -58,13 +58,12 @@ typedef std::list<std::string> strings_type;
o << sep << *i; o << sep << *i;
sep = ", "; sep = ", ";
} }
return o << "}"; return o << '}';
} }
} }
// Conversion to string. // Conversion to string.
template <typename T> template <typename T>
inline
std::string std::string
string_cast (const T& t) string_cast (const T& t)
{ {
@@ -80,12 +79,12 @@ typedef std::list<std::string> strings_type;
%token END_OF_FILE 0; %token END_OF_FILE 0;
%type <::std::string> item; %type <::std::string> item;
%type <::std::list<std::string>> list; %type <::std::vector<std::string>> list;
%% %%
result: result:
list { std::cout << $1 << std::endl; } list { std::cout << $1 << '\n'; }
; ;
list: list:
@@ -135,7 +134,7 @@ namespace yy
void void
parser::error (const parser::location_type& loc, const std::string& msg) parser::error (const parser::location_type& loc, const std::string& msg)
{ {
std::cerr << loc << ": " << msg << std::endl; std::cerr << loc << ": " << msg << '\n';
} }
} }

2
gnulib

Submodule gnulib updated: ea6cb044ca...0d10473be6

54
lib/.gitignore vendored
View File

@@ -4,8 +4,7 @@
/*~ /*~
/.deps /.deps
/.dirstamp /.dirstamp
/Makefile /_Noreturn.h
/Makefile.in
/alignof.h /alignof.h
/alloca.h /alloca.h
/alloca.in.h /alloca.in.h
@@ -15,7 +14,9 @@
/asnprintf.c /asnprintf.c
/basename-lgpl.c /basename-lgpl.c
/basename.c /basename.c
/binary-io.c
/binary-io.h /binary-io.h
/bitrotate.c
/bitrotate.h /bitrotate.h
/c++defs.h /c++defs.h
/c-ctype.c /c-ctype.c
@@ -28,8 +29,6 @@
/charset.alias /charset.alias
/cloexec.c /cloexec.c
/cloexec.h /cloexec.h
/close-hook.c
/close-hook.h
/close-stream.c /close-stream.c
/close-stream.h /close-stream.h
/close.c /close.c
@@ -56,7 +55,6 @@
/exitfail.h /exitfail.h
/fatal-signal.c /fatal-signal.c
/fatal-signal.h /fatal-signal.h
/fclose.c
/fcntl.c /fcntl.c
/fcntl.h /fcntl.h
/fcntl.in.h /fcntl.in.h
@@ -81,19 +79,27 @@
/fseterr.h /fseterr.h
/fstat.c /fstat.c
/getdtablesize.c /getdtablesize.c
/getopt-cdefs.in.h
/getopt-core.h
/getopt-ext.h
/getopt-pfx-core.h
/getopt-pfx-ext.h
/getopt.c /getopt.c
/getopt.h /getopt.h
/getopt.in.h /getopt.in.h
/getopt1.c /getopt1.c
/getopt_int.h /getopt_int.h
/getprogname.c
/getprogname.h
/gettext.h /gettext.h
/gnulib.mk /gnulib.mk
/hard-locale.c
/hard-locale.h
/hash.c /hash.c
/hash.h /hash.h
/intprops.h /intprops.h
/inttypes.h /inttypes.h
/inttypes.in.h /inttypes.in.h
/ioctl.c
/isnan.c /isnan.c
/isnand-nolibm.h /isnand-nolibm.h
/isnand.c /isnand.c
@@ -103,9 +109,15 @@
/isnanl.c /isnanl.c
/itold.c /itold.c
/ldexpl.c /ldexpl.c
/limits.h
/limits.in.h
/localcharset.c /localcharset.c
/localcharset.h /localcharset.h
/lstat.c
/malloc.c /malloc.c
/malloca.c
/malloca.h
/math.c
/math.h /math.h
/math.in.h /math.in.h
/mbrtowc.c /mbrtowc.c
@@ -114,12 +126,11 @@
/mbswidth.h /mbswidth.h
/memchr.c /memchr.c
/memchr.valgrind /memchr.valgrind
/minmax.h
/msvc-inval.c /msvc-inval.c
/msvc-inval.h /msvc-inval.h
/msvc-nothrow.c /msvc-nothrow.c
/msvc-nothrow.h /msvc-nothrow.h
/nonblocking.c
/nonblocking.h
/obstack.c /obstack.c
/obstack.h /obstack.h
/obstack_printf.c /obstack_printf.c
@@ -140,7 +151,6 @@
/printf.c /printf.c
/progname.c /progname.c
/progname.h /progname.h
/quote.c
/quote.h /quote.h
/quotearg.c /quotearg.c
/quotearg.h /quotearg.h
@@ -154,6 +164,7 @@
/ref-del.sin /ref-del.sin
/sched.h /sched.h
/sched.in.h /sched.in.h
/sig-handler.c
/sig-handler.h /sig-handler.h
/sigaction.c /sigaction.c
/signal.h /signal.h
@@ -182,6 +193,8 @@
/spawnp.c /spawnp.c
/sprintf.c /sprintf.c
/stamp-h1 /stamp-h1
/stat-w32.c
/stat-w32.h
/stat.c /stat.c
/stdbool.h /stdbool.h
/stdbool.in.h /stdbool.in.h
@@ -192,7 +205,6 @@
/stdio--.h /stdio--.h
/stdio-impl.h /stdio-impl.h
/stdio-safer.h /stdio-safer.h
/stdio-write.c
/stdio.h /stdio.h
/stdio.in.h /stdio.in.h
/stdlib.h /stdlib.h
@@ -213,20 +225,17 @@
/strnlen.c /strnlen.c
/strverscmp.c /strverscmp.c
/sys /sys
/sys_ioctl.h
/sys_ioctl.in.h /sys_ioctl.in.h
/sys_socket.h
/sys_socket.in.h /sys_socket.in.h
/sys_stat.h
/sys_stat.in.h /sys_stat.in.h
/sys_types.in.h /sys_types.in.h
/sys_wait.h
/sys_wait.in.h /sys_wait.in.h
/sysexits.in.h /sysexits.in.h
/time.h /time.h
/time.in.h /time.in.h
/unistd--.h /unistd--.h
/unistd-safer.h /unistd-safer.h
/unistd.c
/unistd.h /unistd.h
/unistd.in.h /unistd.in.h
/unitypes.h /unitypes.h
@@ -234,6 +243,7 @@
/uniwidth /uniwidth
/uniwidth.h /uniwidth.h
/uniwidth.in.h /uniwidth.in.h
/unlink.c
/unlocked-io.h /unlocked-io.h
/unsetenv.c /unsetenv.c
/vasnprintf.c /vasnprintf.c
@@ -242,7 +252,6 @@
/vfprintf.c /vfprintf.c
/vsnprintf.c /vsnprintf.c
/vsprintf.c /vsprintf.c
/w32sock.h
/w32spawn.h /w32spawn.h
/wait-process.c /wait-process.c
/wait-process.h /wait-process.h
@@ -250,6 +259,7 @@
/warn-on-use.h /warn-on-use.h
/wchar.h /wchar.h
/wchar.in.h /wchar.in.h
/wctype-h.c
/wctype.h /wctype.h
/wctype.in.h /wctype.in.h
/wcwidth.c /wcwidth.c
@@ -260,17 +270,9 @@
/xmalloc.c /xmalloc.c
/xmemdup0.c /xmemdup0.c
/xmemdup0.h /xmemdup0.h
/xsize.c
/xsize.h /xsize.h
/xstrndup.c /xstrndup.c
/xstrndup.h /xstrndup.h
/binary-io.c /stat-time.c
/xsize.c /stat-time.h
/bitrotate.c
/math.c
/sig-handler.c
/unistd.c
/wctype-h.c
/lstat.c
/unlink.c
/gettimeofday.c
/sys_time.in.h

View File

@@ -1,7 +1,7 @@
/* Array bitsets. /* Array bitsets.
Copyright (C) 2002-2003, 2006, 2009-2015 Free Software Foundation, Copyright (C) 2002-2003, 2006, 2009-2015, 2018 Free Software
Inc. Foundation, Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,7 @@
/* Functions to support abitsets. /* Functions to support abitsets.
Copyright (C) 2002, 2004, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2004, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,7 +1,7 @@
/* Base bitset stuff. /* Base bitset stuff.
Copyright (C) 2002-2004, 2006, 2009-2015 Free Software Foundation, Copyright (C) 2002-2004, 2006, 2009-2015, 2018 Free Software
Inc. Foundation, Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,7 @@
/* General bitsets. /* General bitsets.
Copyright (C) 2002-2006, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002-2006, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,7 @@
/* Generic bitsets. /* Generic bitsets.
Copyright (C) 2002-2004, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002-2004, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,7 @@
/* Bitset statistics. /* Bitset statistics.
Copyright (C) 2002-2006, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002-2006, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,7 @@
/* Functions to support bitset statistics. /* Functions to support bitset statistics.
Copyright (C) 2002-2004, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002-2004, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,6 @@
/* Bitset vectors. /* Bitset vectors.
Copyright (C) 2001-2002, 2004, 2006, 2009-2015 Free Software Copyright (C) 2001-2002, 2004, 2006, 2009-2015, 2018 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View File

@@ -1,6 +1,7 @@
/* Bitset vectors. /* Bitset vectors.
Copyright (C) 2002, 2004, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2004, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Akim Demaille (akim@freefriends.org). Contributed by Akim Demaille (akim@freefriends.org).

View File

@@ -1,6 +1,6 @@
/* Bitset vectors. /* Bitset vectors.
Copyright (C) 2001-2002, 2004-2006, 2009-2015 Free Software Copyright (C) 2001-2002, 2004-2006, 2009-2015, 2018 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View File

@@ -1,6 +1,7 @@
/* Bitset vectors. /* Bitset vectors.
Copyright (C) 2002, 2004, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2004, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,7 @@
/* Functions to support expandable bitsets. /* Functions to support expandable bitsets.
Copyright (C) 2002-2006, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002-2006, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,7 @@
/* Functions to support ebitsets. /* Functions to support ebitsets.
Copyright (C) 2002, 2004, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2004, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,7 @@
/* get-errno.c - get and set errno. /* get-errno.c - get and set errno.
Copyright (C) 2002, 2006, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2006, 2009-2015, 2018 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* get-errno.h - get and set errno. /* get-errno.h - get and set errno.
Copyright (C) 2002, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2009-2015, 2018 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View File

@@ -1,7 +1,7 @@
/* Functions to support link list bitsets. /* Functions to support link list bitsets.
Copyright (C) 2002-2004, 2006, 2009-2015 Free Software Foundation, Copyright (C) 2002-2004, 2006, 2009-2015, 2018 Free Software
Inc. Foundation, Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,7 @@
/* Functions to support lbitsets. /* Functions to support lbitsets.
Copyright (C) 2002, 2004, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2004, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,7 @@
/* Fake libiberty.h for Bison. /* Fake libiberty.h for Bison.
Copyright (C) 2002-2004, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002-2004, 2009-2015, 2018 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View File

@@ -1,4 +1,4 @@
# Copyright (C) 2001-2015 Free Software Foundation, Inc. # Copyright (C) 2001-2015, 2018 Free Software Foundation, Inc.
# #
# This program is free software: you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View File

@@ -1,6 +1,6 @@
/* Yacc library main function. /* Yacc library main function.
Copyright (C) 2002, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2009-2015, 2018 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.

View File

@@ -1,6 +1,6 @@
/* Timing variables for measuring compiler performance. /* Timing variables for measuring compiler performance.
Copyright (C) 2000, 2002, 2004, 2006, 2009-2015 Free Software Copyright (C) 2000, 2002, 2004, 2006, 2009-2015, 2018 Free Software
Foundation, Inc. Foundation, Inc.
Contributed by Alex Samuel <samuel@codesourcery.com> Contributed by Alex Samuel <samuel@codesourcery.com>

View File

@@ -1,7 +1,8 @@
/* This file contains the definitions for timing variables used to -*- C -*- /* This file contains the definitions for timing variables used to -*- C -*-
measure run-time performance of the compiler. measure run-time performance of the compiler.
Copyright (C) 2002, 2007, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2007, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Akim Demaille <akim@freefriends.org>. Contributed by Akim Demaille <akim@freefriends.org>.

View File

@@ -1,7 +1,7 @@
/* Timing variables for measuring compiler performance. /* Timing variables for measuring compiler performance.
Copyright (C) 2000, 2002, 2004, 2009-2015 Free Software Foundation, Copyright (C) 2000, 2002, 2004, 2009-2015, 2018 Free Software
Inc. Foundation, Inc.
Contributed by Alex Samuel <samuel@codesourcery.com> Contributed by Alex Samuel <samuel@codesourcery.com>

View File

@@ -1,6 +1,7 @@
/* Variable array bitsets. /* Variable array bitsets.
Copyright (C) 2002-2006, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002-2006, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,7 @@
/* Functions to support vbitsets. /* Functions to support vbitsets.
Copyright (C) 2002, 2004, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2004, 2009-2015, 2018 Free Software Foundation,
Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).

View File

@@ -1,6 +1,6 @@
/* Yacc library error-printing function. /* Yacc library error-printing function.
Copyright (C) 2002, 2009-2015 Free Software Foundation, Inc. Copyright (C) 2002, 2009-2015, 2018 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.

Some files were not shown because too many files have changed in this diff Show More