| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
See https://github.com/nemequ/icc-travis/issues/15.
Thanks to Jeff Hammond and Evan Nemerson for their help.
* configure.ac (warn_common): Disable dubious warnings.
* .travis.yml: Use ICC again.
|
|
|
|
|
|
|
| |
See 139d0655947c87f90af08718618feaaca0e558d7.
* data/skeletons/yacc.c: If I might be a char, write a[+I] instead of
a[I], so that ICC does not complain.
|
|
|
|
|
|
|
|
|
| |
Be robust to newer versions of Autoconf where the package URL defaults
to https instead of http.
* configure.ac (AC_INIT): Use https.
* tests/report.at: Adjust expected output s/http/https/
to match updated URL.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Reported by donmac703.
Fixes https://github.com/akimd/bison/issues/20.
* data/skeletons/lalr1.cc: here.
|
|
|
|
|
|
|
| |
Reported by psjo.
Fixes https://github.com/akimd/bison/issues/19.
* data/skeletons/glr.c (yyprocessOneStack): Here.
|
| |
|
|
|
|
| |
Run 'make update-copyright'.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GCC's -Wchar-subscripts may report issues on platforms where char is
unsigned. Unfortunately the current CI does not reproduce the
problem. But that would allow contributors to report issues if the
warning appears somewhere.
See 139d0655947c87f90af08718618feaaca0e558d7.
Problem reported by Andy Fiddaman in:
https://lists.gnu.org/r/bug-bison/2019-12/msg00021.html
* configure.ac (warn_common): Add -Wchar-subscripts.
|
|
|
|
|
| |
When we give travis the langugage, it overrides our envvars. Instead
of the MATRIX_EVAL trick, just stop specifying the language.
|
|
|
|
| |
https://github.com/nemequ/icc-travis/issues/15
|
|
|
|
|
|
| |
* doc/bison.texi: Make it clearer that %define parse.trace is the
preferred options.
Fix a typo about api.prefix.
|
|
|
|
|
|
|
|
|
| |
381. types.at:366: testing glr.cc api.value.type={double} ...
test.cc:207:57: error: "__clang_major__" is not defined, evaluates to 0 [-Werror=undef]
207 | #if defined __APPLE__ && YY_CPLUSPLUS < 201103L && 4 <= __clang_major__
| ^~~~~~~~~~~~~~~
* data/skeletons/glr.cc: Check __clang_major__ before using it.
|
|
|
|
|
|
|
|
| |
Problem reported by Andy Fiddaman in:
https://lists.gnu.org/r/bug-bison/2019-12/msg00021.html
* data/skeletons/yacc.c (yy_reduce_print, yy_lac, yysyntax_error)
(yyreturn): If I might be a char, write a[+I] instead of a[I],
so that ‘gcc -Wchar-subscripts’ does not complain.
|
|
|
|
| |
* doc/bison.texi: No output changes.
|
|
|
|
|
|
|
|
| |
As is the case on Solaris.
Reported by Dennis Clarke.
https://lists.gnu.org/archive/html/bug-bison/2019-12/msg00011.html
* examples/c/reccalc/reccalc.test: Skip if there is no seq.
|
|
|
|
|
|
| |
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
|
|
|
|
| |
* NEWS: Record release date.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
$ cat test.cc
#include <stddef.h>
#include <stdint.h>
ptrdiff_t half_max_capacity = PTRDIFF_MAX;
$ clang++-mp-9.0 -pedantic -std=c++98 /tmp/test.cc -c
/tmp/test.cc:4:31: warning: 'long long' is a C++11 extension [-Wc++11-long-long]
ptrdiff_t half_max_capacity = PTRDIFF_MAX;
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdint.h:149:23:
note: expanded from macro 'PTRDIFF_MAX'
#define PTRDIFF_MAX INT64_MAX
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdint.h:75:26:
note: expanded from macro 'INT64_MAX'
#define INT64_MAX 9223372036854775807LL
^
1 warning generated.
* data/skeletons/glr.cc: here.
|
|
|
|
|
|
|
|
|
| |
Another breakage revealed by vcsn.
* data/skeletons/c++.m4 (yytranslate_): Do not hard code "yy" and
"parser", both can be changed by the user.
Actually, since we are in the parser itself, there's really no need to
qualify the type.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In a project of mine, vcsn, this commit fixes the following comments.
--- /tmp/parse.hh 2019-12-08 15:51:24.792934703 +0100
+++ lib/vcsn/rat/parse.hh 2019-12-08 16:00:59.137107503 +0100
@@ -43,7 +43,7 @@
#ifndef YY_YY_USERS_AKIM_SRC_LRDE_2_LIB_VCSN_RAT_PARSE_HH_INCLUDED
# define YY_YY_USERS_AKIM_SRC_LRDE_2_LIB_VCSN_RAT_PARSE_HH_INCLUDED
-// // "%code requires" blocks.
+// "%code requires" blocks.
#line 20 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy"
#include <iostream>
@@ -1851,7 +1851,7 @@
-// // "%code provides" blocks.
+// "%code provides" blocks.
#line 60 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy"
#define YY_DECL_(Class) \
* data/skeletons/bison.m4 (b4_percent_code_get): Pass an expanded
string to b4_comment.
|
|
|
|
| |
* src/parse-gram.y: Accept we're Bison 3.5.
|
|
|
|
| |
* data/skeletons/lalr1.cc: here.
|
|
|
|
|
| |
* TODO: Schedule some features for 3.6.
Remove obsolete stuff.
|
|
|
|
|
|
| |
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
|
|
|
|
| |
* NEWS: Record release date.
|
|
|
|
|
|
|
| |
Reported by Paul Eggert.
https://lists.gnu.org/archive/html/bison-patches/2019-12/msg00014.html
* NEWS: here.
|
|
|
|
| |
* README-hacking.md: here.
|
| |
|
|
|
|
|
| |
* doc/bison.texi (Prologue): Stop using YYPRINT as an example.
(The YYPRINT Macro): Clearly show this macro is deprecated.
|
|
|
|
|
| |
* doc/bison.texi: here.
No change in content.
|
| |
|
|
|
|
|
| |
* data/skeletons/lalr1.d (yysyntax_error): Let the dispatch be
bison-time, not runtime.
|
|
|
|
|
|
| |
Like the other skeletons.
* data/skeletons/variant.hh: here.
|
|
|
|
|
|
|
| |
* data/skeletons/glr.c (YYASSERT): Rename as...
(YY_ASSERT): this, for consistency with yacc.c, and also to emphasize
the fact that this is not for the end user (YY_ prefix).
* tests/glr-regression.at: Define parse.assert.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that we use small integral types, possibly unsigned (e.g.,
unsigned char), to store state numbers, using -1 to denote an empty
state (i.e., a state that stores no semantical value) is very
dangerous: it will be confused with state 255, which might be
non-empty.
Rather than allocating a larger range of state numbers to keep the
empty-state apart, let's use the number of a state known to store no
value. The initial state, numbered 0, seems to fit perfectly the job.
Reported by Frank Heckenbach.
https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00016.html
* data/skeletons/lalr1.cc (empty_state): Be 0.
|
|
|
|
| |
* tests/scanner.at: here.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prompted by Frank Heckenbach.
https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00016.html.
* configure.ac (warn_cxx): Add -Wuseless-cast.
* data/skeletons/c.m4 (b4_attribute_define): Define
YY_IGNORE_USELESS_CAST_BEGIN and YY_IGNORE_USELESS_CAST_END.
* data/skeletons/glr.c (YY_FPRINTF): New, replaces YYFPRINTF, wrapped
with YY_IGNORE_USELESS_CAST_BEGIN and YY_IGNORE_USELESS_CAST_END.
(YY_DPRINTF): Likewise.
* tests/actions.at: Remove useless cast.
* tests/headers.at: Adjust.
|
|
|
|
|
|
| |
* src/complain.h, src/complain.c: Comment changes.
* src/scan-skel.l: Reduce scopes.
* data/skeletons/bison.m4: Factor diagnostic functions.
|
|
|
|
|
| |
* data/skeletons/glr.c (yysplitStack): Reduce scopes.
* tests/atlocal.in: Formatting changes.
|
|
|
|
|
|
|
|
|
| |
It is not used. And its implementation was wrong when api.token.raw
was defined, as it was still mapping to the external token numbers,
instead of the internal ones. Besides it was provided only when
api.token.constructor is defined, yet always declared.
* data/skeletons/c++.m4 (by_type::token): Remove, useless.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reported by Frank Heckenbach.
https://lists.gnu.org/archive/html/bug-bison/2019-11/msg00016.html
The cast is needed when yytranslate_'s argument type is token_type,
i.e., when api.token.constructor is defined.
373. types.at:138: testing lalr1.cc api.value.type=variant api.token.constructor ...
======== Testing with C++ standard flags: ''
../../tests/types.at:138: bison --color=no -fno-caret -o test.cc test.y
../../tests/types.at:138: $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS -o test test.cc $LIBS
stderr:
test.cc:966:16: error: result of comparison of constant 257 with
expression of type 'yy::parser::token_type'
(aka 'yy::parser::token::yytokentype') is always true
[-Werror,-Wtautological-constant-out-of-range-compare]
else if (t <= user_token_number_max_)
~ ^ ~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
It is because it is expected that when api.token.constructor is
defined, only symbol constructors will be used, that yytranslate_ then
takes a token_type. But it is wrong: we still allow literal
characters in this case, as demonstrated by test 373 for instance.
%define api.value.type variant
%define api.token.constructor
%token <std::pair<int, int>> '1' '2';
[...]
static yy::parser::symbol_type yylex ()
{
static char const input[] = "12";
int res = input[toknum++];
typedef yy::parser::symbol_type symbol;
if (res)
return symbol (res, std::make_pair (res - '0', res - '0' + 1));
else
return symbol (res);
}
So let yytranslate_ always take an int, which makes the cast truly
useless.
* data/skeletons/c++.m4, data/skeletons/lalr1.cc (yytranslate_): here.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The C++ implementation of LAC did not skip the $undefined token,
probably because it was not exposed. Expose it, and use clearer
names.
* data/skeletons/c++.m4: Don't define undef_token_ in yytranslate_,
but...
* data/skeletons/lalr1.cc (yy_undef_token_): here.
Use a more precise type to define yy_undef_token_ and yy_error_token_.
Unfortunately we move from a compile-time value defined via an enum to
a static const member. Eventually we should make it constexpr.
Make LAC implementation more alike yacc.c's one.
|
|
|
|
|
|
|
|
|
|
|
| |
* data/skeletons/lalr1.d, data/skeletons/lalr1.java: Don't expose
yyuser_token_number_max_ and yyundef_token_. Do as in C++: scope them
into yytranslate_, and only when api.token.raw is not defined.
(yyterror_): Rename as...
(yy_error_token_): this.
* data/skeletons/lalr1.d (token_number_type): New.
Use it.
Can't be done in the Java backend, as Java does not have type aliases.
|
|
|
|
|
|
|
| |
* data/skeletons/lalr1.d, data/skeletons/lalr1.java (yytoken_number_):
Remove, useless.
Was used in ancient C skeletons to support YYPRINT, long obsoleted by
%printer.
|
|
|
|
|
|
|
|
|
| |
It is not used at all. We will remove it also from yacc.c, but
later (see TODO).
* data/skeletons/lalr1.cc, data/skeletons/lalr1.d,
* data/skeletons/lalr1.java (yyerrcode_):
Remove.
|