2
0
mirror of https://github.com/boostorg/wave.git synced 2026-01-19 04:42:16 +00:00

114 Commits

Author SHA1 Message Date
Jeff Trull
7a8e9d3884 Introduce c++23 feature flag and condition size_t literals with it 2025-10-27 09:29:33 -07:00
Jeff Trull
2408633f16 Tweak PR #241 for correctness and tidy code
- Fix RE2C code for numbers (binary and digit separators)
- Revert to RE2C version 1.0.2, for now
- Revamp token ids to minimize changes
- Restore existing and more accurate name OPTSIGN in slex
- Add binary literal support to lexertl
- Fix xlex support for size_t literals
- Add test tokens for octal, binary, and hex literals
2025-10-27 09:29:33 -07:00
Andreas Pokorny
50b322dcc9 fix(lexer): support size_t literal, separator chars, 'module'
The integer parsing grammars still have to be updated.
2025-10-27 09:29:33 -07:00
René Ferdinand Rivera Morell
7ce8b53d9d Add support for modular build structure. (#214)
* Make the library modular usable.

* Switch to library requirements instead of source. As source puts extra source in install targets.

* Add wave tool build to all target.

* Add missing NO_LIB usage requirements.

* Add requires-b2 check to top-level build file.

* Bump B2 require to 5.2

* Change all <source> references to <library>.

* Move inter-lib dependencies to a project variable and into the build targets.

* Update build deps.
2024-08-26 22:01:03 -07:00
Jeff Trull
3586cf3706 Support \e and \E in character and string literals
Updates the non-strict lexer to support e and E, both with value 27
(ASCII ESC). Also adds tests for lexing these literals, and checks
that they are usable in conditional preprocessor expressions.
2022-11-07 22:44:24 -08:00
Jeff Trull
83cb264b5f Use constexpr instead of macros for tokenid constants in samples (#167)
Under Visual Studio 2019 (and possibly 2017), building with /permissive- causes three samples to fail to compile. Adding the /Zc:twoPhase- option makes them compile successfully again. See bug #160 for more details.

It's unclear what the source of this issue is, but using constexpr variables instead of a macro is better practice anyway, and fixes the errors.
2022-06-22 17:35:44 -07:00
Jeff Trull
0ff9eafa04 Add the spaceship <=> operator to the C++20 tokens 2020-10-24 22:01:43 -07:00
Jeff Trull
465fe2291f Merge pull request #109 from jefftrull/feature/cpp20-tokens
Introduce C++20 tokens
2020-08-16 11:55:39 -07:00
Jeff Trull
200f91e71d Introduce C++20 tokens 2020-08-11 13:17:01 -07:00
Jeff Trull
ca08e74947 Correct spelling of thread_local keyword 2020-08-10 04:41:49 -07:00
Jeff Trull
9d68ca319a Track the location tokens were expanded from, for __LINE__ and __FILE__
An (optional) extra position field is added to token_data and set for
any identifier token created from a macro expansion. This information
is used to correctly calculate the filename and line number.
2020-07-20 20:51:14 -07:00
Jeff Trull
ee0a7c14c5 Implement __has_include() (#102)
Resolve #96 by introducing C++17 feature (and frequent vendor extension) __has_include(), along with appropriate unit tests and documentation updates
2020-06-27 07:22:52 -07:00
Jeff Trull
6fd0da8780 Rename include guard macros that don't begin with BOOST_ 2020-06-15 10:52:30 -07:00
Jeff Trull
895ea836e9 Remove unused headers
Reduce build time by:
- using iosfwd instead of iostream, where possible
- where iostream is necessary but only used for debugging,
  making its inclusion conditional
- removing old C-style headers

I used IWYU to guide this work
2020-05-19 10:41:22 -07:00
Jeff Trull
2e8eeeeb4d Add BOOST_OVERRIDE to virtual functions in derived classes (#89) 2020-04-13 21:12:34 -07:00
Jeff Trull
b68940a83b Disallow mixed-case long long integer literals (#80)
- Update all four lexers to allow ll/LL but not lL/Ll
- Add unit tests for checking
- Remove invalid token from test
2020-03-15 22:54:01 -07:00
Jeff Trull
849da9fb6a Remove linking to newly header-only date_time (#81)
Boost develop branch has an updated date_time that is header-only so
Wave's builds will now fail unless this dependency is removed.
2020-03-15 17:37:19 -07:00
Jeff Trull
9413a718f6 tighten up effect of SUPPORT_INCLUDE_NEXT 2020-02-09 15:05:19 -08:00
Nikita Kniazev
0ea2aa7ca2 Fixed usage of auto_ptr on systems where it is deprecated
The macro `BOOST_NO_AUTO_PTR` is defined on systems where both `auto_ptr` and
`unique_ptr` are available (and `auto_ptr` usage produces a deprecation warning).
By using `BOOST_NO_CXX11_SMART_PTR` we will favor `unique_ptr` over `auto_ptr`.

```
slex/lexer.hpp:2423:13: error: 'template<class> class std::auto_ptr' is deprecated [-Werror=deprecated-declarations]
```
2018-10-02 17:59:26 +03:00
Hartmut Kaiser
20d4dd1f81 Fixing #1 2017-09-02 10:02:53 -05:00
Daniela Engert
decb79b335 Conditionally replace deprecated/removed std::auto_ptr by std::unique_ptr.
Signed-off-by: Daniela Engert <dani@ngrt.de>
2017-05-16 17:10:59 +02:00
Hartmut Kaiser
8224ab9eaf Fixed #8478: Make Boost.wave compatible with Clang's -Wimplicit-fallthrough diagnostic.
[SVN r84012]
2013-04-22 17:01:51 +00:00
Joel de Guzman
d0e1fa9164 Applied patches for Tickets #7738, #7737 and #7646
[SVN r82348]
2013-01-04 01:43:06 +00:00
Hartmut Kaiser
e5ac1ca3b3 Wave: updating copyrights, minor fixes, bumping version number for release
[SVN r78555]
2012-05-23 14:41:35 +00:00
Hartmut Kaiser
aa24ef4c98 Wave: adding support_option_emit_contnewlines for the SLex lexer only.
[SVN r73589]
2011-08-07 01:27:31 +00:00
Hartmut Kaiser
1e0208fbb4 Wave: fixed #5569: slex CONTLINE token works only for LF line endings
[SVN r72197]
2011-05-26 22:22:52 +00:00
Hartmut Kaiser
e1d1f933eb Wave: allowing to force interpretation of wchar_t as signed/unsigned, fixed a problem in #pragma option_str(output)
[SVN r72162]
2011-05-25 18:32:51 +00:00
Hartmut Kaiser
38caf9dee7 Wave: Fixing example to behave properly if input is not terminated with a newline
[SVN r72062]
2011-05-21 20:23:47 +00:00
Steven Watanabe
0818f28c17 Revert [67111] (addition of boost/detail/iomanip.hpp) and all the commits that depend on it. ([68137], [68140], [68141], [68154], and [68165]).
[SVN r68168]
2011-01-15 08:11:51 +00:00
Bryce Adelstein-Lelbach
586ee633ce Replacing the use of <iomanip> with <boost/detail/iomanip.hpp> across Boost.
On Linux, GNU's libstdc++, which is the default stdlib for icc and clang,
cannot parse the <iomanip> header in version 4.5+ (which thankfully neither
compiler advises the use of yet), as it's original C++98-friendly
implementation has been replaced with a gnu++0x implementation.
<boost/detail/iomanip.hpp> is a portable implementation of <iomanip>, providing
boost::detail::setfill, boost::detail::setbase, boost::detail::setw,
boost::detail::setprecision, boost::detail::setiosflags and
boost::detail::resetiosflags. 



[SVN r68140]
2011-01-14 02:35:58 +00:00
Hartmut Kaiser
12c91c34c1 Wave: updated copyrights, worked on whitespace skipping
[SVN r67893]
2011-01-09 21:54:54 +00:00
Hartmut Kaiser
55752997a3 Wave: more work on C++0x support, fixed a macro expansion problem
[SVN r67117]
2010-12-09 01:44:51 +00:00
Hartmut Kaiser
dc832745b7 Wave: fixing Wave for Boost Filesystem V3, which is now the default, changed build system for Wave tool to disable threading
[SVN r67093]
2010-12-08 01:29:47 +00:00
Hartmut Kaiser
59633b0f57 Wave: fixed #4113: cpp_lexer does not handle qualified backslashes correctly
[SVN r61384]
2010-04-18 21:00:09 +00:00
Hartmut Kaiser
bbcad7c954 Wave: updating copyrights, fixing issues introduced by latest changes to multi_pass.
[SVN r58714]
2010-01-05 17:29:06 +00:00
Hartmut Kaiser
16f44b7502 Wave: adjustments for recent multi_pass changes
[SVN r54222]
2009-06-22 19:46:11 +00:00
Hartmut Kaiser
122915b95f Wave: fixed examples
[SVN r53192]
2009-05-22 23:40:53 +00:00
Hartmut Kaiser
a8e6b580db Wave: Updated copyrights
[SVN r50425]
2009-01-01 12:07:12 +00:00
Hartmut Kaiser
6bc791d255 Wave: Started to fox examples
[SVN r49301]
2008-10-13 01:03:32 +00:00
Hartmut Kaiser
a8cdaa4a20 Wave: Updated iterator for change in multi_pass
[SVN r44654]
2008-04-20 21:29:01 +00:00
Hartmut Kaiser
f7ccfb3dc0 Wave: Applied a fix for HP Tru64 compiler
[SVN r44604]
2008-04-19 20:09:11 +00:00
Hartmut Kaiser
47ed1eede2 Wave: fixing compilation using Intel compilers
[SVN r44602]
2008-04-19 19:59:59 +00:00
Hartmut Kaiser
ef3c6f606f Wave: Fixed slex test
[SVN r44483]
2008-04-17 01:56:25 +00:00
Hartmut Kaiser
6b02159942 Wave: Updated to use new Spirit Classic library structure and namespace. Lots' of minor changes and adjustments. Switched version to 2.0 since this version is not backwards compatible anymore with earlier versions.
[SVN r44381]
2008-04-13 22:39:12 +00:00
Hartmut Kaiser
a9ddc1d840 Wave: Applied a workaround for Intel compilers and for Pathscale.
[SVN r43542]
2008-03-07 22:53:13 +00:00
Hartmut Kaiser
b967f8efa7 Wave: Extended a workaround to newest Intel compiler version (Linux V10.1)
[SVN r43290]
2008-02-17 16:45:08 +00:00
Hartmut Kaiser
db5dfdda69 Wave: trying to fix stdcxx_gcc regression.
[SVN r43101]
2008-02-04 19:21:46 +00:00
Hartmut Kaiser
0f1b0ca3ac Wave: removed T_DEFINED token id from the library.
[SVN r42853]
2008-01-18 17:56:53 +00:00
Hartmut Kaiser
23bbed3024 Wave: updated copyright messages to include the year 2008 (merged from release branch).
[SVN r42502]
2008-01-05 22:44:28 +00:00
Hartmut Kaiser
54b9354531 Wave: Updated Jamfiles to include Boost.DateTime.
[SVN r39890]
2007-10-10 12:42:16 +00:00