Compare commits

...
12 Commits
Author SHA1 Message Date
Akim Demaille f520e150eb version 3.4
* NEWS: Record release date.
2019-05-19 11:19:47 +02:00
Akim Demaille 75db37c564 fix: use copiable, not copyable
Reported by Hans Åberg.
http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00017.html

* data/skeletons/lalr1.cc, doc/bison.texi: here.
2019-05-19 11:17:44 +02:00
Akim Demaille 886b503e4b NEWS: update for 3.4 2019-05-19 11:01:20 +02:00
Akim Demaille a2f0444c6e tests: adjust to GCC9 diagnostics with a margin
* tests/synclines.at (_AT_SYNCLINES_COMPILE): Remove the margin.
2019-05-19 10:53:02 +02:00
Akim Demaille 66100b640f regen 2019-05-19 10:05:18 +02:00
Akim Demaille de5207244b diagnostics: %pure-parser is obsolete
Reported by Uxio Prego.
http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00029.html

* src/scan-gram.l, src/parse-gram.y (PERCENT_PURE_PARSER)
(handle_pure_parser): New.
Issue a deprecation/update notice for %pure-parser.
* doc/bison.texi (Java Bison Interface): Don't mention %pure-parser.
* tests/actions.at, tests/input.at: Adjust.
2019-05-19 10:05:18 +02:00
Akim Demaille cae8132690 diagnostics: clean up convention for colored diagnostics
* data/diagnostics.css: Rename as...
* data/bison-default.css: this.
Add the GPL header.
This is the convention followed by Bruno Haible in gettext.
Adjust dependencies.
* src/complain.c (complain_init_color): Use BISON_STYLE instead of
BISON_DIAGNOSTICS_STYLE.
2019-05-19 09:50:21 +02:00
Akim Demaille a1a847bfb5 CI: use a pipeline: first build the tarball, then check it
Build the tarball in one job, check it in many.
Unfortunately no real gain in overall duration.
With help from Clément Démoulins.

* .travis.yml: here.
Remove all the tricks that were used to be able to boostrap on old
distros.
(before_install): Merge into 'script', because before_install applies
to all the jobs, and we don't want to run it for the 'compile' job.
2019-05-19 09:45:27 +02:00
Akim Demaille 3ac95de01a examples: fix srcdir/builddir issues
* examples/d/local.mk, examples/java/local.mk: here.
2019-05-18 13:22:58 +02:00
Akim Demaille da7af36a13 gnulib: update
In preparation for Bison 3.4, revert to the version before this
commit:

    commit 03752516b21091cf3c4beea7e8b9bcad462d50ed
    Author: John Darrington <[email protected]>
    Date:   Sun May 12 00:42:36 2019 +0200

    version-etc: Ease translation.

    * lib/version-etc.c (version_etc_arn, emit_bug_reporting_address):
    Move URLs and formatting newlines out of translatable string.

because it changes the messages for --version, translated in
gnulib.po.  These changes are not yet available on the translation
project, so we would have a regression in the set of translated
strings.
2019-05-18 09:10:08 +02:00
Akim Demaille 3f25104caf build: do not use $< in plain rules
It works only in implicit rules (or with GNU Make, but not with
Solaris Make).

Reported by Bruno Haible.
http://lists.gnu.org/archive/html/bug-bison/2019-05/msg00009.html
Diagnosed thanks to Kiyoshi Kanazawa.

* examples/c/reccalc/local.mk, examples/d/local.mk,
* examples/java/local.mk: Don't use $< in non implicit rules.
2019-05-13 22:16:23 +02:00
Akim Demaille 6b1933d992 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2019-05-12 14:25:31 +02:00
21 changed files with 600 additions and 450 deletions
+1 -1
View File
@@ -1 +1 @@
3.3.90
3.3.91
+101 -27
View File
@@ -11,8 +11,56 @@ env:
# See https://github.com/nemequ/icc-travis.
secure: B3manbbi0anCAGDJTdAa9TlodzRHeiYD87FKmFzS877dPm8Cm0BDvtUhKBUpBvP8+nbHOWFGrgDmLugSZjTGU+mAxtuQpamUFHvinu0BIk3qtjlqouwvbtIqUu8iiZ3Uqu+xKeAANKRy0YVZGLlEb9F3N119tJ/Fxp1p9bXL1qph+CZ25OFbUgZ2s4F+/AyHMUxJlNXKFe3Qean65hC6edhU3zoaKzr/g/wtbhRmcyWbkOa1dJqzr2yKotcPvrnApGhDzgMKFtohg/t7xfMADDVv6sGS5XNpt25Z+MUCmLg4Z9eD7u109jvRV1eu/jgVafqsthWEhXbuMiFgFhKBKGCNZ0dACIfKZSkFZI6FdM7ovJ6aNhSlxZ2169Ybd22rN1UTHeCQWySPcVVOg5taLVpqe+E8Xhnv4hBO5NrzElWwCMLxIdPUSwVStYvtDr8ZytHWzfot50vSnFKIFpTOr9hP4+AJMVmmqJfaJo2MLBft/q2xkztrMv3lQSj3m4+ma9kPDwXIu9uCutjlnhc00jNx9qegi5VfpAjxcG1R+pX4T20az6ByHk/7LPQsANkT31RJq/jAeD9LEuMOy8miha83q4QuvbFaqPK3PY0el/O1LZaXqLsV2aQ0uqH8YX0l4r5NzHdhb+3lYgvpMBO5ytr/EWJiEyNYV518050IUDE=
matrix:
# Run in two steps:
# 1. Build the tarball
# On a modern distro, with all the needed dependencies, including the whole git history.
# 2. Check it on various environments.
# Less dependencies, and little git content (we would like to have none, but it's not
# an option on Travis).
stages:
- compile
- test
# matrix.include and jobs.include are aliases (https://docs.travis-ci.com/user/conditional-builds-stages-jobs/).
jobs:
include:
- stage: "compile"
dist: xenial
script:
- sudo apt-get update -qq
- sudo apt-get install -qq autoconf automake autopoint flex gettext graphviz help2man m4 texinfo
- autoconf --version
- automake --version
- autopoint --version
- dot -V
- gettext --version
- help2man --version
- makeinfo --version
- m4 --version
- git tag -l
# For some reasons, sometimes the checkout does not have any tags,
# so `git describe` fails, so bootstrap fails.
- git describe || git tag v3.0 -m "Fake version 3.0."
- git describe
# Appears to be needed for the following command (https://github.com/AppImage/AppImageKit/issues/511).
- git submodule sync
# Travis makes a shallow clone, but we need it in full to build the ChangeLog and apply the fixes in git-log-fix.
- git fetch --unshallow || true
- ./bootstrap
- if [[ -f ~/.bashrc ]]; then source ~/.bashrc; fi
- ./configure --enable-gcc-warnings CC="$CC" CXX="$CXX" $CONFIGUREFLAGS || { cat config.log && false; }
- make -j2
- make -j2 dist
- dist=$(echo bison*.xz)
# Unfortunately we cannot deterministically know the name of the tarball without the full
# git history (because git describe --abbrev=4 may use more than 4 characters if there are
# conflicts). Besides, one day we would like not to depend on the repository at all in the
# 'test' jobs. So also expose this tarball on a name that only depends on the Travis build
# number.
- sftp [email protected] <<< "put $dist"$'\n'"ln -s $dist bison-$TRAVIS_BUILD_NUMBER.tar.xz"
## ------- ##
## First. ##
## ------- ##
@@ -21,6 +69,7 @@ matrix:
# errors asap.
- name: "GCC 7 -O3"
stage: test
os: linux
dist: xenial
addons:
@@ -33,8 +82,9 @@ matrix:
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7 && CONFIGUREFLAGS='CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3'"
# ASAN is time consuming, and we timeout the 50min granted by
# Travis if we run all the tests in on go. Run in two parts.
# Travis if we run all the tests in one go. Run in two parts.
- name: "Clang 7 libc++ and ASAN part 1"
stage: test
os: linux
dist: xenial
addons:
@@ -51,6 +101,7 @@ matrix:
- MATRIX_EVAL="PART=1 CC='clang-7 -fsanitize=address' CXX='clang++-7 -fsanitize=address -stdlib=libc++'"
- name: "Clang 7 libc++ and ASAN part 2"
stage: test
os: linux
dist: xenial
addons:
@@ -67,6 +118,7 @@ matrix:
- MATRIX_EVAL="PART=2 CC='clang-7 -fsanitize=address' CXX='clang++-7 -fsanitize=address -stdlib=libc++'"
- name: "ICC"
stage: test
os: linux
dist: xenial
env:
@@ -100,6 +152,7 @@ matrix:
# - MATRIX_EVAL="CC='gcc-8 -fsanitize=undefined,address -fno-omit-frame-pointer' CXX='g++-8 -fsanitize=undefined,address -fno-omit-frame-pointer'"
- name: "GCC 6"
stage: test
os: linux
dist: xenial
addons:
@@ -112,6 +165,7 @@ matrix:
- MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
- name: "GCC 5"
stage: test
os: linux
dist: xenial
addons:
@@ -124,6 +178,7 @@ matrix:
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
- name: "GCC 4.9"
stage: test
os: linux
dist: xenial
addons:
@@ -136,6 +191,7 @@ matrix:
- MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
- name: "GCC 4.8"
stage: test
os: linux
dist: xenial
addons:
@@ -148,6 +204,7 @@ matrix:
- MATRIX_EVAL="CC=gcc-4.8 && CXX=g++-4.8"
- name: "GCC 4.7"
stage: test
os: linux
dist: xenial
addons:
@@ -160,6 +217,7 @@ matrix:
- MATRIX_EVAL="CC=gcc-4.7 && CXX=g++-4.7"
- name: "GCC 4.6"
stage: test
os: linux
dist: xenial
addons:
@@ -176,6 +234,7 @@ matrix:
## ------- ##
- name: "Clang 6 -O3 and libc++"
stage: test
os: linux
dist: xenial
addons:
@@ -191,6 +250,7 @@ matrix:
- CONFIGUREFLAGS='CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3'
- name: "Clang 5"
stage: test
os: linux
dist: xenial
addons:
@@ -204,6 +264,7 @@ matrix:
- MATRIX_EVAL="CC='clang-5.0' CXX='clang++-5.0'"
- name: "Clang 4"
stage: test
os: linux
dist: xenial
addons:
@@ -216,6 +277,7 @@ matrix:
- MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0"
- name: "Clang 3.9"
stage: test
os: linux
dist: xenial
addons:
@@ -228,6 +290,7 @@ matrix:
- MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9"
- name: "Clang 3.8"
stage: test
os: linux
dist: xenial
addons:
@@ -241,6 +304,7 @@ matrix:
- MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
- name: "CLang 3.7"
stage: test
os: linux
dist: xenial
addons:
@@ -254,6 +318,7 @@ matrix:
- MATRIX_EVAL="CC=clang-3.7 && CXX=clang++-3.7"
- name: "Clang 3.6"
stage: test
os: linux
dist: xenial
addons:
@@ -267,6 +332,7 @@ matrix:
- MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6"
- name: "Clang 3.5"
stage: test
os: linux
dist: xenial
addons:
@@ -280,6 +346,7 @@ matrix:
- MATRIX_EVAL="CC=clang-3.5 && CXX=clang++-3.5"
- name: "Clang 3.4"
stage: test
os: linux
# Not available on Xenial.
dist: trusty
@@ -290,9 +357,10 @@ matrix:
env:
# No versioned name installed, but beware that Travis installs
# a more modern clang earlier in the default PATH.
- MATRIX_EVAL='CC=/usr/bin/clang && CXX=/usr/bin/clang++ && GETTEXT_VERSION=0.18.3'
- MATRIX_EVAL='CC=/usr/bin/clang && CXX=/usr/bin/clang++'
- name: "Clang 3.3"
stage: test
os: linux
# Not available on Xenial.
dist: trusty
@@ -302,50 +370,56 @@ matrix:
- clang-3.3
env:
# See comment for 3.4.
- MATRIX_EVAL='CC=/usr/bin/clang && CXX=/usr/bin/clang++ && GETTEXT_VERSION=0.18.3'
- MATRIX_EVAL='CC=/usr/bin/clang && CXX=/usr/bin/clang++'
## From https://docs.gitlab.com/ce/ci/ssh_keys/#ssh-keys-when-using-the-docker-executor.
## Applies to Travis too. Applied to all the 'script's (of all the jobs).
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval "$(ssh-agent -s)"
# $SSH_PRIVATE_KEY is multiline. Use $'...' to register its value: $'-----BEGIN OPENSSH PRIVATE KEY-----\nXXXXX...\n...==\n-----END OPENSSH PRIVATE KEY-----'.
- echo "$SSH_PRIVATE_KEY" >/tmp/key.id_rsa
- chmod 600 /tmp/key.id_rsa
- ssh-add /tmp/key.id_rsa </dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo '|1|bpc51UGxoDZjCPiwRlCStW32trI=|rfh6mLoLZv/vAvOVrpZXI1hTLxg= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIR+ckMoJTNXHvAQLHWSfrRnrNJGW2ZR6kr5pBVDGCkz1v1RcQ5rleq0NAt9kS3v4hgnuLiEVnK7KDRzcEH3ikc=' >>~/.ssh/known_hosts
- chmod 600 ~/.ssh/known_hosts
before_install:
# Applies only to the jobs that don't have a 'script', i.e., applies to all the 'test' jobs, but not the 'compile' one.
script:
- eval "$MATRIX_EVAL"
- env
# Beware not too leak $SSH_PRIVATE_KEY.
# - env
- sudo apt-get update -qq
- sudo apt-get install -qq autoconf automake autopoint doxygen flex gettext graphviz help2man m4 texinfo
- sudo apt-get install -qq doxygen flex m4
# Install and activate ICC.
- if [[ $CC == "icc" ]]; then build-aux/install-icc.sh; fi
- if [[ -f ~/.bashrc ]]; then source ~/.bashrc; fi
# Install and activate dmd
# Install and activate dmd.
- mkdir -p ~/dlang && wget https://dlang.org/install.sh -O ~/dlang/install.sh
- source $(source ~/dlang/install.sh dmd -a)
- autoconf --version
- automake --version
- autopoint --version
- $CC --version
- $CXX --version
- dmd --version
- doxygen --version
- flex --version
- gettext --version
- dot -V
- help2man --version
- ld --version
- m4 --version
- makeinfo --version
script:
- git tag -l
# For some reasons, sometimes the checkout does not have any tags,
# so `git describe` fails, so bootstrap fails.
- git describe || git tag v3.0 -m "Fake version 3.0."
- git describe
- if [[ -f ~/.bashrc ]]; then source ~/.bashrc; fi
# Unset this variable, otherwise, Java programs' stderr is cluttered
# with `Picked up _JAVA_OPTIONS: -Xmx2048m -Xms512m`, which makes
# the test suite fail.
- unset _JAVA_OPTIONS
- if [[ $GETTEXT_VERSION ]]; then sed -i -re "s/(AM_GNU_GETTEXT_VERSION).*/\1([$GETTEXT_VERSION])/" configure.ac; fi
- ./bootstrap
# For some reason, gnulib-po/Makefile.in.in is about Gettext 0.19, so it will break here. Override it.
- if [[ $GETTEXT_VERSION ]]; then autopoint --force; fi
- if [[ -f ~/.bashrc ]]; then source ~/.bashrc; fi
- ./configure --enable-gcc-warnings CC="$CC" CXX="$CXX" $CONFIGUREFLAGS || { cat config.log && false; }
- sftp [email protected]:bison-$TRAVIS_BUILD_NUMBER.tar.xz
- tar xf bison-$TRAVIS_BUILD_NUMBER.tar.xz
- dir=$(tar tf bison-$TRAVIS_BUILD_NUMBER.tar.xz | sed 1q)
- cd $dir
- mkdir _build
- cd _build
- ../configure --enable-gcc-warnings CC="$CC" CXX="$CXX" $CONFIGUREFLAGS || { cat config.log && false; }
- make -j2 $MAKE_ARGS
- if test ${PART-1} = 1; then make check VERBOSE=1 TESTSUITEFLAGS=-j2 || { cat test-suite.log && cat tests/testsuite.log && false; }; fi
- if test ${PART-1} = 1; then make maintainer-check-posix VERBOSE=1 TESTSUITEFLAGS=-j2 || { cat tests/testsuite.log && false; }; fi
+13 -11
View File
@@ -1,21 +1,22 @@
GNU Bison NEWS
* Noteworthy changes in release 3.3.91 (2019-05-12) [beta]
* Noteworthy changes in release 3.4 (2019-05-19) [stable]
** Bug fixes
** Deprecated features
Portability issues were fixed.
* Noteworthy changes in release 3.3.90 (2019-04-28) [beta]
The %pure-parser directive is deprecated in favor of '%define api.pure'
since Bison 2.3b (2008-05-27), but no warning was issued; there is one
now. Note that since Bison 2.7 you are strongly encouraged to use
'%define api.pure full' instead of '%define api.pure'.
** New features
*** Colored diagnostics
As an experimental feature, Bison now generates colored diagnostics,
controlled by the new options --color and --style.
As an experimental feature, diagnostics are now colored, controlled by the
new options --color and --style.
Install the libtextstyle library before configuring Bison to use them.
To use them, install the libtextstyle library before configuring Bison.
It is available from
https://alpha.gnu.org/gnu/gettext/
@@ -31,12 +32,13 @@ GNU Bison NEWS
To customize the styles, create a CSS file similar to
/* black-and-white.css */
/* bison-bw.css */
.warning { }
.error { font-weight: 800; text-decoration: underline; }
.note { }
then invoke bison with --style=black-and-white.css.
then invoke bison with --style=bison-bw.css, or set the BISON_STYLE
environment variable to "bison-bw.css".
*** Disabling output
@@ -3620,7 +3622,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
LocalWords: redeclaration sval fcaret reentrant XSLT xsl Wmaybe yyvsp Tedi
LocalWords: pragmas noreturn untyped Rozenman unexpanded Wojciech Polak
LocalWords: Alexandre MERCHANTABILITY yytype emplace ptr automove lvalues
LocalWords: nonterminal yy args Pragma dereference yyformat rhs docdir
LocalWords: nonterminal yy args Pragma dereference yyformat rhs docdir bw
LocalWords: Redeclarations rpcalc Autoconf YFLAGS Makefiles PROG DECL num
LocalWords: Heimbigner AST src ast Makefile srcdir MinGW xxlex XXSTYPE
LocalWords: XXLTYPE strictfp IDEs ffixit fdiagnostics parseable fixits
+2
View File
@@ -33,6 +33,7 @@ Bruce Lilly [email protected]
Bruno Haible [email protected]
Charles-Henri de Boysson [email protected]
Christian Burger [email protected]
Clément Démoulins [email protected]
Colin Daley [email protected]
Cris Bailiff [email protected]
Cris van Pelt [email protected]
@@ -178,6 +179,7 @@ Tom Tromey [email protected]
Tommy Nordgren [email protected]
Troy A. Johnson [email protected]
Tys Lefering [email protected]
Uxio Prego [email protected]
Valentin Tolmer [email protected]
wcventure [email protected]
Victor Khomenko [email protected]
+24
View File
@@ -0,0 +1,24 @@
/* Default styling rules for Bison when doing terminal output.
Copyright (C) 2019 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 <https://www.gnu.org/licenses/>. */
/* This is an experimental feature. The class names may change in the
future. */
.warning { color: purple; }
.error { color: red; }
.note { color: cyan; }
/* Semantic values in Bison's own parser traces. */
.value { color: green; }
-10
View File
@@ -1,10 +0,0 @@
/* CSS style for Bison's diagnostics.
This is an experimental feature. The class names may change in the
future. */
.warning { color: purple; }
.error { color: red; }
.note { color: cyan; }
/* Semantic values in Bison's parser traces. */
.value { color: green; }
+1 -1
View File
@@ -16,7 +16,7 @@
dist_pkgdata_DATA = \
data/README.md \
data/diagnostics.css
data/bison-default.css
skeletonsdir = $(pkgdatadir)/skeletons
dist_skeletons_DATA = \
+1 -1
View File
@@ -218,7 +218,7 @@ m4_define([b4_shared_declarations],
]b4_token_constructor_define[
private:
/// This class is not copyable.
/// This class is not copiable.
]b4_parser_class[ (const ]b4_parser_class[&);
]b4_parser_class[& operator= (const ]b4_parser_class[&);
+11 -8
View File
@@ -11568,7 +11568,7 @@ Instead of using the built-in types you may use the @code{%define} variable
The requirements over your @var{LocationType} are:
@itemize
@item
it must be copyable;
it must be copiable;
@item
in order to compute the (default) value of @code{@@$} in a reduction, the
@@ -11578,7 +11578,7 @@ parser basically runs
@@$.end = @@@var{N}.end; // The location of last right-hand side symbol.
@end example
@noindent
so there must be copyable @code{begin} and @code{end} members;
so there must be copiable @code{begin} and @code{end} members;
@item
alternatively you may redefine the computation of the default location, in
@@ -12416,8 +12416,8 @@ You can create documentation for generated parsers using Javadoc.
Contrary to C parsers, Java parsers do not use global variables; the state
of the parser is always local to an instance of the parser class.
Therefore, all Java parsers are ``pure'', and the @code{%pure-parser} and
@code{%define api.pure} directives do nothing when used in Java.
Therefore, all Java parsers are ``pure'', and the @code{%define api.pure}
directive does nothing when used in Java.
Push parsers are currently unsupported in Java and @code{%define
api.push-pull} have no effect.
@@ -14473,7 +14473,7 @@ London, Department of Computer Science, TR-00-12 (December 2000).
@c LocalWords: YYENABLE bindtextdomain Makefile DEFS CPPFLAGS DBISON DeRemer
@c LocalWords: autoreconf Pennello multisets nondeterminism Generalised baz ACM
@c LocalWords: redeclare automata Dparse localedir datadir XSLT midrule Wno
@c LocalWords: multitable headitem hh basename Doxygen fno filename
@c LocalWords: multitable headitem hh basename Doxygen fno filename gdef
@c LocalWords: doxygen ival sval deftypemethod deallocate pos deftypemethodx
@c LocalWords: Ctor defcv defcvx arg accessors arithmetics CPP ifndef CALCXX
@c LocalWords: lexer's calcxx bool LPAREN RPAREN deallocation cerrno climits
@@ -14494,14 +14494,17 @@ London, Department of Computer Science, TR-00-12 (December 2000).
@c LocalWords: errorVerbose subtype subtypes Wmidrule midrule's src rvalues
@c LocalWords: automove evolutions Wother Wconflicts PNG lookaheads Acc sep
@c LocalWords: xsltproc XSL xsl xhtml html num Wprecedence Werror fcaret gv
@c LocalWords: fdiagnostics setlocale nullptr ast srcdir copyable iff drv
@c LocalWords: fdiagnostics setlocale nullptr ast srcdir iff drv rgbWarning
@c LocalWords: deftypefunx pragma Wnull dereference Wdocumentation elif ish
@c LocalWords: Wdeprecated Wregister noinput yyloc yypos PODs sstream Wsign
@c LocalWords: typename emplace Wconversion Wshorten yacchack reentrancy
@c LocalWords: Relocatability exprs fixit Wyacc parseable fixits ffixit
@c LocalWords: Relocatability exprs fixit Wyacc parseable fixits ffixit svg
@c LocalWords: DNDEBUG cstring Wzero workalike POPL workalikes byacc UCB
@c LocalWords: Penello's Penello Byson Byson's Corbett's CSD TOPLAS PDP
@c LocalWords: Beazley's goyacc ocamlyacc SIGACT SIGPLAN
@c LocalWords: Beazley's goyacc ocamlyacc SIGACT SIGPLAN colorWarning
@c LocalWords: setcolor rgbError colorError rgbNotice colorNotice derror
@c LocalWords: colorOff maincolor inlineraw darkviolet darkcyan dwarning
@c LocalWords: dnotice copiable
@c Local Variables:
@c ispell-dictionary: "american"
+1 -1
View File
@@ -41,7 +41,7 @@ DASH = -
$(AM_V_LEX)rm -f $@ $@.tmp
$(AM_V_at)$(MKDIR_P) %D%
$(AM_V_at)touch $@.tmp
$(AM_V_at) $(LEX) -o %D%/scan.c --header-file=%D%/scan.h $<
$(AM_V_at)$(LEX) -o%D%/scan.c --header-file=%D%/scan.h $(srcdir)/%D%/scan.l
$(AM_V_at)mv $@.tmp $@
# Don't use gnulib's system headers.
+2 -2
View File
@@ -27,10 +27,10 @@ EXTRA_DIST += %D%/calc.test
%D%/calc.d: %D%/calc.y $(dependencies)
$(AM_V_GEN)$(MKDIR_P) %D%
$(AM_V_at)$(BISON) $< -o $@
$(AM_V_at)$(BISON) $(srcdir)/%D%/calc.y -o $@
%D%/calc: %D%/calc.d
$(AM_V_GEN) $(DC) $(DCFLAGS) -of$@ $<
$(AM_V_GEN) $(DC) $(DCFLAGS) -of$@ %D%/calc.d
dist_d_DATA = %D%/calc.y %D%/Makefile %D%/README.md
CLEANFILES += %D%/calc %D%/calc.[do]
+2 -2
View File
@@ -27,10 +27,10 @@ EXTRA_DIST += %D%/Calc.test
%D%/Calc.java: %D%/Calc.y $(dependencies)
$(AM_V_GEN)$(MKDIR_P) %D%
$(AM_V_at)$(BISON) $< -o $@
$(AM_V_at)$(BISON) $(srcdir)/%D%/Calc.y -o $@
%D%/Calc.class: %D%/Calc.java
$(AM_V_GEN) $(SHELL) $(top_builddir)/javacomp.sh $<
$(AM_V_GEN) $(SHELL) $(top_builddir)/javacomp.sh %D%/Calc.java
dist_java_DATA = %D%/Calc.y %D%/Makefile %D%/README.md
CLEANFILES += %D%/*.class %D%/Calc.java
+1 -1
Submodule gnulib updated: 03752516b2...d654989d8b
+4 -5
View File
@@ -255,14 +255,13 @@ complain_init_color (void)
|| color_mode == color_html
|| (color_mode == color_tty && isatty (STDERR_FILENO)))
{
style_file_prepare ("BISON_DIAGNOSTICS_STYLE", NULL,
pkgdatadir (),
"diagnostics.css");
style_file_prepare ("BISON_STYLE", NULL, pkgdatadir (),
"bison-default.css");
/* As a fallback, use the default in the current directory. */
struct stat statbuf;
if ((style_file_name == NULL || stat (style_file_name, &statbuf) < 0)
&& stat ("diagnostics.css", &statbuf) == 0)
style_file_name = "diagnostics.css";
&& stat ("bison-default.css", &statbuf) == 0)
style_file_name = "bison-default.css";
}
else
/* No styling. */
+362 -338
View File
File diff suppressed because it is too large Load Diff
+37 -34
View File
@@ -1,4 +1,4 @@
/* A Bison parser, made by GNU Bison 3.3.2.153-f5a4-dirty. */
/* A Bison parser, made by GNU Bison 3.4. */
/* Bison interface for Yacc-like parsers in C
@@ -108,32 +108,33 @@ extern int gram_debug;
PERCENT_NO_LINES = 285,
PERCENT_NONDETERMINISTIC_PARSER = 286,
PERCENT_OUTPUT = 287,
PERCENT_REQUIRE = 288,
PERCENT_SKELETON = 289,
PERCENT_START = 290,
PERCENT_TOKEN_TABLE = 291,
PERCENT_VERBOSE = 292,
PERCENT_YACC = 293,
BRACED_CODE = 294,
BRACED_PREDICATE = 295,
BRACKETED_ID = 296,
CHAR = 297,
COLON = 298,
EPILOGUE = 299,
EQUAL = 300,
ID = 301,
ID_COLON = 302,
PERCENT_PERCENT = 303,
PIPE = 304,
PROLOGUE = 305,
SEMICOLON = 306,
TAG = 307,
TAG_ANY = 308,
TAG_NONE = 309,
INT = 310,
PERCENT_PARAM = 311,
PERCENT_UNION = 312,
PERCENT_EMPTY = 313
PERCENT_PURE_PARSER = 288,
PERCENT_REQUIRE = 289,
PERCENT_SKELETON = 290,
PERCENT_START = 291,
PERCENT_TOKEN_TABLE = 292,
PERCENT_VERBOSE = 293,
PERCENT_YACC = 294,
BRACED_CODE = 295,
BRACED_PREDICATE = 296,
BRACKETED_ID = 297,
CHAR = 298,
COLON = 299,
EPILOGUE = 300,
EQUAL = 301,
ID = 302,
ID_COLON = 303,
PERCENT_PERCENT = 304,
PIPE = 305,
PROLOGUE = 306,
SEMICOLON = 307,
TAG = 308,
TAG_ANY = 309,
TAG_NONE = 310,
INT = 311,
PERCENT_PARAM = 312,
PERCENT_UNION = 313,
PERCENT_EMPTY = 314
};
#endif
@@ -159,9 +160,9 @@ union GRAM_STYPE
/* "integer" */
int INT;
/* int.opt */
int yytype_80;
int yytype_81;
/* named_ref.opt */
named_ref* yytype_92;
named_ref* yytype_93;
/* "%param" */
param_type PERCENT_PARAM;
/* token_decl */
@@ -177,7 +178,7 @@ union GRAM_STYPE
/* string_as_id */
symbol* string_as_id;
/* string_as_id.opt */
symbol* yytype_99;
symbol* yytype_100;
/* generic_symlist */
symbol_list* generic_symlist;
/* generic_symlist_item */
@@ -187,15 +188,15 @@ union GRAM_STYPE
/* token_decls */
symbol_list* token_decls;
/* token_decl.1 */
symbol_list* yytype_78;
symbol_list* yytype_79;
/* token_decls_for_prec */
symbol_list* token_decls_for_prec;
/* token_decl_for_prec.1 */
symbol_list* yytype_82;
symbol_list* yytype_83;
/* symbol_decls */
symbol_list* symbol_decls;
/* symbol_decl.1 */
symbol_list* yytype_85;
symbol_list* yytype_86;
/* "%error-verbose" */
uniqstr PERCENT_ERROR_VERBOSE;
/* "%<flag>" */
@@ -204,6 +205,8 @@ union GRAM_STYPE
uniqstr PERCENT_FILE_PREFIX;
/* "%name-prefix" */
uniqstr PERCENT_NAME_PREFIX;
/* "%pure-parser" */
uniqstr PERCENT_PURE_PARSER;
/* "%yacc" */
uniqstr PERCENT_YACC;
/* "[identifier]" */
@@ -215,7 +218,7 @@ union GRAM_STYPE
/* "<tag>" */
uniqstr TAG;
/* tag.opt */
uniqstr yytype_72;
uniqstr yytype_73;
/* tag */
uniqstr tag;
/* variable */
+19 -1
View File
@@ -94,6 +94,9 @@
static void handle_name_prefix (location const *loc,
char const *directive, char const *value);
/* Handle a %pure-parser directive. */
static void handle_pure_parser (location const *loc, char const *directive);
/* Handle a %require directive. */
static void handle_require (location const *loc, char const *version);
@@ -181,6 +184,7 @@
PERCENT_NONDETERMINISTIC_PARSER
"%nondeterministic-parser"
PERCENT_OUTPUT "%output"
PERCENT_PURE_PARSER "%pure-parser"
PERCENT_REQUIRE "%require"
PERCENT_SKELETON "%skeleton"
PERCENT_START "%start"
@@ -219,7 +223,7 @@
%type <uniqstr>
BRACKETED_ID ID ID_COLON
PERCENT_ERROR_VERBOSE PERCENT_FILE_PREFIX PERCENT_FLAG PERCENT_NAME_PREFIX
PERCENT_YACC
PERCENT_PURE_PARSER PERCENT_YACC
TAG tag tag.opt variable
%printer { fputs ($$, yyo); } <uniqstr>
%printer { fprintf (yyo, "[%s]", $$); } BRACKETED_ID
@@ -343,6 +347,7 @@ prologue_declaration:
| "%nondeterministic-parser" { nondeterministic_parser = true; }
| "%output" STRING { spec_outfile = $2; }
| "%param" { current_param = $1; } params { current_param = param_none; }
| "%pure-parser" { handle_pure_parser (&@$, $1); }
| "%require" STRING { handle_require (&@2, $2); }
| "%skeleton" STRING { handle_skeleton (&@2, $2); }
| "%token-table" { token_table_flag = true; }
@@ -910,6 +915,7 @@ handle_file_prefix (location const *loc,
deprecated_directive (dir_loc, directive, "%file-prefix");
}
static void
handle_name_prefix (location const *loc,
char const *directive, char const *value)
@@ -944,6 +950,16 @@ handle_name_prefix (location const *loc,
}
static void
handle_pure_parser (location const *loc, char const *directive)
{
bison_directive (loc, directive);
deprecated_directive (loc, directive, "%define api.pure");
muscle_percent_define_insert ("api.pure", *loc, muscle_keyword, "",
MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE);
}
static void
handle_require (location const *loc, char const *version)
{
@@ -1006,6 +1022,7 @@ handle_skeleton (location const *loc, char const *skel)
skeleton_arg (skeleton_user, grammar_prio, *loc);
}
static void
handle_yacc (location const *loc, char const *directive)
{
@@ -1026,6 +1043,7 @@ handle_yacc (location const *loc, char const *directive)
deprecated_directive (loc, directive, "%fixed-output-files");
}
static void
gram_error (location const *loc, char const *msg)
{
+4 -2
View File
@@ -252,7 +252,6 @@ eqopt ({sp}=)?
"%prec" return PERCENT_PREC;
"%precedence" return BISON_DIRECTIVE (PRECEDENCE);
"%printer" return BISON_DIRECTIVE (PRINTER);
"%pure-parser" RETURN_PERCENT_FLAG ("api.pure");
"%require" return BISON_DIRECTIVE (REQUIRE);
"%right" return PERCENT_RIGHT;
"%skeleton" return BISON_DIRECTIVE (SKELETON);
@@ -265,6 +264,10 @@ eqopt ({sp}=)?
"%verbose" return BISON_DIRECTIVE (VERBOSE);
"%yacc" RETURN_VALUE (PERCENT_YACC, uniqstr_new (yytext));
/* Deprecated since Bison 2.3b (2008-05-27), but the warning is
issued only since Bison 3.4. */
"%pure"[-_]"parser" RETURN_VALUE (PERCENT_PURE_PARSER, uniqstr_new (yytext));
/* Deprecated since Bison 3.0 (2013-07-25), but the warning is
issued only since Bison 3.3. */
"%error-verbose" RETURN_VALUE (PERCENT_ERROR_VERBOSE, uniqstr_new (yytext));
@@ -282,7 +285,6 @@ eqopt ({sp}=)?
"%no"[-_]"default"[-_]"prec" DEPRECATED ("%no-default-prec");
"%no"[-_]"lines" DEPRECATED ("%no-lines");
"%output"{eqopt} DEPRECATED ("%output");
"%pure"[-_]"parser" DEPRECATED ("%pure-parser");
"%token"[-_]"table" DEPRECATED ("%token-table");
"%"{id} {
+1 -1
View File
@@ -1870,7 +1870,7 @@ AT_DATA_GRAMMAR([input.y],
[[
%define parse.error verbose
%debug
%pure-parser
%define api.pure
%code {
# include <stdio.h>
# include <stdlib.h>
+3 -4
View File
@@ -2556,8 +2556,8 @@ input.y:23.1-9: warning: deprecated directive: '%no_lines', use '%no-lines' [-Wd
fix-it:"input.y":{23:1-23:10}:"%no-lines"
input.y:24.1-9: warning: deprecated directive: '%output =', use '%output' [-Wdeprecated]
fix-it:"input.y":{24:1-24:10}:"%output"
input.y:25.1-12: warning: deprecated directive: '%pure_parser', use '%pure-parser' [-Wdeprecated]
fix-it:"input.y":{25:1-25:13}:"%pure-parser"
input.y:25.1-12: warning: deprecated directive: '%pure_parser', use '%define api.pure' [-Wdeprecated]
fix-it:"input.y":{25:1-25:13}:"%define api.pure"
input.y:26.1-12: warning: deprecated directive: '%token_table', use '%token-table' [-Wdeprecated]
fix-it:"input.y":{26:1-26:13}:"%token-table"
input.y:27.1-14: warning: %define variable 'parse.error' redefined [-Wother]
@@ -2603,7 +2603,7 @@ AT_CHECK([sed -e '1,8d' input.y], [],
%no-default-prec
%no-lines
%output "output.c"
%pure-parser
%define api.pure
%token-table
%glr-parser
%%
@@ -2678,7 +2678,6 @@ AT_DATA_GRAMMAR([[input.y]],
%no-default-prec
%no-lines
%output "foo"
%pure-parser
%token-table
%% exp : '0'
]])
+10
View File
@@ -90,7 +90,17 @@ m4_define([_AT_SYNCLINES_COMPILE],
# syncline.c:4:2: error: #error "4"
# #error "4"
# ^~~~~
#
# GCC 9 displays a left-hand margin with the line number:
#
# syncline.c: In function 'foo':
# syncline.c:4:2: error: #error "4"
# 4 | #error "4"
# | ^~~~~
AT_CHECK([[$PERL -p -0777 - stderr <<\EOF
# Remove left-hand margin.
s/^[\d ]{6}\| //gm;
# 1. Remove useless lines.
# distcc clutter.