Akim Demaille
b5e6d9c4ca
glr2.cc: address warnings with G++ 4.8
...
input.cc: In constructor 'glr_stack_item::glr_stack_item(bool)':
input.cc:1423:5: error: declaration of 'isState' shadows a member of 'this' [-Werror=shadow]
: isState_(isState) {
^
test.cc:1165:45: error: declaration of 'begin' shadows a member of 'this' [-Werror=shadow]
test.cc:1167:45: error: declaration of 'end' shadows a member of 'this' [-Werror=shadow]
* data/skeletons/glr2.cc (isState): Rename as...
(is_state): this.
Formatting changes.
(reduceToOneStack): Rename variables to avoid name clashes.
2020-09-12 15:23:19 +02:00
Akim Demaille
3ae2a22a05
glr2.cc: get rid of the C indirection for yy_symbol_print
...
* data/skeletons/glr2.cc (yy_symbol_print): Remove.
Just use yyparser.yy_symbol_print_ directly.
2020-09-12 14:49:05 +02:00
Akim Demaille
146a8eb101
glr2.cc: formatting changes
...
* data/skeletons/glr2.cc: here.
2020-09-12 14:44:29 +02:00
Akim Demaille
4428e8e8b3
glr2.cc: fix GCC10 warning
...
For instance on test 433: "glr2.cc api.value.type={double}"
tests/types.at:138: $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS -o test test.cc $LIBS
stderr:
In file included from /opt/local/include/gcc10/c++/bits/stl_tempbuf.h:60,
from /opt/local/include/gcc10/c++/bits/stl_algo.h:62,
from /opt/local/include/gcc10/c++/algorithm:62,
from test.cc:82:
/opt/local/include/gcc10/c++/bits/stl_construct.h: In instantiation of 'constexpr decltype (::new(void*(0)) _Tp) std::construct_at(_Tp*, _Args&& ...) [with _Tp = glr_stack_item; _Args = {glr_stack_item}; decltype (::new(void*(0)) _Tp) = glr_stack_item*]':
/opt/local/include/gcc10/c++/bits/alloc_traits.h:514:21: required from 'static constexpr void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = glr_stack_item; _Args = {glr_stack_item}; _Tp = glr_stack_item; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<glr_stack_item>]'
/opt/local/include/gcc10/c++/bits/vector.tcc:115:30: required from 'std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {glr_stack_item}; _Tp = glr_stack_item; _Alloc = std::allocator<glr_stack_item>; std::vector<_Tp, _Alloc>::reference = glr_stack_item&]'
/opt/local/include/gcc10/c++/bits/stl_vector.h:1204:21: required from 'void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = glr_stack_item; _Alloc = std::allocator<glr_stack_item>; std::vector<_Tp, _Alloc>::value_type = glr_stack_item]'
test.cc:1949:48: required from here
/opt/local/include/gcc10/c++/bits/stl_construct.h:95:14: error: noexcept-expression evaluates to 'false' because of a call to 'glr_stack_item::glr_stack_item(const glr_stack_item&)' [-Werror=noexcept]
95 | noexcept(noexcept(::new((void*)0) _Tp(std::declval<_Args>()...)))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test.cc:1436:3: note: but 'glr_stack_item::glr_stack_item(const glr_stack_item&)' does not throw; perhaps it should be declared 'noexcept'
1436 | glr_stack_item(const glr_stack_item& other)
| ^~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
stdout:
tests/types.at:138: exit code was 1, expected 0
433. types.at:138: 433. glr2.cc api.value.type={double} (types.at:138): FAILED (types.at:138)
* data/skeletons/glr2.cc (glr_stack_item): Use YY_NOEXCEPT/YY_NOTHROW.
2020-09-12 14:44:27 +02:00
Valentin Tolmer
00e47b11d2
glr2.cc: coding style changes
...
* data/skeletons/glr2.cc: Change some CamlCase to snake_case, and
remove some yy prefixes for classes inside the namespace.
2020-09-12 14:11:58 +02:00
Valentin Tolmer
cf8723de0d
glr2.cc: move StrongIndexAlias into the namespace
...
* data/skeletons/glr2.cc: here.
2020-09-12 14:11:40 +02:00
Valentin Tolmer
8bfc319f8e
glr2.cc: remove usage of PTRDIFF_MAX
...
* data/skeletons/glr2.cc: Use std::ptrdiff_t and numeric_limits.
2020-09-12 14:11:00 +02:00
Valentin Tolmer
1c5b05ad31
glr2.cc: remove C-style casts
...
* data/skeletons/glr2.cc: here.
2020-09-12 14:10:21 +02:00
Valentin Tolmer
b7e2cac2aa
glr2.cc: add copy constructor to yyGLRStackItem
...
This silences the clang warning -Wdeprecated-copy.
* data/skeletons/glr2.cc: here.
2020-09-12 14:10:02 +02:00
Akim Demaille
1df4b746da
glr2.cc: style changes
...
* data/skeletons/glr2.cc: Remove stray comment.
2020-09-05 07:47:21 +02:00
Akim Demaille
f3f7f6e1dc
glr2.cc: get rid of the yyerror scaffolding
...
The yyerror stand-alone function was used to bounce from glr.c's call
to yyerror to glr.cc's parser.error. Now that glr.c is out of the
way, just directly use parser.error.
* data/skeletons/glr2.cc (yyerror): Remove.
Adjust callers.
(b4_yyerror_args, b4_lyyerror_args, b4_pure_formals): Remove.
Now unused.
2020-09-05 07:44:23 +02:00
Valentin Tolmer
38abe1e1b7
glr2.cc: avoid warnings about printf and shadowing
...
* data/skeletons/glr2.cc: Migrate from using printf to std::cerr & co.
Since the yyGLRStack has the user params, no need to pass them around.
2020-09-04 06:47:10 +02:00
Akim Demaille
82d913741b
glr2.cc: avoid warnings about long long
...
* data/skeletons/glr2.cc: Disable the warning before triggering it.
2020-08-30 20:05:34 +02:00
Akim Demaille
b63e3a3352
glr2.cc: fix a few warnings
...
* data/skeletons/glr2.cc: Fix some documentation.
Be consistent between class/struct.
(yydoAction, yyresolveAction): Avoid passing yyparser where useless.
2020-08-30 12:58:27 +02:00
Valentin Tolmer
ef09bf065a
glr2.cc: fork glr.cc to a c++ version
...
This is a fork of glr.cc to be c++-first instead of a wrapper around
glr.c.
* data/skeletons/glr2.cc: New.
* data/skeletons/bison.m4, data/skeletons/c++.m4: Adjust.
* data/skeletons/c.m4 (b4_user_args_no_comma): New.
* src/reader.c (grammar_rule_check_and_complete): glr2.cc is C++.
* tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
* tests/input.at, tests/local.at, tests/regression.at, tests/scanner.at,
* tests/synclines.at, tests/types.at: Also check glr2.cc.
2020-08-30 10:45:21 +02:00