Commit Graph

6538 Commits

Author SHA1 Message Date
Akim Demaille 3e6a075f7f c++: make position.hh completely useless
Let's put the definition of position into location.hh, there's no real
value in keeping them separate: they are small, and share the same
requirements.

To help users transition to this new model, still generate position.hh
by default, but as a simple include to location.hh.

* data/location.cc (api.position.file): Accept only 'none' as possible
value.
(position.hh): Make it a stub.
(location.hh): Adjust.
(b4_position_define): Merge into...
(b4_location_define): this.
* data/glr.cc, data/lalr1.cc, tests/input.at, tests/output.at: Adjust.
2018-10-06 17:17:25 +02:00
Akim Demaille 29b1da4e18 c++: make stack.hh completely useless
Let's completely deprecate stack.hh.  Don't provide a means to give it
a new name, allow only its removal.

See https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00151.html
and https://lists.gnu.org/archive/html/bison-patches/2018-09/msg00182.html.

* data/stack.hh: Reduce stack.hh to a simple comment explaining how to
get rid of it.
* data/lalr1.cc: Adjust
* tests/input.at (%define file variables): Adjust.
* tests/output.at: Remove cases where stack.hh was removed.
2018-10-06 17:17:25 +02:00
Akim Demaille 667588ee8a c++: add support for api.position.file and api.location.file
* data/location.cc: Sort includes.
(b4_position_file, b4_location_file): New.
When there's a file for locations but not for positions, include the
definition of position in the location file.
* data/lalr1.cc (b4_shared_declarations): Include the
position/location file when it exists.
Otherwise, define the class.
* data/glr.cc: Likewise.
* tests/input.at (%define file variables): Check them.
* tests/output.at (C++ output): Check various cases with
api.position.file and api.location.file.
2018-10-06 17:17:25 +02:00
Akim Demaille b122a71c83 c++: provide control over the stack.hh file name
It was not a good idea to generate the file stack.hh.  It never was.
But now we have to deal with backward compatibility: if we stop
generating it, the build system of some build system will probably
break.

So offer the user a means to (i) decide what the name of the output
file should be, and (ii) not generate this file at all (its content
will be inline where the parser is defined).

* data/lalr1.cc (b4_percent_define_check_file_complain)
(b4_percent_define_check_file): New.
* data/stack.hh: Generate the file only if api.stack.file is not
empty.
In that case, use it as file name.
* data/lalr1.cc: Adjust to include the right file, or to include
the definition of stack.
* tests/calc.at, tests/output.at: Exercise api.stack.file.
2018-10-06 17:17:25 +02:00
Akim Demaille 1a0b3bf83b tests: c++: don't fuse prefix and namespace
They are not the same concept.  It appears that we still consider that
api.prefix is the default for api.namespace.  We should stop that.

* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
Separate namespace and prefix.
Adjust dependencies.
2018-10-06 17:16:55 +02:00
Akim Demaille 53bde230c6 style: tests: factor file extension computations
* tests/local.at (AT_LANG_HDR): New.
* tests/calc.at, tests/headers.at, tests/synclines.at: Use it, and
AT_LANG_EXT.
2018-10-06 17:16:54 +02:00
Akim Demaille fd3c17995e c++: style changes
* data/lalr1.cc: Formatting changes.
Remove duplicate definition of YY_NULLPTR.
Add quotes to help Emacs track balanced parens.
2018-10-06 15:45:21 +02:00
Akim Demaille d13a7fdb0a lib: introduce xpath_join
* lib/path-join.h, lib/path-join.c: New.
* lib/local.mk: Adjust.
* src/output.c: Use it.
2018-10-06 15:44:24 +02:00
Akim Demaille a61a84ec6a CI: travis finally knows about llvm-toolchain-trusty-7
See https://github.com/travis-ci/apt-source-safelist/pull/392.
2018-10-06 07:38:15 +02:00
Akim Demaille 394c1aa6f2 gnulib: update 2018-10-06 07:38:15 +02:00
Akim Demaille 5281d09af7 doc: restore spello made on purpose 2018-10-06 07:38:15 +02:00
Akim Demaille 0299b699bb THANKS: add Josh Soref 2018-10-05 07:06:44 +02:00
Josh Soref cff8d06e51 spelling: whether 2018-10-05 07:01:06 +02:00
Josh Soref 45372aed4e spelling: typedef 2018-10-05 07:01:06 +02:00
Josh Soref b89b6517f2 spelling: troubleshooting 2018-10-05 07:01:06 +02:00
Josh Soref cd45c269e2 spelling: transparent 2018-10-05 07:01:06 +02:00
Josh Soref 44cad07704 spelling: translated 2018-10-05 07:01:06 +02:00
Josh Soref f612071298 spelling: transitions 2018-10-05 07:01:05 +02:00
Josh Soref a7694cedf9 spelling: transition 2018-10-05 07:01:05 +02:00
Josh Soref 2fead9abdb spelling: tracking 2018-10-05 07:01:05 +02:00
Josh Soref d573ef0d69 spelling: suppress 2018-10-05 07:01:05 +02:00
Josh Soref 6cdd3287dd spelling: succesful 2018-10-05 07:01:05 +02:00
Josh Soref 2d60a624c9 spelling: storage 2018-10-05 07:01:05 +02:00
Josh Soref 5d4bd04588 spelling: safely 2018-10-05 07:01:05 +02:00
Josh Soref 47f92cb354 spelling: responsibility 2018-10-05 07:01:05 +02:00
Josh Soref 715fdcffbf spelling: resources 2018-10-05 07:01:05 +02:00
Josh Soref 153df66692 spelling: releases 2018-10-05 07:01:05 +02:00
Josh Soref ce9d542a78 spelling: reduction 2018-10-05 07:01:05 +02:00
Josh Soref c66e591fa5 spelling: reachable 2018-10-05 07:01:05 +02:00
Josh Soref 2495c49077 spelling: rawtoknumflag 2018-10-05 07:01:05 +02:00
Josh Soref 6c3b482891 spelling: possibly 2018-10-05 07:01:05 +02:00
Josh Soref 5ec892c480 spelling: persistent 2018-10-05 07:01:05 +02:00
Josh Soref 9188385b55 spelling: outputting 2018-10-05 07:01:05 +02:00
Josh Soref 1bf3e2860b spelling: otherwise 2018-10-05 07:01:05 +02:00
Josh Soref 7d8d1c3f92 spelling: occurrence 2018-10-05 07:01:05 +02:00
Josh Soref 694c6234f9 spelling: namespace 2018-10-05 07:01:05 +02:00
Josh Soref 13b70e2218 spelling: minimal 2018-10-05 07:01:05 +02:00
Josh Soref fa55bfa71f spelling: invocations 2018-10-05 07:01:05 +02:00
Josh Soref 93d2986bba spelling: initialize 2018-10-05 07:01:05 +02:00
Josh Soref 75964cf0df spelling: incorrectly 2018-10-05 07:01:05 +02:00
Josh Soref 3c2b71cde6 spelling: included 2018-10-05 07:01:05 +02:00
Josh Soref 37c6dbb8ad spelling: illicit 2018-10-05 07:01:05 +02:00
Josh Soref 0883e6591f spelling: handling 2018-10-05 07:01:05 +02:00
Josh Soref a538d0d8aa spelling: gratuitously 2018-10-05 07:01:05 +02:00
Josh Soref 2645ee3519 spelling: grammar 2018-10-05 07:01:04 +02:00
Josh Soref ad15cd977a spelling: generation 2018-10-05 07:01:04 +02:00
Josh Soref 4e97614f5a spelling: generate 2018-10-05 07:01:04 +02:00
Josh Soref 82c36f0f0b spelling: forewarn 2018-10-05 07:01:04 +02:00
Josh Soref ee1bcce627 spelling: fnchange 2018-10-05 07:01:04 +02:00
Josh Soref 8347aabe14 spelling: family 2018-10-05 07:01:04 +02:00