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. # 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= 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: 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. ## ## First. ##
## ------- ## ## ------- ##
@@ -21,6 +69,7 @@ matrix:
# errors asap. # errors asap.
- name: "GCC 7 -O3" - name: "GCC 7 -O3"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -33,8 +82,9 @@ matrix:
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7 && CONFIGUREFLAGS='CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3'" - 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 # 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" - name: "Clang 7 libc++ and ASAN part 1"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -51,6 +101,7 @@ matrix:
- MATRIX_EVAL="PART=1 CC='clang-7 -fsanitize=address' CXX='clang++-7 -fsanitize=address -stdlib=libc++'" - MATRIX_EVAL="PART=1 CC='clang-7 -fsanitize=address' CXX='clang++-7 -fsanitize=address -stdlib=libc++'"
- name: "Clang 7 libc++ and ASAN part 2" - name: "Clang 7 libc++ and ASAN part 2"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -67,6 +118,7 @@ matrix:
- MATRIX_EVAL="PART=2 CC='clang-7 -fsanitize=address' CXX='clang++-7 -fsanitize=address -stdlib=libc++'" - MATRIX_EVAL="PART=2 CC='clang-7 -fsanitize=address' CXX='clang++-7 -fsanitize=address -stdlib=libc++'"
- name: "ICC" - name: "ICC"
stage: test
os: linux os: linux
dist: xenial dist: xenial
env: 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'" # - 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" - name: "GCC 6"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -112,6 +165,7 @@ matrix:
- MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
- name: "GCC 5" - name: "GCC 5"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -124,6 +178,7 @@ matrix:
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
- name: "GCC 4.9" - name: "GCC 4.9"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -136,6 +191,7 @@ matrix:
- MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
- name: "GCC 4.8" - name: "GCC 4.8"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -148,6 +204,7 @@ matrix:
- MATRIX_EVAL="CC=gcc-4.8 && CXX=g++-4.8" - MATRIX_EVAL="CC=gcc-4.8 && CXX=g++-4.8"
- name: "GCC 4.7" - name: "GCC 4.7"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -160,6 +217,7 @@ matrix:
- MATRIX_EVAL="CC=gcc-4.7 && CXX=g++-4.7" - MATRIX_EVAL="CC=gcc-4.7 && CXX=g++-4.7"
- name: "GCC 4.6" - name: "GCC 4.6"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -176,6 +234,7 @@ matrix:
## ------- ## ## ------- ##
- name: "Clang 6 -O3 and libc++" - name: "Clang 6 -O3 and libc++"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -191,6 +250,7 @@ matrix:
- CONFIGUREFLAGS='CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3' - CONFIGUREFLAGS='CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3'
- name: "Clang 5" - name: "Clang 5"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -204,6 +264,7 @@ matrix:
- MATRIX_EVAL="CC='clang-5.0' CXX='clang++-5.0'" - MATRIX_EVAL="CC='clang-5.0' CXX='clang++-5.0'"
- name: "Clang 4" - name: "Clang 4"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -216,6 +277,7 @@ matrix:
- MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0" - MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0"
- name: "Clang 3.9" - name: "Clang 3.9"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -228,6 +290,7 @@ matrix:
- MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9" - MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9"
- name: "Clang 3.8" - name: "Clang 3.8"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -241,6 +304,7 @@ matrix:
- MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8" - MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
- name: "CLang 3.7" - name: "CLang 3.7"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -254,6 +318,7 @@ matrix:
- MATRIX_EVAL="CC=clang-3.7 && CXX=clang++-3.7" - MATRIX_EVAL="CC=clang-3.7 && CXX=clang++-3.7"
- name: "Clang 3.6" - name: "Clang 3.6"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -267,6 +332,7 @@ matrix:
- MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6" - MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6"
- name: "Clang 3.5" - name: "Clang 3.5"
stage: test
os: linux os: linux
dist: xenial dist: xenial
addons: addons:
@@ -280,6 +346,7 @@ matrix:
- MATRIX_EVAL="CC=clang-3.5 && CXX=clang++-3.5" - MATRIX_EVAL="CC=clang-3.5 && CXX=clang++-3.5"
- name: "Clang 3.4" - name: "Clang 3.4"
stage: test
os: linux os: linux
# Not available on Xenial. # Not available on Xenial.
dist: trusty dist: trusty
@@ -290,9 +357,10 @@ matrix:
env: env:
# No versioned name installed, but beware that Travis installs # No versioned name installed, but beware that Travis installs
# a more modern clang earlier in the default PATH. # 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" - name: "Clang 3.3"
stage: test
os: linux os: linux
# Not available on Xenial. # Not available on Xenial.
dist: trusty dist: trusty
@@ -302,50 +370,56 @@ matrix:
- clang-3.3 - clang-3.3
env: env:
# See comment for 3.4. # 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" - eval "$MATRIX_EVAL"
- env # Beware not too leak $SSH_PRIVATE_KEY.
# - env
- sudo apt-get update -qq - 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 [[ $CC == "icc" ]]; then build-aux/install-icc.sh; fi
- if [[ -f ~/.bashrc ]]; then source ~/.bashrc; 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 - mkdir -p ~/dlang && wget https://dlang.org/install.sh -O ~/dlang/install.sh
- source $(source ~/dlang/install.sh dmd -a) - source $(source ~/dlang/install.sh dmd -a)
- autoconf --version
- automake --version
- autopoint --version
- $CC --version - $CC --version
- $CXX --version - $CXX --version
- dmd --version - dmd --version
- doxygen --version - doxygen --version
- flex --version - flex --version
- gettext --version
- dot -V
- help2man --version
- ld --version - ld --version
- m4 --version - m4 --version
- makeinfo --version
script: - if [[ -f ~/.bashrc ]]; then source ~/.bashrc; fi
- 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
# Unset this variable, otherwise, Java programs' stderr is cluttered # Unset this variable, otherwise, Java programs' stderr is cluttered
# with `Picked up _JAVA_OPTIONS: -Xmx2048m -Xms512m`, which makes # with `Picked up _JAVA_OPTIONS: -Xmx2048m -Xms512m`, which makes
# the test suite fail. # the test suite fail.
- unset _JAVA_OPTIONS - unset _JAVA_OPTIONS
- if [[ $GETTEXT_VERSION ]]; then sed -i -re "s/(AM_GNU_GETTEXT_VERSION).*/\1([$GETTEXT_VERSION])/" configure.ac; fi - sftp [email protected]:bison-$TRAVIS_BUILD_NUMBER.tar.xz
- ./bootstrap - tar xf bison-$TRAVIS_BUILD_NUMBER.tar.xz
# For some reason, gnulib-po/Makefile.in.in is about Gettext 0.19, so it will break here. Override it. - dir=$(tar tf bison-$TRAVIS_BUILD_NUMBER.tar.xz | sed 1q)
- if [[ $GETTEXT_VERSION ]]; then autopoint --force; fi - cd $dir
- if [[ -f ~/.bashrc ]]; then source ~/.bashrc; fi - mkdir _build
- ./configure --enable-gcc-warnings CC="$CC" CXX="$CXX" $CONFIGUREFLAGS || { cat config.log && false; } - cd _build
- ../configure --enable-gcc-warnings CC="$CC" CXX="$CXX" $CONFIGUREFLAGS || { cat config.log && false; }
- make -j2 $MAKE_ARGS - 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 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 - 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 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. 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
* Noteworthy changes in release 3.3.90 (2019-04-28) [beta] now. Note that since Bison 2.7 you are strongly encouraged to use
'%define api.pure full' instead of '%define api.pure'.
** New features ** New features
*** Colored diagnostics *** Colored diagnostics
As an experimental feature, Bison now generates colored diagnostics, As an experimental feature, diagnostics are now colored, controlled by the
controlled by the new options --color and --style. 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 It is available from
https://alpha.gnu.org/gnu/gettext/ https://alpha.gnu.org/gnu/gettext/
@@ -31,12 +32,13 @@ GNU Bison NEWS
To customize the styles, create a CSS file similar to To customize the styles, create a CSS file similar to
/* black-and-white.css */ /* bison-bw.css */
.warning { } .warning { }
.error { font-weight: 800; text-decoration: underline; } .error { font-weight: 800; text-decoration: underline; }
.note { } .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 *** 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: redeclaration sval fcaret reentrant XSLT xsl Wmaybe yyvsp Tedi
LocalWords: pragmas noreturn untyped Rozenman unexpanded Wojciech Polak LocalWords: pragmas noreturn untyped Rozenman unexpanded Wojciech Polak
LocalWords: Alexandre MERCHANTABILITY yytype emplace ptr automove lvalues 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: Redeclarations rpcalc Autoconf YFLAGS Makefiles PROG DECL num
LocalWords: Heimbigner AST src ast Makefile srcdir MinGW xxlex XXSTYPE LocalWords: Heimbigner AST src ast Makefile srcdir MinGW xxlex XXSTYPE
LocalWords: XXLTYPE strictfp IDEs ffixit fdiagnostics parseable fixits LocalWords: XXLTYPE strictfp IDEs ffixit fdiagnostics parseable fixits
+2
View File
@@ -33,6 +33,7 @@ Bruce Lilly [email protected]
Bruno Haible [email protected] Bruno Haible [email protected]
Charles-Henri de Boysson [email protected] Charles-Henri de Boysson [email protected]
Christian Burger [email protected] Christian Burger [email protected]
Clément Démoulins [email protected]
Colin Daley [email protected] Colin Daley [email protected]
Cris Bailiff [email protected] Cris Bailiff [email protected]
Cris van Pelt [email protected] Cris van Pelt [email protected]
@@ -178,6 +179,7 @@ Tom Tromey [email protected]
Tommy Nordgren [email protected] Tommy Nordgren [email protected]
Troy A. Johnson [email protected] Troy A. Johnson [email protected]
Tys Lefering [email protected] Tys Lefering [email protected]
Uxio Prego [email protected]
Valentin Tolmer [email protected] Valentin Tolmer [email protected]
wcventure [email protected] wcventure [email protected]
Victor Khomenko [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 = \ dist_pkgdata_DATA = \
data/README.md \ data/README.md \
data/diagnostics.css data/bison-default.css
skeletonsdir = $(pkgdatadir)/skeletons skeletonsdir = $(pkgdatadir)/skeletons
dist_skeletons_DATA = \ dist_skeletons_DATA = \
+1 -1
View File
@@ -218,7 +218,7 @@ m4_define([b4_shared_declarations],
]b4_token_constructor_define[ ]b4_token_constructor_define[
private: private:
/// This class is not copyable. /// This class is not copiable.
]b4_parser_class[ (const ]b4_parser_class[&); ]b4_parser_class[ (const ]b4_parser_class[&);
]b4_parser_class[& operator= (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: The requirements over your @var{LocationType} are:
@itemize @itemize
@item @item
it must be copyable; it must be copiable;
@item @item
in order to compute the (default) value of @code{@@$} in a reduction, the 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 = @@@var{N}.end; // The location of last right-hand side symbol.
@end example @end example
@noindent @noindent
so there must be copyable @code{begin} and @code{end} members; so there must be copiable @code{begin} and @code{end} members;
@item @item
alternatively you may redefine the computation of the default location, in 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 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. 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 Therefore, all Java parsers are ``pure'', and the @code{%define api.pure}
@code{%define api.pure} directives do nothing when used in Java. directive does nothing when used in Java.
Push parsers are currently unsupported in Java and @code{%define Push parsers are currently unsupported in Java and @code{%define
api.push-pull} have no effect. 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: YYENABLE bindtextdomain Makefile DEFS CPPFLAGS DBISON DeRemer
@c LocalWords: autoreconf Pennello multisets nondeterminism Generalised baz ACM @c LocalWords: autoreconf Pennello multisets nondeterminism Generalised baz ACM
@c LocalWords: redeclare automata Dparse localedir datadir XSLT midrule Wno @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: doxygen ival sval deftypemethod deallocate pos deftypemethodx
@c LocalWords: Ctor defcv defcvx arg accessors arithmetics CPP ifndef CALCXX @c LocalWords: Ctor defcv defcvx arg accessors arithmetics CPP ifndef CALCXX
@c LocalWords: lexer's calcxx bool LPAREN RPAREN deallocation cerrno climits @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: errorVerbose subtype subtypes Wmidrule midrule's src rvalues
@c LocalWords: automove evolutions Wother Wconflicts PNG lookaheads Acc sep @c LocalWords: automove evolutions Wother Wconflicts PNG lookaheads Acc sep
@c LocalWords: xsltproc XSL xsl xhtml html num Wprecedence Werror fcaret gv @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: deftypefunx pragma Wnull dereference Wdocumentation elif ish
@c LocalWords: Wdeprecated Wregister noinput yyloc yypos PODs sstream Wsign @c LocalWords: Wdeprecated Wregister noinput yyloc yypos PODs sstream Wsign
@c LocalWords: typename emplace Wconversion Wshorten yacchack reentrancy @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: DNDEBUG cstring Wzero workalike POPL workalikes byacc UCB
@c LocalWords: Penello's Penello Byson Byson's Corbett's CSD TOPLAS PDP @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 Local Variables:
@c ispell-dictionary: "american" @c ispell-dictionary: "american"
+1 -1
View File
@@ -41,7 +41,7 @@ DASH = -
$(AM_V_LEX)rm -f $@ $@.tmp $(AM_V_LEX)rm -f $@ $@.tmp
$(AM_V_at)$(MKDIR_P) %D% $(AM_V_at)$(MKDIR_P) %D%
$(AM_V_at)touch $@.tmp $(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 $@ $(AM_V_at)mv $@.tmp $@
# Don't use gnulib's system headers. # 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) %D%/calc.d: %D%/calc.y $(dependencies)
$(AM_V_GEN)$(MKDIR_P) %D% $(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 %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 dist_d_DATA = %D%/calc.y %D%/Makefile %D%/README.md
CLEANFILES += %D%/calc %D%/calc.[do] 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) %D%/Calc.java: %D%/Calc.y $(dependencies)
$(AM_V_GEN)$(MKDIR_P) %D% $(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 %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 dist_java_DATA = %D%/Calc.y %D%/Makefile %D%/README.md
CLEANFILES += %D%/*.class %D%/Calc.java 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_html
|| (color_mode == color_tty && isatty (STDERR_FILENO))) || (color_mode == color_tty && isatty (STDERR_FILENO)))
{ {
style_file_prepare ("BISON_DIAGNOSTICS_STYLE", NULL, style_file_prepare ("BISON_STYLE", NULL, pkgdatadir (),
pkgdatadir (), "bison-default.css");
"diagnostics.css");
/* As a fallback, use the default in the current directory. */ /* As a fallback, use the default in the current directory. */
struct stat statbuf; struct stat statbuf;
if ((style_file_name == NULL || stat (style_file_name, &statbuf) < 0) if ((style_file_name == NULL || stat (style_file_name, &statbuf) < 0)
&& stat ("diagnostics.css", &statbuf) == 0) && stat ("bison-default.css", &statbuf) == 0)
style_file_name = "diagnostics.css"; style_file_name = "bison-default.css";
} }
else else
/* No styling. */ /* 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 /* Bison interface for Yacc-like parsers in C
@@ -108,32 +108,33 @@ extern int gram_debug;
PERCENT_NO_LINES = 285, PERCENT_NO_LINES = 285,
PERCENT_NONDETERMINISTIC_PARSER = 286, PERCENT_NONDETERMINISTIC_PARSER = 286,
PERCENT_OUTPUT = 287, PERCENT_OUTPUT = 287,
PERCENT_REQUIRE = 288, PERCENT_PURE_PARSER = 288,
PERCENT_SKELETON = 289, PERCENT_REQUIRE = 289,
PERCENT_START = 290, PERCENT_SKELETON = 290,
PERCENT_TOKEN_TABLE = 291, PERCENT_START = 291,
PERCENT_VERBOSE = 292, PERCENT_TOKEN_TABLE = 292,
PERCENT_YACC = 293, PERCENT_VERBOSE = 293,
BRACED_CODE = 294, PERCENT_YACC = 294,
BRACED_PREDICATE = 295, BRACED_CODE = 295,
BRACKETED_ID = 296, BRACED_PREDICATE = 296,
CHAR = 297, BRACKETED_ID = 297,
COLON = 298, CHAR = 298,
EPILOGUE = 299, COLON = 299,
EQUAL = 300, EPILOGUE = 300,
ID = 301, EQUAL = 301,
ID_COLON = 302, ID = 302,
PERCENT_PERCENT = 303, ID_COLON = 303,
PIPE = 304, PERCENT_PERCENT = 304,
PROLOGUE = 305, PIPE = 305,
SEMICOLON = 306, PROLOGUE = 306,
TAG = 307, SEMICOLON = 307,
TAG_ANY = 308, TAG = 308,
TAG_NONE = 309, TAG_ANY = 309,
INT = 310, TAG_NONE = 310,
PERCENT_PARAM = 311, INT = 311,
PERCENT_UNION = 312, PERCENT_PARAM = 312,
PERCENT_EMPTY = 313 PERCENT_UNION = 313,
PERCENT_EMPTY = 314
}; };
#endif #endif
@@ -159,9 +160,9 @@ union GRAM_STYPE
/* "integer" */ /* "integer" */
int INT; int INT;
/* int.opt */ /* int.opt */
int yytype_80; int yytype_81;
/* named_ref.opt */ /* named_ref.opt */
named_ref* yytype_92; named_ref* yytype_93;
/* "%param" */ /* "%param" */
param_type PERCENT_PARAM; param_type PERCENT_PARAM;
/* token_decl */ /* token_decl */
@@ -177,7 +178,7 @@ union GRAM_STYPE
/* string_as_id */ /* string_as_id */
symbol* string_as_id; symbol* string_as_id;
/* string_as_id.opt */ /* string_as_id.opt */
symbol* yytype_99; symbol* yytype_100;
/* generic_symlist */ /* generic_symlist */
symbol_list* generic_symlist; symbol_list* generic_symlist;
/* generic_symlist_item */ /* generic_symlist_item */
@@ -187,15 +188,15 @@ union GRAM_STYPE
/* token_decls */ /* token_decls */
symbol_list* token_decls; symbol_list* token_decls;
/* token_decl.1 */ /* token_decl.1 */
symbol_list* yytype_78; symbol_list* yytype_79;
/* token_decls_for_prec */ /* token_decls_for_prec */
symbol_list* token_decls_for_prec; symbol_list* token_decls_for_prec;
/* token_decl_for_prec.1 */ /* token_decl_for_prec.1 */
symbol_list* yytype_82; symbol_list* yytype_83;
/* symbol_decls */ /* symbol_decls */
symbol_list* symbol_decls; symbol_list* symbol_decls;
/* symbol_decl.1 */ /* symbol_decl.1 */
symbol_list* yytype_85; symbol_list* yytype_86;
/* "%error-verbose" */ /* "%error-verbose" */
uniqstr PERCENT_ERROR_VERBOSE; uniqstr PERCENT_ERROR_VERBOSE;
/* "%<flag>" */ /* "%<flag>" */
@@ -204,6 +205,8 @@ union GRAM_STYPE
uniqstr PERCENT_FILE_PREFIX; uniqstr PERCENT_FILE_PREFIX;
/* "%name-prefix" */ /* "%name-prefix" */
uniqstr PERCENT_NAME_PREFIX; uniqstr PERCENT_NAME_PREFIX;
/* "%pure-parser" */
uniqstr PERCENT_PURE_PARSER;
/* "%yacc" */ /* "%yacc" */
uniqstr PERCENT_YACC; uniqstr PERCENT_YACC;
/* "[identifier]" */ /* "[identifier]" */
@@ -215,7 +218,7 @@ union GRAM_STYPE
/* "<tag>" */ /* "<tag>" */
uniqstr TAG; uniqstr TAG;
/* tag.opt */ /* tag.opt */
uniqstr yytype_72; uniqstr yytype_73;
/* tag */ /* tag */
uniqstr tag; uniqstr tag;
/* variable */ /* variable */
+19 -1
View File
@@ -94,6 +94,9 @@
static void handle_name_prefix (location const *loc, static void handle_name_prefix (location const *loc,
char const *directive, char const *value); 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. */ /* Handle a %require directive. */
static void handle_require (location const *loc, char const *version); static void handle_require (location const *loc, char const *version);
@@ -181,6 +184,7 @@
PERCENT_NONDETERMINISTIC_PARSER PERCENT_NONDETERMINISTIC_PARSER
"%nondeterministic-parser" "%nondeterministic-parser"
PERCENT_OUTPUT "%output" PERCENT_OUTPUT "%output"
PERCENT_PURE_PARSER "%pure-parser"
PERCENT_REQUIRE "%require" PERCENT_REQUIRE "%require"
PERCENT_SKELETON "%skeleton" PERCENT_SKELETON "%skeleton"
PERCENT_START "%start" PERCENT_START "%start"
@@ -219,7 +223,7 @@
%type <uniqstr> %type <uniqstr>
BRACKETED_ID ID ID_COLON BRACKETED_ID ID ID_COLON
PERCENT_ERROR_VERBOSE PERCENT_FILE_PREFIX PERCENT_FLAG PERCENT_NAME_PREFIX PERCENT_ERROR_VERBOSE PERCENT_FILE_PREFIX PERCENT_FLAG PERCENT_NAME_PREFIX
PERCENT_YACC PERCENT_PURE_PARSER PERCENT_YACC
TAG tag tag.opt variable TAG tag tag.opt variable
%printer { fputs ($$, yyo); } <uniqstr> %printer { fputs ($$, yyo); } <uniqstr>
%printer { fprintf (yyo, "[%s]", $$); } BRACKETED_ID %printer { fprintf (yyo, "[%s]", $$); } BRACKETED_ID
@@ -343,6 +347,7 @@ prologue_declaration:
| "%nondeterministic-parser" { nondeterministic_parser = true; } | "%nondeterministic-parser" { nondeterministic_parser = true; }
| "%output" STRING { spec_outfile = $2; } | "%output" STRING { spec_outfile = $2; }
| "%param" { current_param = $1; } params { current_param = param_none; } | "%param" { current_param = $1; } params { current_param = param_none; }
| "%pure-parser" { handle_pure_parser (&@$, $1); }
| "%require" STRING { handle_require (&@2, $2); } | "%require" STRING { handle_require (&@2, $2); }
| "%skeleton" STRING { handle_skeleton (&@2, $2); } | "%skeleton" STRING { handle_skeleton (&@2, $2); }
| "%token-table" { token_table_flag = true; } | "%token-table" { token_table_flag = true; }
@@ -910,6 +915,7 @@ handle_file_prefix (location const *loc,
deprecated_directive (dir_loc, directive, "%file-prefix"); deprecated_directive (dir_loc, directive, "%file-prefix");
} }
static void static void
handle_name_prefix (location const *loc, handle_name_prefix (location const *loc,
char const *directive, char const *value) 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 static void
handle_require (location const *loc, char const *version) 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); skeleton_arg (skeleton_user, grammar_prio, *loc);
} }
static void static void
handle_yacc (location const *loc, char const *directive) 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"); deprecated_directive (loc, directive, "%fixed-output-files");
} }
static void static void
gram_error (location const *loc, char const *msg) gram_error (location const *loc, char const *msg)
{ {
+4 -2
View File
@@ -252,7 +252,6 @@ eqopt ({sp}=)?
"%prec" return PERCENT_PREC; "%prec" return PERCENT_PREC;
"%precedence" return BISON_DIRECTIVE (PRECEDENCE); "%precedence" return BISON_DIRECTIVE (PRECEDENCE);
"%printer" return BISON_DIRECTIVE (PRINTER); "%printer" return BISON_DIRECTIVE (PRINTER);
"%pure-parser" RETURN_PERCENT_FLAG ("api.pure");
"%require" return BISON_DIRECTIVE (REQUIRE); "%require" return BISON_DIRECTIVE (REQUIRE);
"%right" return PERCENT_RIGHT; "%right" return PERCENT_RIGHT;
"%skeleton" return BISON_DIRECTIVE (SKELETON); "%skeleton" return BISON_DIRECTIVE (SKELETON);
@@ -265,6 +264,10 @@ eqopt ({sp}=)?
"%verbose" return BISON_DIRECTIVE (VERBOSE); "%verbose" return BISON_DIRECTIVE (VERBOSE);
"%yacc" RETURN_VALUE (PERCENT_YACC, uniqstr_new (yytext)); "%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 /* Deprecated since Bison 3.0 (2013-07-25), but the warning is
issued only since Bison 3.3. */ issued only since Bison 3.3. */
"%error-verbose" RETURN_VALUE (PERCENT_ERROR_VERBOSE, uniqstr_new (yytext)); "%error-verbose" RETURN_VALUE (PERCENT_ERROR_VERBOSE, uniqstr_new (yytext));
@@ -282,7 +285,6 @@ eqopt ({sp}=)?
"%no"[-_]"default"[-_]"prec" DEPRECATED ("%no-default-prec"); "%no"[-_]"default"[-_]"prec" DEPRECATED ("%no-default-prec");
"%no"[-_]"lines" DEPRECATED ("%no-lines"); "%no"[-_]"lines" DEPRECATED ("%no-lines");
"%output"{eqopt} DEPRECATED ("%output"); "%output"{eqopt} DEPRECATED ("%output");
"%pure"[-_]"parser" DEPRECATED ("%pure-parser");
"%token"[-_]"table" DEPRECATED ("%token-table"); "%token"[-_]"table" DEPRECATED ("%token-table");
"%"{id} { "%"{id} {
+1 -1
View File
@@ -1870,7 +1870,7 @@ AT_DATA_GRAMMAR([input.y],
[[ [[
%define parse.error verbose %define parse.error verbose
%debug %debug
%pure-parser %define api.pure
%code { %code {
# include <stdio.h> # include <stdio.h>
# include <stdlib.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" fix-it:"input.y":{23:1-23:10}:"%no-lines"
input.y:24.1-9: warning: deprecated directive: '%output =', use '%output' [-Wdeprecated] input.y:24.1-9: warning: deprecated directive: '%output =', use '%output' [-Wdeprecated]
fix-it:"input.y":{24:1-24:10}:"%output" fix-it:"input.y":{24:1-24:10}:"%output"
input.y:25.1-12: warning: deprecated directive: '%pure_parser', use '%pure-parser' [-Wdeprecated] input.y:25.1-12: warning: deprecated directive: '%pure_parser', use '%define api.pure' [-Wdeprecated]
fix-it:"input.y":{25:1-25:13}:"%pure-parser" 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] input.y:26.1-12: warning: deprecated directive: '%token_table', use '%token-table' [-Wdeprecated]
fix-it:"input.y":{26:1-26:13}:"%token-table" fix-it:"input.y":{26:1-26:13}:"%token-table"
input.y:27.1-14: warning: %define variable 'parse.error' redefined [-Wother] 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-default-prec
%no-lines %no-lines
%output "output.c" %output "output.c"
%pure-parser %define api.pure
%token-table %token-table
%glr-parser %glr-parser
%% %%
@@ -2678,7 +2678,6 @@ AT_DATA_GRAMMAR([[input.y]],
%no-default-prec %no-default-prec
%no-lines %no-lines
%output "foo" %output "foo"
%pure-parser
%token-table %token-table
%% exp : '0' %% exp : '0'
]]) ]])
+10
View File
@@ -90,7 +90,17 @@ m4_define([_AT_SYNCLINES_COMPILE],
# syncline.c:4:2: error: #error "4" # syncline.c:4:2: error: #error "4"
# #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 AT_CHECK([[$PERL -p -0777 - stderr <<\EOF
# Remove left-hand margin.
s/^[\d ]{6}\| //gm;
# 1. Remove useless lines. # 1. Remove useless lines.
# distcc clutter. # distcc clutter.