scipy / boost-headers-only

Boost header directory.
Boost Software License 1.0
19 stars 16 forks source link

Difference betwee 1.75.0 initial commit and rebuild with `make_headers.sh` #3

Closed rgommers closed 3 years ago

rgommers commented 3 years ago

This doesn't seem like a real problem, because the difference is only files that were removed and we're not using those in SciPy I think. That said, running the automated script doesn't reproduce the initial commit in this repo, so I thought it'd be useful to record the files with differences:

$ git show --pretty="" --name-only 
.gitignore
Boost_1_75_0_README.md
Boost_1_76_0_README.md
README.rst
boost/asio/impl/src.cpp
boost/function/detail/gen_maybe_include.pl
boost/function/gen_function_N.pl
boost/hana/detail/struct_macros.hpp.erb
boost/json/json.natvis
boost/numeric/odeint/util/ublas_matrix_expression.patch
boost/pool/detail/for.m4
boost/pool/detail/pool_construct.bat
boost/pool/detail/pool_construct.m4
boost/pool/detail/pool_construct.sh
boost/pool/detail/pool_construct_simple.bat
boost/pool/detail/pool_construct_simple.m4
boost/pool/detail/pool_construct_simple.sh
boost/safe_numerics/CMakeLists.txt
boost/safe_numerics/concept/CMakeLists.txt
boost/spirit/home/classic/tree/parsetree.dtd
boost/wave/cpplexer/re2clex/cpp.re
boost/wave/cpplexer/re2clex/strict_cpp.re
make_headers.sh

Full diff:

```diff commit 1fd7f1d42221934c2a2bddabae7e5ed0fa84bed6 Author: Nicholas McKibben Date: Sat May 1 14:04:29 2021 -0700 tmp 1.75.0 squashed diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..cb5c5caf --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*~ +bootstrap.log +b2.log \ No newline at end of file diff --git a/README.md b/Boost_1_75_0_README.md similarity index 100% rename from README.md rename to Boost_1_75_0_README.md diff --git a/Boost_1_76_0_README.md b/Boost_1_76_0_README.md new file mode 100644 index 00000000..fa9faa16 --- /dev/null +++ b/Boost_1_76_0_README.md @@ -0,0 +1,11 @@ +# Boost C++ Libraries + +The Boost project provides free peer-reviewed portable C++ source libraries. + +We emphasize libraries that work well with the C++ Standard Library. Boost +libraries are intended to be widely useful, and usable across a broad spectrum +of applications. The Boost license encourages both commercial and non-commercial use +and does not require attribution for binary use. + +The project website is www.boost.org, where you can obtain more information and +[download](https://www.boost.org/users/download/) the current release. diff --git a/README.rst b/README.rst new file mode 100644 index 00000000..ee67de96 --- /dev/null +++ b/README.rst @@ -0,0 +1,37 @@ +Boost Header-only Distribution +------------------------------ + +"Boost, but only the header files." + +This repo is meant to provide a lightweight, minimal Boost distribution to +satisfy SciPy's limited set of Boost dependencies. No binaries are features +relying on compiled libraries are available through this header-only +package. + +Structure +--------- + +:: + + project-root + ├── boost/ : Contents of Boost includes directory (generated) + ├── Boost_README_[version].md : Boost README file (generated) + ├── LICENSE_1_0.txt : Boost license (generated) + ├── make_headers.sh : script to create generated files + └── README.rst : this README file + +Updating +-------- + +To regenerate the header files or update to a new version of boost, the +`make_headers.sh` script can be modified and run on a Linux or MacOS machine +that has access to the internet. It will automatically populate the `boost/` +directory with the generated header files from a minimal build. It can run +very simply as follows: + +.. code-block:: bash + + source make_headers.sh + +To update the version of Boost, modify the `BOOST_MAJOR`, `BOOST_MINOR`, +and `BOOST_PATCH` variables at the top of `make_headers.sh` diff --git a/boost/asio/impl/src.cpp b/boost/asio/impl/src.cpp deleted file mode 100644 index 0ea3601e..00000000 --- a/boost/asio/impl/src.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// impl/src.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#if defined(_MSC_VER) \ - || (defined(__BORLANDC__) && !defined(__clang__)) \ - || defined(__DMC__) -# pragma message ( \ - "This file is deprecated. " \ - "Please #include instead.") -#elif defined(__GNUC__) \ - || defined(__HP_aCC) \ - || defined(__SUNPRO_CC) \ - || defined(__IBMCPP__) -# warning "This file is deprecated." -# warning "Please #include instead." -#endif - -#include diff --git a/boost/function/detail/gen_maybe_include.pl b/boost/function/detail/gen_maybe_include.pl deleted file mode 100644 index bc409840..00000000 --- a/boost/function/detail/gen_maybe_include.pl +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/perl -w -# -# Boost.Function library -# -# Copyright (C) 2001-2003 Douglas Gregor (gregod@cs.rpi.edu) -# -# Permission to copy, use, sell and distribute this software is granted -# provided this copyright notice appears in all copies. -# Permission to modify the code and to distribute modified code is granted -# provided this copyright notice appears in all copies, and a notice -# that the code was modified is included with the copyright notice. -# -# This software is provided "as is" without express or implied warranty, -# and with no claim as to its suitability for any purpose. -# -# For more information, see http://www.boost.org -use English; - -$max_args = $ARGV[0]; - -open (OUT, ">maybe_include.hpp") or die("Cannot write to maybe_include.hpp"); -for($on_arg = 0; $on_arg <= $max_args; ++$on_arg) { - if ($on_arg == 0) { - print OUT "#if"; - } - else { - print OUT "#elif"; - } - print OUT " BOOST_FUNCTION_NUM_ARGS == $on_arg\n"; - print OUT "# undef BOOST_FUNCTION_MAX_ARGS_DEFINED\n"; - print OUT "# define BOOST_FUNCTION_MAX_ARGS_DEFINED $on_arg\n"; - print OUT "# ifndef BOOST_FUNCTION_$on_arg\n"; - print OUT "# define BOOST_FUNCTION_$on_arg\n"; - print OUT "# include \n"; - print OUT "# endif\n"; -} -print OUT "#else\n"; -print OUT "# error Cannot handle Boost.Function objects that accept more than $max_args arguments!\n"; -print OUT "#endif\n"; diff --git a/boost/function/gen_function_N.pl b/boost/function/gen_function_N.pl deleted file mode 100644 index d8f1249b..00000000 --- a/boost/function/gen_function_N.pl +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/perl -w -# -# Boost.Function library -# -# Copyright Douglas Gregor 2001-2003. Use, modification and -# distribution is subject to the Boost Software License, Version -# 1.0. (See accompanying file LICENSE_1_0.txt or copy at -# http://www.boost.org/LICENSE_1_0.txt) -# -# For more information, see http://www.boost.org -use English; - -if ($#ARGV < 0) { - print "Usage: perl gen_function_N \n"; - exit; -} - - -$totalNumArgs = $ARGV[0]; -for ($numArgs = 0; $numArgs <= $totalNumArgs; ++$numArgs) { - open OUT, ">function$numArgs.hpp"; - print OUT "#define BOOST_FUNCTION_NUM_ARGS $numArgs\n"; - print OUT "#include \n"; - print OUT "#undef BOOST_FUNCTION_NUM_ARGS\n"; - close OUT; -} diff --git a/boost/hana/detail/struct_macros.hpp.erb b/boost/hana/detail/struct_macros.hpp.erb deleted file mode 100644 index ecfd0edd..00000000 --- a/boost/hana/detail/struct_macros.hpp.erb +++ /dev/null @@ -1,231 +0,0 @@ -<%# - This is an ERB [1] template file used to generate the - header. The maximum - number of members that can be handled by the macros can - be controlled with the 'MAX_NUMBER_OF_MEMBERS' variable, - which can be set when calling ERB to generate the header: - - export MAX_NUMBER_OF_MEMBERS=55; erb struct_macros.hpp.erb - - 'MAX_NUMBER_OF_MEMBERS' must be greater than 0. In case 'MAX_NUMBER_OF_MEMBERS' - is not specified, it defaults to 40. To regenerate the default struct macros, - issue the following command from the root of the project: - - erb include/boost/hana/detail/struct_macros.hpp.erb > include/boost/hana/detail/struct_macros.hpp - - [1]: http://en.wikipedia.org/wiki/ERuby -%> - -<% - MAX_NUMBER_OF_MEMBERS = (ENV["MAX_NUMBER_OF_MEMBERS"] || 40).to_i - raise "MAX_NUMBER_OF_MEMBERS must be > 0" if not MAX_NUMBER_OF_MEMBERS > 0 -%> - -/*! -@file -Defines the `BOOST_HANA_DEFINE_STRUCT`, `BOOST_HANA_ADAPT_STRUCT`, and -`BOOST_HANA_ADAPT_ADT` macros. - -@copyright Louis Dionne 2013-2017 -Distributed under the Boost Software License, Version 1.0. -(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) - */ - -////////////////////////////////////////////////////////////////////////////// -// THIS FILE IS GENERATED FROM THE -// ERB TEMPLATE. DO NOT EDIT THIS FILE DIRECTLY. -// -// THE ERB TEMPLATE CONTAINS INFORMATION ABOUT HOW TO REGENERATE THIS FILE. -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_HANA_DETAIL_STRUCT_MACROS_HPP -#define BOOST_HANA_DETAIL_STRUCT_MACROS_HPP - -#include -#include -#include -#include -#include - -#include -#include - - -BOOST_HANA_NAMESPACE_BEGIN namespace struct_detail { - template - struct member_ptr { - template - constexpr decltype(auto) operator()(T&& t) const - { return static_cast(t).*ptr; } - }; - - constexpr std::size_t strlen(char const* s) { - std::size_t n = 0; - while (*s++ != '\0') - ++n; - return n; - } - - template - constexpr auto prepare_member_name_impl(std::index_sequence) { - return hana::string_c(Names::get())[i]...>; - } - - template - constexpr auto prepare_member_name() { - constexpr std::size_t len = strlen(hana::at_c(Names::get())); - return prepare_member_name_impl(std::make_index_sequence{}); - } -} BOOST_HANA_NAMESPACE_END - -////////////////////////////////////////////////////////////////////////////// -// BOOST_HANA_PP_NARG -////////////////////////////////////////////////////////////////////////////// -//! @ingroup group-details -//! Macro expanding to the number of arguments it is passed. -//! -//! Specifically, `BOOST_HANA_PP_NARG(x1, ..., xn)` expands to `n`. It is -//! an error to call this macro with 0 arguments. -#define BOOST_HANA_PP_NARG(...) \ - BOOST_HANA_PP_NARG_IMPL(__VA_ARGS__, <%= (1..MAX_NUMBER_OF_MEMBERS).to_a.reverse.join(',') %>,) - -#define BOOST_HANA_PP_NARG_IMPL(<%= (1..MAX_NUMBER_OF_MEMBERS).to_a.map { |i| "e#{i}" }.join(',') %>, N, ...) N - -////////////////////////////////////////////////////////////////////////////// -// BOOST_HANA_PP_BACK -////////////////////////////////////////////////////////////////////////////// -//! @ingroup group-details -//! Expands to its last argument. -#define BOOST_HANA_PP_BACK(...) \ - BOOST_HANA_PP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__) - -#define BOOST_HANA_PP_BACK_IMPL(N, ...) \ - BOOST_HANA_PP_CONCAT(BOOST_HANA_PP_BACK_IMPL_, N)(__VA_ARGS__) - -<% (1..MAX_NUMBER_OF_MEMBERS).each do |n| %> -#define BOOST_HANA_PP_BACK_IMPL_<%= n %>(<%= (1..n).to_a.map { |i| "e#{i}" }.join(', ') %>) e<%= n %> -<% end %> - -////////////////////////////////////////////////////////////////////////////// -// BOOST_HANA_PP_DROP_BACK -////////////////////////////////////////////////////////////////////////////// -//! @ingroup group-details -//! Expands to all of its arguments, except for the last one. -#define BOOST_HANA_PP_DROP_BACK(...) \ - BOOST_HANA_PP_DROP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__) - -#define BOOST_HANA_PP_DROP_BACK_IMPL(N, ...) \ - BOOST_HANA_PP_CONCAT(BOOST_HANA_PP_DROP_BACK_IMPL_, N)(__VA_ARGS__) - -<% (1..MAX_NUMBER_OF_MEMBERS).each do |n| %> -#define BOOST_HANA_PP_DROP_BACK_IMPL_<%= n %>(<%= (1..n).to_a.map { |i| "e#{i}" }.join(', ') %>)<%= (1..n-1).to_a.map { |i| "e#{i}" }.join(', ') %> -<% end %> - -////////////////////////////////////////////////////////////////////////////// -// BOOST_HANA_ADAPT_STRUCT -////////////////////////////////////////////////////////////////////////////// -template -struct BOOST_HANA_ADAPT_STRUCT_must_be_called_in_the_global_namespace; - -#define BOOST_HANA_ADAPT_STRUCT(...) \ - template <> \ - struct BOOST_HANA_ADAPT_STRUCT_must_be_called_in_the_global_namespace<>; \ - BOOST_HANA_ADAPT_STRUCT_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__)\ - static_assert(true, "force the usage of a trailing semicolon") \ -/**/ - -#define BOOST_HANA_ADAPT_STRUCT_IMPL(N, ...) \ - BOOST_HANA_PP_CONCAT(BOOST_HANA_ADAPT_STRUCT_IMPL_, N)(__VA_ARGS__) - -<% (0..MAX_NUMBER_OF_MEMBERS).each do |n| %> -#define BOOST_HANA_ADAPT_STRUCT_IMPL_<%= n+1 %>(TYPE <%= (1..n).map { |i| ", m#{i}" }.join %>) \ - namespace boost { namespace hana { \ - template <> \ - struct accessors_impl { \ - static constexpr auto apply() { \ - struct member_names { \ - static constexpr auto get() { \ - return ::boost::hana::make_tuple( \ - <%= (1..n).map { |i| "BOOST_HANA_PP_STRINGIZE(m#{i})" }.join(', ') %> \ - ); \ - } \ - }; \ - return ::boost::hana::make_tuple( \ - <%= (1..n).map { |i| "::boost::hana::make_pair(::boost::hana::struct_detail::prepare_member_name<#{i-1}, member_names>(), ::boost::hana::struct_detail::member_ptr{})" }.join(', ') %>\ - ); \ - } \ - }; \ - }} \ -/**/ -<% end %> - -////////////////////////////////////////////////////////////////////////////// -// BOOST_HANA_ADAPT_ADT -////////////////////////////////////////////////////////////////////////////// -template -struct BOOST_HANA_ADAPT_ADT_must_be_called_in_the_global_namespace; - -#define BOOST_HANA_ADAPT_ADT(...) \ - template <> \ - struct BOOST_HANA_ADAPT_ADT_must_be_called_in_the_global_namespace<>; \ - BOOST_HANA_ADAPT_ADT_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__) \ - static_assert(true, "force the usage of a trailing semicolon") \ -/**/ - -#define BOOST_HANA_ADAPT_ADT_IMPL(N, ...) \ - BOOST_HANA_PP_CONCAT(BOOST_HANA_ADAPT_ADT_IMPL_, N)(__VA_ARGS__) - -<% (0..MAX_NUMBER_OF_MEMBERS).each do |n| %> -#define BOOST_HANA_ADAPT_ADT_IMPL_<%= n+1 %>(TYPE <%= (1..n).map { |i| ", m#{i}" }.join %>) \ - namespace boost { namespace hana { \ - template <> \ - struct accessors_impl { \ - template \ - static constexpr auto apply() { \ - struct member_names { \ - static constexpr auto get() { \ - return ::boost::hana::make_tuple( \ - <%= (1..n).map { |i| "BOOST_HANA_PP_STRINGIZE(BOOST_HANA_PP_FRONT m#{i})" }.join(', ') %>\ - ); \ - } \ - }; \ - return ::boost::hana::make_tuple( \ - <%= (1..n).map { |i| "::boost::hana::make_pair(::boost::hana::struct_detail::prepare_member_name<#{i-1}, member_names>(), BOOST_HANA_PP_DROP_FRONT m#{i})" }.join(', ') %>\ - ); \ - } \ - }; \ - }} \ -/**/ -<% end %> - -////////////////////////////////////////////////////////////////////////////// -// BOOST_HANA_DEFINE_STRUCT -////////////////////////////////////////////////////////////////////////////// -#define BOOST_HANA_DEFINE_STRUCT(...) \ - BOOST_HANA_DEFINE_STRUCT_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__) - -#define BOOST_HANA_DEFINE_STRUCT_IMPL(N, ...) \ - BOOST_HANA_PP_CONCAT(BOOST_HANA_DEFINE_STRUCT_IMPL_, N)(__VA_ARGS__) - -<% (0..MAX_NUMBER_OF_MEMBERS).each do |n| %> -#define BOOST_HANA_DEFINE_STRUCT_IMPL_<%= n+1 %>(TYPE <%= (1..n).map { |i| ", m#{i}" }.join %>) \ - <%= (1..n).map { |i| "BOOST_HANA_PP_DROP_BACK m#{i} BOOST_HANA_PP_BACK m#{i};" }.join(' ') %> \ - \ - struct hana_accessors_impl { \ - static constexpr auto apply() { \ - struct member_names { \ - static constexpr auto get() { \ - return ::boost::hana::make_tuple( \ - <%= (1..n).map { |i| "BOOST_HANA_PP_STRINGIZE(BOOST_HANA_PP_BACK m#{i})" }.join(', ') %>\ - ); \ - } \ - }; \ - return ::boost::hana::make_tuple( \ - <%= (1..n).map { |i| "::boost::hana::make_pair(::boost::hana::struct_detail::prepare_member_name<#{i-1}, member_names>(), ::boost::hana::struct_detail::member_ptr{})" }.join(', ') %>\ - ); \ - } \ - } \ -/**/ -<% end %> - -#endif // !BOOST_HANA_DETAIL_STRUCT_MACROS_HPP diff --git a/boost/json/json.natvis b/boost/json/json.natvis deleted file mode 100644 index 940c17b3..00000000 --- a/boost/json/json.natvis +++ /dev/null @@ -1,109 +0,0 @@ - - - - - default - shared - trivial - shared, trivial - non-owning - - ((shared_resource*)(i_&~3))->refs - (shared_resource*)(i_&~3) - (memory_resource*)(i_&~3) - - - - - $T1* - - refs - - - - - monotonic_resource - - head_->n - - - - - static_resource - - n_ - - - - - null - {sca_.b} - {sca_.i} - {sca_.u}u - {sca_.d} - {((char*)(str_.impl_.p_.t+1)),[str_.impl_.p_.t->size]s} - {((char*)(str_.impl_.k_.s)),[str_.impl_.k_.n]s}: - {str_.impl_.s_.buf,[detail::string_impl::sbo_chars_-str_.impl_.s_.buf[detail::string_impl::sbo_chars_]]s} - array [{arr_.t_->size}] - object [{obj_.t_->size}] - - str_ - str_ - str_ - arr_ - obj_ - - - - - {((char*)(impl_.p_.t+1)),[impl_.p_.t->size]s} - {((char*)(impl_.k_.s)),[impl_.k_.n]s}: - {impl_.s_.buf,[detail::string_impl::sbo_chars_-impl_.s_.buf[detail::string_impl::sbo_chars_]]s} - - - impl_.s_.k==kind::string?impl_.p_.t->size:detail::string_impl::sbo_chars_-impl_.s_.buf[detail::string_impl::sbo_chars_] - impl_.s_.k==kind::string?impl_.p_.t->capacity:detail::string_impl::sbo_chars_ - sp_ - - - - - array [{t_->size}] - - - t_->size - ((value*)(t_+1)) - - t_->capacity - sp_ - - - - - object [{t_->size}] - - - t_->size - (boost::json::key_value_pair*)(t_+1) - - t_->capacity - sp_ - - - - - {{ {key_,[len_]s}, null }} - {{ {key_,[len_]s}, {value_.sca_.b} }} - {{ {key_,[len_]s}, {value_.sca_.i} }} - {{ {key_,[len_]s}, {value_.sca_.u} }} - {{ {key_,[len_]s}, {value_.sca_.d} }} - {{ {key_,[len_]s}, {((char*)(value_.str_.impl_.p_.t+1)),[value_.str_.impl_.p_.t->size]s} }} - {{ {key_,[len_]s}, {value_.str_.impl_.s_.buf,[detail::string_impl::sbo_chars_-value_.str_.impl_.s_.buf[detail::string_impl::sbo_chars_]]s} }} - {{ {key_,[len_]s}, array [{value_.arr_.t_->size}] }} - {{ {key_,[len_]s}, object [{value_.obj_.t_->size}] }} - - &this->value_ - - - - diff --git a/boost/numeric/odeint/util/ublas_matrix_expression.patch b/boost/numeric/odeint/util/ublas_matrix_expression.patch deleted file mode 100644 index 4e8ac6c9..00000000 --- a/boost/numeric/odeint/util/ublas_matrix_expression.patch +++ /dev/null @@ -1,6 +0,0 @@ -3390,3392c3390 -< typename enable_if< is_convertible, -< typename matrix_binary_scalar2_traits >::result_type -< > ::result_type ---- -> typename matrix_binary_scalar2_traits >::result_type diff --git a/boost/pool/detail/for.m4 b/boost/pool/detail/for.m4 deleted file mode 100644 index f926a11d..00000000 --- a/boost/pool/detail/for.m4 +++ /dev/null @@ -1,107 +0,0 @@ -m4_dnl -m4_dnl Copyright (C) 2000 Stephen Cleary -m4_dnl -m4_dnl Distributed under the Boost Software License, Version 1.0. (See accompany- -m4_dnl ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -m4_dnl -m4_dnl See http://www.boost.org for updates, documentation, and revision history. -m4_dnl -m4_dnl -m4_dnl -m4_dnl BOOST_M4_FOR: repeat a given text for a range of values -m4_dnl $1 - variable to hold the current value. -m4_dnl $2 - the starting value. -m4_dnl $3 - the ending value (text is _not_ repeated for this value). -m4_dnl $4 - the text to repeat. -m4_dnl $5 - the delimeter text (optional). -m4_dnl -m4_dnl If the starting value is < ending value: -m4_dnl Will repeat $4, binding $1 to the values in the range [$2, $3). -m4_dnl Else (that is, starting value >= ending value): -m4_dnl Will do nothing -m4_dnl Repeats $5 in-between each occurrence of $4 -m4_dnl -m4_dnl Logic: -m4_dnl Set $1 to $2 and call BOOST_M4_FOR_LIST_HELPER: -m4_dnl If $1 >= $3, do nothing -m4_dnl Else -m4_dnl output $4, -m4_dnl set $1 to itself incremented, -m4_dnl If $1 != $3, output $5, -m4_dnl and use recursion -m4_dnl -m4_define(`BOOST_M4_FOR', - `m4_ifelse(m4_eval($# < 4 || $# > 5), 1, - `m4_errprint(m4___file__:m4___line__: `Boost m4 script: BOOST_M4_FOR: Wrong number of arguments ($#)')', - `m4_pushdef(`$1', `$2')BOOST_M4_FOR_HELPER($@)m4_popdef(`$1')')')m4_dnl -m4_define(`BOOST_M4_FOR_HELPER', - `m4_ifelse(m4_eval($1 >= $3), 1, , - `$4`'m4_define(`$1', m4_incr($1))m4_ifelse(m4_eval($1 != $3), 1, `$5')`'BOOST_M4_FOR_HELPER($@)')')m4_dnl -m4_dnl -m4_dnl Testing/Examples: -m4_dnl -m4_dnl The following line will output: -m4_dnl "repeat.m4:42: Boost m4 script: BOOST_M4_FOR: Wrong number of arguments (3)" -m4_dnl BOOST_M4_FOR(i, 1, 3) -m4_dnl -m4_dnl The following line will output: -m4_dnl "repeat.m4:46: Boost m4 script: BOOST_M4_FOR: Wrong number of arguments (6)" -m4_dnl BOOST_M4_FOR(i, 1, 3, i, ` ', 13) -m4_dnl -m4_dnl The following line will output (nothing): -m4_dnl "" -m4_dnl BOOST_M4_FOR(i, 7, 0, i ) -m4_dnl -m4_dnl The following line will output (nothing): -m4_dnl "" -m4_dnl BOOST_M4_FOR(i, 0, 0, i ) -m4_dnl -m4_dnl The following line will output: -m4_dnl "0 1 2 3 4 5 6 " -m4_dnl BOOST_M4_FOR(i, 0, 7, i ) -m4_dnl -m4_dnl The following line will output: -m4_dnl "-13 -12 -11 " -m4_dnl BOOST_M4_FOR(i, -13, -10, i ) -m4_dnl -m4_dnl The following two lines will output: -m4_dnl "(0, 0) (0, 1) (0, 2) (0, 3) " -m4_dnl "(1, 0) (1, 1) (1, 2) (1, 3) " -m4_dnl "(2, 0) (2, 1) (2, 2) (2, 3) " -m4_dnl "(3, 0) (3, 1) (3, 2) (3, 3) " -m4_dnl "(4, 0) (4, 1) (4, 2) (4, 3) " -m4_dnl "(5, 0) (5, 1) (5, 2) (5, 3) " -m4_dnl "(6, 0) (6, 1) (6, 2) (6, 3) " -m4_dnl "(7, 0) (7, 1) (7, 2) (7, 3) " -m4_dnl "" -m4_dnl BOOST_M4_FOR(i, 0, 8, BOOST_M4_FOR(j, 0, 4, (i, j) ) -m4_dnl ) -m4_dnl -m4_dnl The following line will output (nothing): -m4_dnl "" -m4_dnl BOOST_M4_FOR(i, 7, 0, i, |) -m4_dnl -m4_dnl The following line will output (nothing): -m4_dnl "" -m4_dnl BOOST_M4_FOR(i, 0, 0, i, |) -m4_dnl -m4_dnl The following line will output: -m4_dnl "0|1|2|3|4|5|6" -m4_dnl BOOST_M4_FOR(i, 0, 7, i, |) -m4_dnl -m4_dnl The following line will output: -m4_dnl "-13, -12, -11" -m4_dnl BOOST_M4_FOR(i, -13, -10, i, `, ') -m4_dnl -m4_dnl The following two lines will output: -m4_dnl "[(0, 0), (0, 1), (0, 2), (0, 3)]," -m4_dnl "[(1, 0), (1, 1), (1, 2), (1, 3)]," -m4_dnl "[(2, 0), (2, 1), (2, 2), (2, 3)]," -m4_dnl "[(3, 0), (3, 1), (3, 2), (3, 3)]," -m4_dnl "[(4, 0), (4, 1), (4, 2), (4, 3)]," -m4_dnl "[(5, 0), (5, 1), (5, 2), (5, 3)]," -m4_dnl "[(6, 0), (6, 1), (6, 2), (6, 3)]," -m4_dnl "[(7, 0), (7, 1), (7, 2), (7, 3)]" -m4_dnl BOOST_M4_FOR(i, 0, 8, `[BOOST_M4_FOR(j, 0, 4, (i, j), `, ')]', `, -m4_dnl ') -m4_dnl \ No newline at end of file diff --git a/boost/pool/detail/pool_construct.bat b/boost/pool/detail/pool_construct.bat deleted file mode 100755 index e13066a7..00000000 --- a/boost/pool/detail/pool_construct.bat +++ /dev/null @@ -1,24 +0,0 @@ -@echo off -rem -rem Copyright (C) 2000, 2001 Stephen Cleary -rem -rem Distributed under the Boost Software License, Version 1.0. (See accompany- -rem ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - - - -rem Check for Windows NT -if %OS%==Windows_NT goto NT - -rem Not NT - run m4 as normal, then exit -m4 -P -E -DNumberOfArguments=%1 pool_construct.m4 > pool_construct.ipp -goto end - -rem DJGPP programs (including m4) running on Windows/NT do NOT support long -rem file names (see the DJGPP v2 FAQ, question 8.1) -rem Note that the output doesn't have to be a short name because it's an -rem argument to the command shell, not m4. -:NT -m4 -P -E -DNumberOfArguments=%1 < pool_construct.m4 > pool_construct.ipp - -:end diff --git a/boost/pool/detail/pool_construct.m4 b/boost/pool/detail/pool_construct.m4 deleted file mode 100644 index 3ae6b78c..00000000 --- a/boost/pool/detail/pool_construct.m4 +++ /dev/null @@ -1,84 +0,0 @@ -m4_dnl -m4_dnl Copyright (C) 2000 Stephen Cleary -m4_dnl -m4_dnl Distributed under the Boost Software License, Version 1.0. (See accompany- -m4_dnl ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -m4_dnl -m4_dnl See http://www.boost.org for updates, documentation, and revision history. -m4_dnl -m4_dnl -m4_dnl -m4_dnl Avoid the use of any m4_* identifiers in this header file, -m4_dnl as that may cause incompatibility problems with future -m4_dnl versions of m4. -m4_dnl -m4_dnl This is a normal header file, except that lines starting -m4_dnl with `m4_dnl' will be stripped, TBA_FOR -m4_dnl macros will be replaced with repeated text, and text in -m4_dnl single quotes (`...') will have their single quotes -m4_dnl stripped. -m4_dnl -m4_dnl -m4_dnl Check to make sure NumberOfArguments was defined. If it's not defined, -m4_dnl default to 3 -m4_dnl -m4_ifdef(`NumberOfArguments', , `m4_errprint(m4___file__:m4___line__`: NumberOfArguments is not defined; defaulting to 3 -')m4_define(`NumberOfArguments', 3)')m4_dnl -m4_ifelse(NumberOfArguments, , `m4_errprint(m4___file__:m4___line__`: NumberOfArguments is defined to be empty; defaulting to 3 -')m4_define(`NumberOfArguments', 3)')m4_dnl -m4_dnl -m4_dnl Check to make sure NumberOfArguments >= 1. If it's not, then fatal error. -m4_dnl -m4_ifelse(m4_eval(NumberOfArguments < 1), 1, `m4_errprint(m4___file__:m4___line__`: NumberOfArguments ('NumberOfArguments`) is less than 1 -')m4_m4exit(1)')m4_dnl -m4_dnl -m4_dnl Include the BOOST_M4_FOR macro definition -m4_dnl -m4_include(`for.m4')`'m4_dnl -m4_dnl -m4_dnl Begin the generated file. -m4_dnl -// Copyright (C) 2000 Stephen Cleary -// -// Distributed under the Boost Software License, Version 1.0. (See accompany- -// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org for updates, documentation, and revision history. - -m4_dnl These warnings apply to the file generated from this file. -m4_dnl Of course, you may freely edit this file. -// This file was AUTOMATICALLY GENERATED from "m4___file__" -// Do NOT include directly! -// Do NOT edit! - -m4_dnl -m4_dnl First we define a simple 'cv_qual' macro which takes a number, either -m4_dnl 0, 1, 2, or 3, and determines cv-qualification. -m4_dnl -m4_define(`cv_qual', -`m4_ifelse($1, 0, `', -`m4_ifelse($1, 1, `const ', -`m4_ifelse($1, 2, `volatile ', -`m4_ifelse($1, 3, `const volatile ', -`m4_errprint(m4___file__:m4___line__: `Boost m4 script: cv-determiner: Not 0, 1, 2, or 3 (was '$1`)')' -)')')')')m4_dnl -m4_dnl -m4_dnl Next we go through the actual loop. For each number of arguments from -m4_dnl 1 to NumberOfArguments, we create a template function that takes that -m4_dnl many template arguments, and also generate all cv-qualified permutations -m4_dnl of that function. -m4_dnl -BOOST_M4_FOR(N, 1, NumberOfArguments + 1, -`BOOST_M4_FOR(cv, 0, m4_eval(4 ** N), - `template -element_type * construct(BOOST_M4_FOR(i, 0, N, - `cv_qual(m4_eval((cv >> (i * 2)) % 4))T`'i & a`'i', `, ')) -{ - element_type * const ret = (malloc)(); - if (ret == 0) - return ret; - try { new (ret) element_type(BOOST_M4_FOR(i, 0, N, `a`'i', `, ')); } - catch (...) { (free)(ret); throw; } - return ret; -} -')') diff --git a/boost/pool/detail/pool_construct.sh b/boost/pool/detail/pool_construct.sh deleted file mode 100644 index 4596e068..00000000 --- a/boost/pool/detail/pool_construct.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2000 Stephen Cleary -# -# Distributed under the Boost Software License, Version 1.0. (See accompany- -# ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# -# See http://www.boost.org for updates, documentation, and revision history. -# - -m4 -P -E -DNumberOfArguments=$1 pool_construct.m4 > pool_construct.ipp - diff --git a/boost/pool/detail/pool_construct_simple.bat b/boost/pool/detail/pool_construct_simple.bat deleted file mode 100755 index 8a347b9e..00000000 --- a/boost/pool/detail/pool_construct_simple.bat +++ /dev/null @@ -1,25 +0,0 @@ -@echo off -rem -rem Copyright (C) 2001 Stephen Cleary -rem -rem Distributed under the Boost Software License, Version 1.0. (See accompany- -rem ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -rem -rem See http://www.boost.org for updates, documentation, and revision history. -rem - -rem Check for Windows NT -if %OS%==Windows_NT goto NT - -rem Not NT - run m4 as normal, then exit -m4 -P -E -DNumberOfArguments=%1 pool_construct_simple.m4 > pool_construct_simple.ipp -goto end - -rem DJGPP programs (including m4) running on Windows/NT do NOT support long -rem file names (see the DJGPP v2 FAQ, question 8.1) -rem Note that the output doesn't have to be a short name because it's an -rem argument to the command shell, not m4. -:NT -m4 -P -E -DNumberOfArguments=%1 < pool_construct_simple.m4 > pool_construct_simple.ipp - -:end diff --git a/boost/pool/detail/pool_construct_simple.m4 b/boost/pool/detail/pool_construct_simple.m4 deleted file mode 100644 index 9d598ef3..00000000 --- a/boost/pool/detail/pool_construct_simple.m4 +++ /dev/null @@ -1,72 +0,0 @@ -m4_dnl -m4_dnl Copyright (C) 2001 Stephen Cleary -m4_dnl -m4_dnl Distributed under the Boost Software License, Version 1.0. (See accompany- -m4_dnl ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -m4_dnl -m4_dnl See http://www.boost.org for updates, documentation, and revision history. -m4_dnl -m4_dnl -m4_dnl -m4_dnl Avoid the use of any m4_* identifiers in this header file, -m4_dnl as that may cause incompatibility problems with future -m4_dnl versions of m4. -m4_dnl -m4_dnl This is a normal header file, except that lines starting -m4_dnl with `m4_dnl' will be stripped, TBA_FOR -m4_dnl macros will be replaced with repeated text, and text in -m4_dnl single quotes (`...') will have their single quotes -m4_dnl stripped. -m4_dnl -m4_dnl -m4_dnl Check to make sure NumberOfArguments was defined. If it's not defined, -m4_dnl default to 3 -m4_dnl -m4_ifdef(`NumberOfArguments', , `m4_errprint(m4___file__:m4___line__`: NumberOfArguments is not defined; defaulting to 3 -')m4_define(`NumberOfArguments', 3)')m4_dnl -m4_ifelse(NumberOfArguments, , `m4_errprint(m4___file__:m4___line__`: NumberOfArguments is defined to be empty; defaulting to 3 -')m4_define(`NumberOfArguments', 3)')m4_dnl -m4_dnl -m4_dnl Check to make sure NumberOfArguments >= 1. If it's not, then fatal error. -m4_dnl -m4_ifelse(m4_eval(NumberOfArguments < 1), 1, `m4_errprint(m4___file__:m4___line__`: NumberOfArguments ('NumberOfArguments`) is less than 1 -')m4_m4exit(1)')m4_dnl -m4_dnl -m4_dnl Include the BOOST_M4_FOR macro definition -m4_dnl -m4_include(`for.m4')`'m4_dnl -m4_dnl -m4_dnl Begin the generated file. -m4_dnl -// Copyright (C) 2000 Stephen Cleary -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org for updates, documentation, and revision history. - -m4_dnl These warnings apply to the file generated from this file. -m4_dnl Of course, you may freely edit this file. -// This file was AUTOMATICALLY GENERATED from "m4___file__" -// Do NOT include directly! -// Do NOT edit! - -m4_dnl -m4_dnl Here we go through the actual loop. For each number of arguments from -m4_dnl 1 to NumberOfArguments, we create a template function that takes that -m4_dnl many template arguments. -m4_dnl -BOOST_M4_FOR(N, 1, NumberOfArguments + 1, -`template -element_type * construct(BOOST_M4_FOR(i, 0, N, - `const T`'i & a`'i', `, ')) -{ - element_type * const ret = (malloc)(); - if (ret == 0) - return ret; - try { new (ret) element_type(BOOST_M4_FOR(i, 0, N, `a`'i', `, ')); } - catch (...) { (free)(ret); throw; } - return ret; -} -') diff --git a/boost/pool/detail/pool_construct_simple.sh b/boost/pool/detail/pool_construct_simple.sh deleted file mode 100644 index 93b4d599..00000000 --- a/boost/pool/detail/pool_construct_simple.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2001 Stephen Cleary -# -# Distributed under the Boost Software License, Version 1.0. (See accompany- -# ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# -# See http://www.boost.org for updates, documentation, and revision history. -# - -m4 -P -E -DNumberOfArguments=$1 pool_construct_simple.m4 > pool_construct_simple.ipp - diff --git a/boost/safe_numerics/CMakeLists.txt b/boost/safe_numerics/CMakeLists.txt deleted file mode 100644 index cd94725f..00000000 --- a/boost/safe_numerics/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -#################### -# add include headers to IDE - -file(GLOB include_files - RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" - "*.hpp" -) -add_custom_target(safe_numerics SOURCES ${include_files}) - -add_subdirectory("concept") - -# end headers in IDE -#################### diff --git a/boost/safe_numerics/concept/CMakeLists.txt b/boost/safe_numerics/concept/CMakeLists.txt deleted file mode 100644 index 22f8629f..00000000 --- a/boost/safe_numerics/concept/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -#################### -# add include headers to IDE - -set(USE_FOLDERS TRUE) - -file(GLOB include_files - RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp" -) -add_custom_target(concept SOURCES ${include_files}) -set_target_properties(concept PROPERTIES FOLDER "safe_numerics") - -# end headers in IDE -#################### diff --git a/boost/spirit/home/classic/tree/parsetree.dtd b/boost/spirit/home/classic/tree/parsetree.dtd deleted file mode 100644 index 9d847c74..00000000 --- a/boost/spirit/home/classic/tree/parsetree.dtd +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - diff --git a/boost/wave/cpplexer/re2clex/cpp.re b/boost/wave/cpplexer/re2clex/cpp.re deleted file mode 100644 index 98399016..00000000 --- a/boost/wave/cpplexer/re2clex/cpp.re +++ /dev/null @@ -1,615 +0,0 @@ -/*============================================================================= - Boost.Wave: A Standard compliant C++ preprocessor library - - Copyright (c) 2001 Daniel C. Nuffer - Copyright (c) 2001-2013 Hartmut Kaiser. - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - - This is a lexer conforming to the Standard with a few exceptions. - So it does allow the '$' to be part of identifiers. If you need strict - Standards conforming behaviour, please include the lexer definition - provided in the file strict_cpp.re. - - TODO: - handle errors better. -=============================================================================*/ - -/*!re2c -re2c:indent:string = " "; -any = [\t\v\f\r\n\040-\377]; -anyctrl = [\001-\037]; -OctalDigit = [0-7]; -Digit = [0-9]; -HexDigit = [a-fA-F0-9]; -Integer = (("0" [xX] HexDigit+) | ("0" OctalDigit*) | ([1-9] Digit*)); -ExponentStart = [Ee] [+-]; -ExponentPart = [Ee] [+-]? Digit+; -FractionalConstant = (Digit* "." Digit+) | (Digit+ "."); -FloatingSuffix = [fF] [lL]? | [lL] [fF]?; -IntegerSuffix = [uU] [lL]? | [lL] [uU]?; -LongIntegerSuffix = [uU] ("ll" | "LL") | ("ll" | "LL") [uU]?; -MSLongIntegerSuffix = "u"? "i64"; -Backslash = [\\] | "??/"; -EscapeSequence = Backslash ([abfnrtv?'"] | Backslash | "x" HexDigit+ | OctalDigit OctalDigit? OctalDigit?); -HexQuad = HexDigit HexDigit HexDigit HexDigit; -UniversalChar = Backslash ("u" HexQuad | "U" HexQuad HexQuad); -Newline = "\r\n" | "\n" | "\r"; -PPSpace = ([ \t\f\v]|("/*"(any\[*]|Newline|("*"+(any\[*/]|Newline)))*"*"+"/"))*; -Pound = "#" | "??=" | "%:"; -NonDigit = [a-zA-Z_$] | UniversalChar; -*/ - -/*!re2c - "/*" { goto ccomment; } - "//" { goto cppcomment; } - "."? Digit { goto pp_number; } - - "alignas" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); } - "alignof" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); } - "asm" { BOOST_WAVE_RET(T_ASM); } - "auto" { BOOST_WAVE_RET(T_AUTO); } - "bool" { BOOST_WAVE_RET(T_BOOL); } - "break" { BOOST_WAVE_RET(T_BREAK); } - "case" { BOOST_WAVE_RET(T_CASE); } - "catch" { BOOST_WAVE_RET(T_CATCH); } - "char" { BOOST_WAVE_RET(T_CHAR); } - "char8_t" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CHAR8_T : T_IDENTIFIER); } - "char16_t" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); } - "char32_t" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); } - "class" { BOOST_WAVE_RET(T_CLASS); } - "concept" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CONCEPT : T_IDENTIFIER); } - "const" { BOOST_WAVE_RET(T_CONST); } - "consteval" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CONSTEVAL : T_IDENTIFIER); } - "constexpr" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); } - "constinit" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CONSTINIT : T_IDENTIFIER); } - "const_cast" { BOOST_WAVE_RET(T_CONSTCAST); } - "continue" { BOOST_WAVE_RET(T_CONTINUE); } - "co_await" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CO_AWAIT : T_IDENTIFIER); } - "co_return" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CO_RETURN : T_IDENTIFIER); } - "co_yield" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CO_YIELD : T_IDENTIFIER); } - "decltype" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); } - "default" { BOOST_WAVE_RET(T_DEFAULT); } - "delete" { BOOST_WAVE_RET(T_DELETE); } - "do" { BOOST_WAVE_RET(T_DO); } - "double" { BOOST_WAVE_RET(T_DOUBLE); } - "dynamic_cast" { BOOST_WAVE_RET(T_DYNAMICCAST); } - "else" { BOOST_WAVE_RET(T_ELSE); } - "enum" { BOOST_WAVE_RET(T_ENUM); } - "explicit" { BOOST_WAVE_RET(T_EXPLICIT); } - "export" { BOOST_WAVE_RET(T_EXPORT); } - "extern" { BOOST_WAVE_RET(T_EXTERN); } - "false" { BOOST_WAVE_RET(T_FALSE); } - "float" { BOOST_WAVE_RET(T_FLOAT); } - "for" { BOOST_WAVE_RET(T_FOR); } - "friend" { BOOST_WAVE_RET(T_FRIEND); } - "goto" { BOOST_WAVE_RET(T_GOTO); } - "if" { BOOST_WAVE_RET(T_IF); } - "import" { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); } - "inline" { BOOST_WAVE_RET(T_INLINE); } - "int" { BOOST_WAVE_RET(T_INT); } - "long" { BOOST_WAVE_RET(T_LONG); } - "mutable" { BOOST_WAVE_RET(T_MUTABLE); } - "namespace" { BOOST_WAVE_RET(T_NAMESPACE); } - "new" { BOOST_WAVE_RET(T_NEW); } - "noexcept" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); } - "nullptr" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); } - "operator" { BOOST_WAVE_RET(T_OPERATOR); } - "private" { BOOST_WAVE_RET(T_PRIVATE); } - "protected" { BOOST_WAVE_RET(T_PROTECTED); } - "public" { BOOST_WAVE_RET(T_PUBLIC); } - "register" { BOOST_WAVE_RET(T_REGISTER); } - "reinterpret_cast" { BOOST_WAVE_RET(T_REINTERPRETCAST); } - "requires" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_REQUIRES : T_IDENTIFIER); } - "return" { BOOST_WAVE_RET(T_RETURN); } - "short" { BOOST_WAVE_RET(T_SHORT); } - "signed" { BOOST_WAVE_RET(T_SIGNED); } - "sizeof" { BOOST_WAVE_RET(T_SIZEOF); } - "static" { BOOST_WAVE_RET(T_STATIC); } - "static_cast" { BOOST_WAVE_RET(T_STATICCAST); } - "static_assert" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); } - "struct" { BOOST_WAVE_RET(T_STRUCT); } - "switch" { BOOST_WAVE_RET(T_SWITCH); } - "template" { BOOST_WAVE_RET(T_TEMPLATE); } - "this" { BOOST_WAVE_RET(T_THIS); } - "thread_local" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); } - "throw" { BOOST_WAVE_RET(T_THROW); } - "true" { BOOST_WAVE_RET(T_TRUE); } - "try" { BOOST_WAVE_RET(T_TRY); } - "typedef" { BOOST_WAVE_RET(T_TYPEDEF); } - "typeid" { BOOST_WAVE_RET(T_TYPEID); } - "typename" { BOOST_WAVE_RET(T_TYPENAME); } - "union" { BOOST_WAVE_RET(T_UNION); } - "unsigned" { BOOST_WAVE_RET(T_UNSIGNED); } - "using" { BOOST_WAVE_RET(T_USING); } - "virtual" { BOOST_WAVE_RET(T_VIRTUAL); } - "void" { BOOST_WAVE_RET(T_VOID); } - "volatile" { BOOST_WAVE_RET(T_VOLATILE); } - "wchar_t" { BOOST_WAVE_RET(T_WCHART); } - "while" { BOOST_WAVE_RET(T_WHILE); } - - "__int8" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); } - "__int16" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); } - "__int32" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); } - "__int64" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); } - "_"? "_based" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); } - "_"? "_declspec" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); } - "_"? "_cdecl" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); } - "_"? "_fastcall" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); } - "_"? "_stdcall" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); } - "__try" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); } - "__except" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); } - "__finally" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); } - "__leave" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); } - "_"? "_inline" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); } - "_"? "_asm" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); } - - "{" { BOOST_WAVE_RET(T_LEFTBRACE); } - "??<" { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); } - "<%" { BOOST_WAVE_RET(T_LEFTBRACE_ALT); } - "}" { BOOST_WAVE_RET(T_RIGHTBRACE); } - "??>" { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); } - "%>" { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); } - "[" { BOOST_WAVE_RET(T_LEFTBRACKET); } - "??(" { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); } - "<:" { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); } - "]" { BOOST_WAVE_RET(T_RIGHTBRACKET); } - "??)" { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); } - ":>" { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); } - "#" { BOOST_WAVE_RET(T_POUND); } - "%:" { BOOST_WAVE_RET(T_POUND_ALT); } - "??=" { BOOST_WAVE_RET(T_POUND_TRIGRAPH); } - "##" { BOOST_WAVE_RET(T_POUND_POUND); } - "#??=" { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); } - "??=#" { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); } - "??=??=" { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); } - "%:%:" { BOOST_WAVE_RET(T_POUND_POUND_ALT); } - "(" { BOOST_WAVE_RET(T_LEFTPAREN); } - ")" { BOOST_WAVE_RET(T_RIGHTPAREN); } - ";" { BOOST_WAVE_RET(T_SEMICOLON); } - ":" { BOOST_WAVE_RET(T_COLON); } - "..." { BOOST_WAVE_RET(T_ELLIPSIS); } - "?" { BOOST_WAVE_RET(T_QUESTION_MARK); } - "::" - { - if (s->act_in_c99_mode) { - --YYCURSOR; - BOOST_WAVE_RET(T_COLON); - } - else { - BOOST_WAVE_RET(T_COLON_COLON); - } - } - "." { BOOST_WAVE_RET(T_DOT); } - ".*" - { - if (s->act_in_c99_mode) { - --YYCURSOR; - BOOST_WAVE_RET(T_DOT); - } - else { - BOOST_WAVE_RET(T_DOTSTAR); - } - } - "+" { BOOST_WAVE_RET(T_PLUS); } - "-" { BOOST_WAVE_RET(T_MINUS); } - "*" { BOOST_WAVE_RET(T_STAR); } - "/" { BOOST_WAVE_RET(T_DIVIDE); } - "%" { BOOST_WAVE_RET(T_PERCENT); } - "^" { BOOST_WAVE_RET(T_XOR); } - "??'" { BOOST_WAVE_RET(T_XOR_TRIGRAPH); } - "xor" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); } - "&" { BOOST_WAVE_RET(T_AND); } - "bitand" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); } - "|" { BOOST_WAVE_RET(T_OR); } - "bitor" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); } - "??!" { BOOST_WAVE_RET(T_OR_TRIGRAPH); } - "~" { BOOST_WAVE_RET(T_COMPL); } - "??-" { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); } - "compl" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); } - "!" { BOOST_WAVE_RET(T_NOT); } - "not" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); } - "=" { BOOST_WAVE_RET(T_ASSIGN); } - "<" { BOOST_WAVE_RET(T_LESS); } - ">" { BOOST_WAVE_RET(T_GREATER); } - "+=" { BOOST_WAVE_RET(T_PLUSASSIGN); } - "-=" { BOOST_WAVE_RET(T_MINUSASSIGN); } - "*=" { BOOST_WAVE_RET(T_STARASSIGN); } - "/=" { BOOST_WAVE_RET(T_DIVIDEASSIGN); } - "%=" { BOOST_WAVE_RET(T_PERCENTASSIGN); } - "^=" { BOOST_WAVE_RET(T_XORASSIGN); } - "xor_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); } - "??'=" { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); } - "&=" { BOOST_WAVE_RET(T_ANDASSIGN); } - "and_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); } - "|=" { BOOST_WAVE_RET(T_ORASSIGN); } - "or_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); } - "??!=" { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); } - "<<" { BOOST_WAVE_RET(T_SHIFTLEFT); } - ">>" { BOOST_WAVE_RET(T_SHIFTRIGHT); } - ">>=" { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); } - "<<=" { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); } - "==" { BOOST_WAVE_RET(T_EQUAL); } - "!=" { BOOST_WAVE_RET(T_NOTEQUAL); } - "not_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); } - "<=>" - { - if (s->act_in_cpp2a_mode) { - BOOST_WAVE_RET(T_SPACESHIP); - } - else { - --YYCURSOR; - BOOST_WAVE_RET(T_LESSEQUAL); - } - } - "<=" { BOOST_WAVE_RET(T_LESSEQUAL); } - ">=" { BOOST_WAVE_RET(T_GREATEREQUAL); } - "&&" { BOOST_WAVE_RET(T_ANDAND); } - "and" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); } - "||" { BOOST_WAVE_RET(T_OROR); } - "??!|" { BOOST_WAVE_RET(T_OROR_TRIGRAPH); } - "|??!" { BOOST_WAVE_RET(T_OROR_TRIGRAPH); } - "or" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); } - "??!??!" { BOOST_WAVE_RET(T_OROR_TRIGRAPH); } - "++" { BOOST_WAVE_RET(T_PLUSPLUS); } - "--" { BOOST_WAVE_RET(T_MINUSMINUS); } - "," { BOOST_WAVE_RET(T_COMMA); } - "->*" - { - if (s->act_in_c99_mode) { - --YYCURSOR; - BOOST_WAVE_RET(T_ARROW); - } - else { - BOOST_WAVE_RET(T_ARROWSTAR); - } - } - "->" { BOOST_WAVE_RET(T_ARROW); } - "??/" { BOOST_WAVE_RET(T_ANY_TRIGRAPH); } - - "L"? (['] (EscapeSequence | UniversalChar | any\[\n\r\\'])+ [']) - { BOOST_WAVE_RET(T_CHARLIT); } - - "L"? (["] (EscapeSequence | UniversalChar | any\[\n\r\\"])* ["]) - { BOOST_WAVE_RET(T_STRINGLIT); } - - "L"? "R" ["] - { - if (s->act_in_cpp0x_mode) - { - rawstringdelim = ""; - goto extrawstringlit; - } - --YYCURSOR; - BOOST_WAVE_RET(T_IDENTIFIER); - } - - [uU] ['] - { - if (s->act_in_cpp0x_mode) - goto extcharlit; - --YYCURSOR; - BOOST_WAVE_RET(T_IDENTIFIER); - } - - ([uU] | "u8") ["] - { - if (s->act_in_cpp0x_mode) - goto extstringlit; - --YYCURSOR; - BOOST_WAVE_RET(T_IDENTIFIER); - } - - ([uU] | "u8") "R" ["] - { - if (s->act_in_cpp0x_mode) - { - rawstringdelim = ""; - goto extrawstringlit; - } - --YYCURSOR; - BOOST_WAVE_RET(T_IDENTIFIER); - } - - ([a-zA-Z_$] | UniversalChar) ([a-zA-Z_0-9$] | UniversalChar)* - { BOOST_WAVE_RET(T_IDENTIFIER); } - - Pound PPSpace ( "include" | "include_next") PPSpace "<" (any\[\n\r>])+ ">" - { BOOST_WAVE_RET(T_PP_HHEADER); } - - Pound PPSpace ( "include" | "include_next") PPSpace "\"" (any\[\n\r"])+ "\"" - { BOOST_WAVE_RET(T_PP_QHEADER); } - - Pound PPSpace ( "include" | "include_next") PPSpace - { BOOST_WAVE_RET(T_PP_INCLUDE); } - - Pound PPSpace "if" { BOOST_WAVE_RET(T_PP_IF); } - Pound PPSpace "ifdef" { BOOST_WAVE_RET(T_PP_IFDEF); } - Pound PPSpace "ifndef" { BOOST_WAVE_RET(T_PP_IFNDEF); } - Pound PPSpace "else" { BOOST_WAVE_RET(T_PP_ELSE); } - Pound PPSpace "elif" { BOOST_WAVE_RET(T_PP_ELIF); } - Pound PPSpace "endif" { BOOST_WAVE_RET(T_PP_ENDIF); } - Pound PPSpace "define" { BOOST_WAVE_RET(T_PP_DEFINE); } - Pound PPSpace "undef" { BOOST_WAVE_RET(T_PP_UNDEF); } - Pound PPSpace "line" { BOOST_WAVE_RET(T_PP_LINE); } - Pound PPSpace "error" { BOOST_WAVE_RET(T_PP_ERROR); } - Pound PPSpace "pragma" { BOOST_WAVE_RET(T_PP_PRAGMA); } - - Pound PPSpace "warning" { BOOST_WAVE_RET(T_PP_WARNING); } - - Pound PPSpace "region" { BOOST_WAVE_RET(T_MSEXT_PP_REGION); } - Pound PPSpace "endregion" { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); } - - [ \t\v\f]+ - { BOOST_WAVE_RET(T_SPACE); } - - Newline - { - s->line++; - cursor.column = 1; - BOOST_WAVE_RET(T_NEWLINE); - } - - "\000" - { - if (s->eof && cursor != s->eof) - { - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "invalid character '\\000' in input stream"); - } - BOOST_WAVE_RET(T_EOF); - } - - any { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); } - - anyctrl - { - // flag the error - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "invalid character '\\%03o' in input stream", *--YYCURSOR); - } -*/ - -ccomment: -/*!re2c - "*/" { BOOST_WAVE_RET(T_CCOMMENT); } - - Newline - { - /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/ - /*s->tok = cursor; */ - s->line += count_backslash_newlines(s, cursor) +1; - cursor.column = 1; - goto ccomment; - } - - any { goto ccomment; } - - "\000" - { - if(cursor == s->eof) - { - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_warning, - "Unterminated 'C' style comment"); - } - else - { - --YYCURSOR; // next call returns T_EOF - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "invalid character: '\\000' in input stream"); - } - } - - anyctrl - { - // flag the error - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "invalid character '\\%03o' in input stream", *--YYCURSOR); - } -*/ - -cppcomment: -/*!re2c - Newline - { - /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */ - /*s->tok = cursor; */ - s->line++; - cursor.column = 1; - BOOST_WAVE_RET(T_CPPCOMMENT); - } - - any { goto cppcomment; } - - "\000" - { - if (s->eof && cursor != s->eof) - { - --YYCURSOR; // next call returns T_EOF - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "invalid character '\\000' in input stream"); - } - - --YYCURSOR; // next call returns T_EOF - if (!s->single_line_only) - { - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_warning, - "Unterminated 'C++' style comment"); - } - BOOST_WAVE_RET(T_CPPCOMMENT); - } - - anyctrl - { - // flag the error - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "invalid character '\\%03o' in input stream", *--YYCURSOR); - } -*/ - -/* this subscanner is called whenever a pp_number has been started */ -pp_number: -{ - cursor = uchar_wrapper(s->tok = s->cur, s->column = s->curr_column); - marker = uchar_wrapper(s->ptr); - limit = uchar_wrapper(s->lim); - - if (s->detect_pp_numbers) { - /*!re2c - "."? Digit (Digit | NonDigit | ExponentStart | ".")* - { BOOST_WAVE_RET(T_PP_NUMBER); } - - // because we reached this point, then reset the cursor, - // the pattern above should always match - * { BOOST_ASSERT(false); } - */ - } - else { - /*!re2c - ((FractionalConstant ExponentPart?) | (Digit+ ExponentPart)) FloatingSuffix? - { BOOST_WAVE_RET(T_FLOATLIT); } - - Integer { goto integer_suffix; } - - // one of the above patterns should always match - * { BOOST_ASSERT(false); } - */ - } -} - -/* this subscanner is called, whenever an Integer was recognized */ -integer_suffix: -{ - if (s->enable_ms_extensions) { - /*!re2c - LongIntegerSuffix | MSLongIntegerSuffix - { BOOST_WAVE_RET(T_LONGINTLIT); } - - IntegerSuffix? - { BOOST_WAVE_RET(T_INTLIT); } - */ - } - else { - /*!re2c - LongIntegerSuffix - { BOOST_WAVE_RET(T_LONGINTLIT); } - - IntegerSuffix? - { BOOST_WAVE_RET(T_INTLIT); } - */ - } - - // re2c will complain about -Wmatch-empty-string above - // it's OK because we've already matched an integer - // and will return T_INTLIT -} - -/* this subscanner is invoked for C++0x extended character literals */ -extcharlit: -{ - /*!re2c - * { - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "Invalid character in raw string delimiter ('%c')", yych); - } - - ((EscapeSequence | UniversalChar | any\[\n\r\\']) [']) - { BOOST_WAVE_RET(T_CHARLIT); } - - any - { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); } - */ -} - -/* this subscanner is invoked for C++0x extended character string literals */ -extstringlit: -{ - /*!re2c - * { - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "Invalid character in raw string delimiter ('%c')", yych); - } - - ((EscapeSequence | UniversalChar | any\[\n\r\\"])* ["]) - { BOOST_WAVE_RET(T_STRINGLIT); } - - any - { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); } - */ -} - -extrawstringlit: -{ - // we have consumed the double quote but not the lparen - // at this point we may see a delimiter - - /*!re2c - * { - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "Invalid character in raw string delimiter ('%c')", yych); - } - - // delimiters are any character but parentheses, backslash, and whitespace - any\[()\\\t\v\f\r\n] - { - rawstringdelim += yych; - if (rawstringdelim.size() > 16) - { - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "Raw string delimiter of excessive length (\"%s\") in input stream", - rawstringdelim.c_str()); - } - goto extrawstringlit; - } - - "(" - { - rawstringdelim = ")" + rawstringdelim; - goto extrawstringbody; - } - - */ -} - -extrawstringbody: -{ - /*!re2c - - * { - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "Invalid character in raw string body ('%c')", yych); - } - - Newline - { - s->line += count_backslash_newlines(s, cursor) +1; - cursor.column = 1; - goto extrawstringbody; - } - - (EscapeSequence | UniversalChar | any\["]) - { - goto extrawstringbody; - } - - ["] - { - // check to see if we have completed a delimiter - if (string_type((char *)(YYCURSOR - rawstringdelim.size() - 1), - (char *)(YYCURSOR - 1)) == rawstringdelim) - { - BOOST_WAVE_RET(T_RAWSTRINGLIT); - } else { - goto extrawstringbody; - } - } - */ -} diff --git a/boost/wave/cpplexer/re2clex/strict_cpp.re b/boost/wave/cpplexer/re2clex/strict_cpp.re deleted file mode 100644 index b9e84ed3..00000000 --- a/boost/wave/cpplexer/re2clex/strict_cpp.re +++ /dev/null @@ -1,611 +0,0 @@ -/*============================================================================= - Boost.Wave: A Standard compliant C++ preprocessor library - - Copyright (c) 2001 Daniel C. Nuffer - Copyright (c) 2001-2011 Hartmut Kaiser. - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - - This is a strict lexer conforming to the Standard as close as possible. - It does not allow the '$' to be part of identifiers. If you need the '$' - character in identifiers please include the lexer definition provided - in the cpp.re file. - - TODO: - handle errors better. -=============================================================================*/ - -/*!re2c -re2c:indent:string = " "; -any = [\t\v\f\r\n\040-\377]; -anyctrl = [\001-\037]; -OctalDigit = [0-7]; -Digit = [0-9]; -HexDigit = [a-fA-F0-9]; -Integer = (("0" [xX] HexDigit+) | ("0" OctalDigit*) | ([1-9] Digit*)); -ExponentStart = [Ee] [+-]; -ExponentPart = [Ee] [+-]? Digit+; -FractionalConstant = (Digit* "." Digit+) | (Digit+ "."); -FloatingSuffix = [fF] [lL]? | [lL] [fF]?; -IntegerSuffix = [uU] [lL]? | [lL] [uU]?; -LongIntegerSuffix = [uU] ("ll" | "LL") | ("ll" | "LL") [uU]?; -Backslash = [\\] | "??/"; -EscapeSequence = Backslash ([abfnrtv?'"] | Backslash | "x" HexDigit+ | OctalDigit OctalDigit? OctalDigit?); -HexQuad = HexDigit HexDigit HexDigit HexDigit; -UniversalChar = Backslash ("u" HexQuad | "U" HexQuad HexQuad); -Newline = "\r\n" | "\n" | "\r"; -PPSpace = ([ \t\f\v]|("/*"(any\[*]|Newline|("*"+(any\[*/]|Newline)))*"*"+"/"))*; -Pound = "#" | "??=" | "%:"; -NonDigit = [a-zA-Z_] | UniversalChar; -*/ - -/*!re2c - "/*" { goto ccomment; } - "//" { goto cppcomment; } - "."? Digit { goto pp_number; } - - "alignas" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNAS : T_IDENTIFIER); } - "alignof" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_ALIGNOF : T_IDENTIFIER); } - "asm" { BOOST_WAVE_RET(T_ASM); } - "auto" { BOOST_WAVE_RET(T_AUTO); } - "bool" { BOOST_WAVE_RET(T_BOOL); } - "break" { BOOST_WAVE_RET(T_BREAK); } - "case" { BOOST_WAVE_RET(T_CASE); } - "catch" { BOOST_WAVE_RET(T_CATCH); } - "char" { BOOST_WAVE_RET(T_CHAR); } - "char8_t" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CHAR8_T : T_IDENTIFIER); } - "char16_t" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR16_T : T_IDENTIFIER); } - "char32_t" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CHAR32_T : T_IDENTIFIER); } - "class" { BOOST_WAVE_RET(T_CLASS); } - "concept" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CONCEPT : T_IDENTIFIER); } - "const" { BOOST_WAVE_RET(T_CONST); } - "consteval" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CONSTEVAL : T_IDENTIFIER); } - "constexpr" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_CONSTEXPR : T_IDENTIFIER); } - "constinit" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CONSTINIT : T_IDENTIFIER); } - "const_cast" { BOOST_WAVE_RET(T_CONSTCAST); } - "continue" { BOOST_WAVE_RET(T_CONTINUE); } - "co_await" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CO_AWAIT : T_IDENTIFIER); } - "co_return" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CO_RETURN : T_IDENTIFIER); } - "co_yield" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_CO_YIELD : T_IDENTIFIER); } - "decltype" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_DECLTYPE : T_IDENTIFIER); } - "default" { BOOST_WAVE_RET(T_DEFAULT); } - "delete" { BOOST_WAVE_RET(T_DELETE); } - "do" { BOOST_WAVE_RET(T_DO); } - "double" { BOOST_WAVE_RET(T_DOUBLE); } - "dynamic_cast" { BOOST_WAVE_RET(T_DYNAMICCAST); } - "else" { BOOST_WAVE_RET(T_ELSE); } - "enum" { BOOST_WAVE_RET(T_ENUM); } - "explicit" { BOOST_WAVE_RET(T_EXPLICIT); } - "export" { BOOST_WAVE_RET(T_EXPORT); } - "extern" { BOOST_WAVE_RET(T_EXTERN); } - "false" { BOOST_WAVE_RET(T_FALSE); } - "float" { BOOST_WAVE_RET(T_FLOAT); } - "for" { BOOST_WAVE_RET(T_FOR); } - "friend" { BOOST_WAVE_RET(T_FRIEND); } - "goto" { BOOST_WAVE_RET(T_GOTO); } - "if" { BOOST_WAVE_RET(T_IF); } - "import" { BOOST_WAVE_RET(s->enable_import_keyword ? T_IMPORT : T_IDENTIFIER); } - "inline" { BOOST_WAVE_RET(T_INLINE); } - "int" { BOOST_WAVE_RET(T_INT); } - "long" { BOOST_WAVE_RET(T_LONG); } - "mutable" { BOOST_WAVE_RET(T_MUTABLE); } - "namespace" { BOOST_WAVE_RET(T_NAMESPACE); } - "new" { BOOST_WAVE_RET(T_NEW); } - "noexcept" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NOEXCEPT : T_IDENTIFIER); } - "nullptr" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_NULLPTR : T_IDENTIFIER); } - "operator" { BOOST_WAVE_RET(T_OPERATOR); } - "private" { BOOST_WAVE_RET(T_PRIVATE); } - "protected" { BOOST_WAVE_RET(T_PROTECTED); } - "public" { BOOST_WAVE_RET(T_PUBLIC); } - "register" { BOOST_WAVE_RET(T_REGISTER); } - "reinterpret_cast" { BOOST_WAVE_RET(T_REINTERPRETCAST); } - "requires" { BOOST_WAVE_RET(s->act_in_cpp2a_mode ? T_REQUIRES : T_IDENTIFIER); } - "return" { BOOST_WAVE_RET(T_RETURN); } - "short" { BOOST_WAVE_RET(T_SHORT); } - "signed" { BOOST_WAVE_RET(T_SIGNED); } - "sizeof" { BOOST_WAVE_RET(T_SIZEOF); } - "static" { BOOST_WAVE_RET(T_STATIC); } - "static_cast" { BOOST_WAVE_RET(T_STATICCAST); } - "static_assert" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_STATICASSERT : T_IDENTIFIER); } - "struct" { BOOST_WAVE_RET(T_STRUCT); } - "switch" { BOOST_WAVE_RET(T_SWITCH); } - "template" { BOOST_WAVE_RET(T_TEMPLATE); } - "this" { BOOST_WAVE_RET(T_THIS); } - "thread_local" { BOOST_WAVE_RET(s->act_in_cpp0x_mode ? T_THREADLOCAL : T_IDENTIFIER); } - "throw" { BOOST_WAVE_RET(T_THROW); } - "true" { BOOST_WAVE_RET(T_TRUE); } - "try" { BOOST_WAVE_RET(T_TRY); } - "typedef" { BOOST_WAVE_RET(T_TYPEDEF); } - "typeid" { BOOST_WAVE_RET(T_TYPEID); } - "typename" { BOOST_WAVE_RET(T_TYPENAME); } - "union" { BOOST_WAVE_RET(T_UNION); } - "unsigned" { BOOST_WAVE_RET(T_UNSIGNED); } - "using" { BOOST_WAVE_RET(T_USING); } - "virtual" { BOOST_WAVE_RET(T_VIRTUAL); } - "void" { BOOST_WAVE_RET(T_VOID); } - "volatile" { BOOST_WAVE_RET(T_VOLATILE); } - "wchar_t" { BOOST_WAVE_RET(T_WCHART); } - "while" { BOOST_WAVE_RET(T_WHILE); } - - "__int8" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT8 : T_IDENTIFIER); } - "__int16" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT16 : T_IDENTIFIER); } - "__int32" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT32 : T_IDENTIFIER); } - "__int64" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INT64 : T_IDENTIFIER); } - "_"? "_based" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_BASED : T_IDENTIFIER); } - "_"? "_declspec" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_DECLSPEC : T_IDENTIFIER); } - "_"? "_cdecl" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_CDECL : T_IDENTIFIER); } - "_"? "_fastcall" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FASTCALL : T_IDENTIFIER); } - "_"? "_stdcall" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_STDCALL : T_IDENTIFIER); } - "__try" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_TRY : T_IDENTIFIER); } - "__except" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_EXCEPT : T_IDENTIFIER); } - "__finally" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_FINALLY : T_IDENTIFIER); } - "__leave" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_LEAVE : T_IDENTIFIER); } - "_"? "_inline" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_INLINE : T_IDENTIFIER); } - "_"? "_asm" { BOOST_WAVE_RET(s->enable_ms_extensions ? T_MSEXT_ASM : T_IDENTIFIER); } - - "{" { BOOST_WAVE_RET(T_LEFTBRACE); } - "??<" { BOOST_WAVE_RET(T_LEFTBRACE_TRIGRAPH); } - "<%" { BOOST_WAVE_RET(T_LEFTBRACE_ALT); } - "}" { BOOST_WAVE_RET(T_RIGHTBRACE); } - "??>" { BOOST_WAVE_RET(T_RIGHTBRACE_TRIGRAPH); } - "%>" { BOOST_WAVE_RET(T_RIGHTBRACE_ALT); } - "[" { BOOST_WAVE_RET(T_LEFTBRACKET); } - "??(" { BOOST_WAVE_RET(T_LEFTBRACKET_TRIGRAPH); } - "<:" { BOOST_WAVE_RET(T_LEFTBRACKET_ALT); } - "]" { BOOST_WAVE_RET(T_RIGHTBRACKET); } - "??)" { BOOST_WAVE_RET(T_RIGHTBRACKET_TRIGRAPH); } - ":>" { BOOST_WAVE_RET(T_RIGHTBRACKET_ALT); } - "#" { BOOST_WAVE_RET(T_POUND); } - "%:" { BOOST_WAVE_RET(T_POUND_ALT); } - "??=" { BOOST_WAVE_RET(T_POUND_TRIGRAPH); } - "##" { BOOST_WAVE_RET(T_POUND_POUND); } - "#??=" { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); } - "??=#" { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); } - "??=??=" { BOOST_WAVE_RET(T_POUND_POUND_TRIGRAPH); } - "%:%:" { BOOST_WAVE_RET(T_POUND_POUND_ALT); } - "(" { BOOST_WAVE_RET(T_LEFTPAREN); } - ")" { BOOST_WAVE_RET(T_RIGHTPAREN); } - ";" { BOOST_WAVE_RET(T_SEMICOLON); } - ":" { BOOST_WAVE_RET(T_COLON); } - "..." { BOOST_WAVE_RET(T_ELLIPSIS); } - "?" { BOOST_WAVE_RET(T_QUESTION_MARK); } - "::" - { - if (s->act_in_c99_mode) { - --YYCURSOR; - BOOST_WAVE_RET(T_COLON); - } - else { - BOOST_WAVE_RET(T_COLON_COLON); - } - } - "." { BOOST_WAVE_RET(T_DOT); } - ".*" - { - if (s->act_in_c99_mode) { - --YYCURSOR; - BOOST_WAVE_RET(T_DOT); - } - else { - BOOST_WAVE_RET(T_DOTSTAR); - } - } - "+" { BOOST_WAVE_RET(T_PLUS); } - "-" { BOOST_WAVE_RET(T_MINUS); } - "*" { BOOST_WAVE_RET(T_STAR); } - "/" { BOOST_WAVE_RET(T_DIVIDE); } - "%" { BOOST_WAVE_RET(T_PERCENT); } - "^" { BOOST_WAVE_RET(T_XOR); } - "??'" { BOOST_WAVE_RET(T_XOR_TRIGRAPH); } - "xor" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XOR_ALT); } - "&" { BOOST_WAVE_RET(T_AND); } - "bitand" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_AND_ALT); } - "|" { BOOST_WAVE_RET(T_OR); } - "bitor" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OR_ALT); } - "??!" { BOOST_WAVE_RET(T_OR_TRIGRAPH); } - "~" { BOOST_WAVE_RET(T_COMPL); } - "??-" { BOOST_WAVE_RET(T_COMPL_TRIGRAPH); } - "compl" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_COMPL_ALT); } - "!" { BOOST_WAVE_RET(T_NOT); } - "not" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOT_ALT); } - "=" { BOOST_WAVE_RET(T_ASSIGN); } - "<" { BOOST_WAVE_RET(T_LESS); } - ">" { BOOST_WAVE_RET(T_GREATER); } - "+=" { BOOST_WAVE_RET(T_PLUSASSIGN); } - "-=" { BOOST_WAVE_RET(T_MINUSASSIGN); } - "*=" { BOOST_WAVE_RET(T_STARASSIGN); } - "/=" { BOOST_WAVE_RET(T_DIVIDEASSIGN); } - "%=" { BOOST_WAVE_RET(T_PERCENTASSIGN); } - "^=" { BOOST_WAVE_RET(T_XORASSIGN); } - "xor_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_XORASSIGN_ALT); } - "??'=" { BOOST_WAVE_RET(T_XORASSIGN_TRIGRAPH); } - "&=" { BOOST_WAVE_RET(T_ANDASSIGN); } - "and_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDASSIGN_ALT); } - "|=" { BOOST_WAVE_RET(T_ORASSIGN); } - "or_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ORASSIGN_ALT); } - "??!=" { BOOST_WAVE_RET(T_ORASSIGN_TRIGRAPH); } - "<<" { BOOST_WAVE_RET(T_SHIFTLEFT); } - ">>" { BOOST_WAVE_RET(T_SHIFTRIGHT); } - ">>=" { BOOST_WAVE_RET(T_SHIFTRIGHTASSIGN); } - "<<=" { BOOST_WAVE_RET(T_SHIFTLEFTASSIGN); } - "==" { BOOST_WAVE_RET(T_EQUAL); } - "!=" { BOOST_WAVE_RET(T_NOTEQUAL); } - "not_eq" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_NOTEQUAL_ALT); } - "<=>" - { - if (s->act_in_cpp2a_mode) { - BOOST_WAVE_RET(T_SPACESHIP); - } - else { - --YYCURSOR; - BOOST_WAVE_RET(T_LESSEQUAL); - } - } - "<=" { BOOST_WAVE_RET(T_LESSEQUAL); } - ">=" { BOOST_WAVE_RET(T_GREATEREQUAL); } - "&&" { BOOST_WAVE_RET(T_ANDAND); } - "and" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_ANDAND_ALT); } - "||" { BOOST_WAVE_RET(T_OROR); } - "??!|" { BOOST_WAVE_RET(T_OROR_TRIGRAPH); } - "|??!" { BOOST_WAVE_RET(T_OROR_TRIGRAPH); } - "or" { BOOST_WAVE_RET(s->act_in_c99_mode ? T_IDENTIFIER : T_OROR_ALT); } - "??!??!" { BOOST_WAVE_RET(T_OROR_TRIGRAPH); } - "++" { BOOST_WAVE_RET(T_PLUSPLUS); } - "--" { BOOST_WAVE_RET(T_MINUSMINUS); } - "," { BOOST_WAVE_RET(T_COMMA); } - "->*" - { - if (s->act_in_c99_mode) { - --YYCURSOR; - BOOST_WAVE_RET(T_ARROW); - } - else { - BOOST_WAVE_RET(T_ARROWSTAR); - } - } - "->" { BOOST_WAVE_RET(T_ARROW); } - "??/" { BOOST_WAVE_RET(T_ANY_TRIGRAPH); } - - "L"? (['] (EscapeSequence | UniversalChar | any\[\n\r\\'])+ [']) - { BOOST_WAVE_RET(T_CHARLIT); } - - "L"? (["] (EscapeSequence | UniversalChar | any\[\n\r\\"])* ["]) - { BOOST_WAVE_RET(T_STRINGLIT); } - - "L"? "R" ["] - { - if (s->act_in_cpp0x_mode) - { - rawstringdelim = ""; - goto extrawstringlit; - } - --YYCURSOR; - BOOST_WAVE_RET(T_IDENTIFIER); - } - - [uU] ['] - { - if (s->act_in_cpp0x_mode) - goto extcharlit; - --YYCURSOR; - BOOST_WAVE_RET(T_IDENTIFIER); - } - - ([uU] | "u8") ["] - { - if (s->act_in_cpp0x_mode) - goto extstringlit; - --YYCURSOR; - BOOST_WAVE_RET(T_IDENTIFIER); - } - - ([uU] | "u8") "R" ["] - { - if (s->act_in_cpp0x_mode) - { - rawstringdelim = ""; - goto extrawstringlit; - } - --YYCURSOR; - BOOST_WAVE_RET(T_IDENTIFIER); - } - - ([a-zA-Z_] | UniversalChar) ([a-zA-Z_0-9] | UniversalChar)* - { BOOST_WAVE_RET(T_IDENTIFIER); } - - Pound PPSpace ( "include" | "include_next") PPSpace "<" (any\[\n\r>])+ ">" - { BOOST_WAVE_RET(T_PP_HHEADER); } - - Pound PPSpace ( "include" | "include_next") PPSpace "\"" (any\[\n\r"])+ "\"" - { BOOST_WAVE_RET(T_PP_QHEADER); } - - Pound PPSpace ( "include" | "include_next") PPSpace - { BOOST_WAVE_RET(T_PP_INCLUDE); } - - Pound PPSpace "if" { BOOST_WAVE_RET(T_PP_IF); } - Pound PPSpace "ifdef" { BOOST_WAVE_RET(T_PP_IFDEF); } - Pound PPSpace "ifndef" { BOOST_WAVE_RET(T_PP_IFNDEF); } - Pound PPSpace "else" { BOOST_WAVE_RET(T_PP_ELSE); } - Pound PPSpace "elif" { BOOST_WAVE_RET(T_PP_ELIF); } - Pound PPSpace "endif" { BOOST_WAVE_RET(T_PP_ENDIF); } - Pound PPSpace "define" { BOOST_WAVE_RET(T_PP_DEFINE); } - Pound PPSpace "undef" { BOOST_WAVE_RET(T_PP_UNDEF); } - Pound PPSpace "line" { BOOST_WAVE_RET(T_PP_LINE); } - Pound PPSpace "error" { BOOST_WAVE_RET(T_PP_ERROR); } - Pound PPSpace "pragma" { BOOST_WAVE_RET(T_PP_PRAGMA); } - - Pound PPSpace "warning" { BOOST_WAVE_RET(T_PP_WARNING); } - - Pound PPSpace "region" { BOOST_WAVE_RET(T_MSEXT_PP_REGION); } - Pound PPSpace "endregion" { BOOST_WAVE_RET(T_MSEXT_PP_ENDREGION); } - - [ \t\v\f]+ - { BOOST_WAVE_RET(T_SPACE); } - - Newline - { - s->line++; - cursor.column = 1; - BOOST_WAVE_RET(T_NEWLINE); - } - - "\000" - { - if (s->eof && cursor != s->eof) - { - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "invalid character '\\000' in input stream"); - } - BOOST_WAVE_RET(T_EOF); - } - - any { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); } - - anyctrl - { - // flag the error - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "invalid character '\\%03o' in input stream", *--YYCURSOR); - } -*/ - -ccomment: -/*!re2c - "*/" { BOOST_WAVE_RET(T_CCOMMENT); } - - Newline - { - /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF);*/ - /*s->tok = cursor; */ - s->line += count_backslash_newlines(s, cursor) +1; - cursor.column = 1; - goto ccomment; - } - - any { goto ccomment; } - - "\000" - { - if(cursor == s->eof) - { - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_warning, - "Unterminated 'C' style comment"); - } - else - { - --YYCURSOR; // next call returns T_EOF - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "invalid character: '\\000' in input stream"); - } - } - - anyctrl - { - // flag the error - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "invalid character '\\%03o' in input stream", *--YYCURSOR); - } -*/ - -cppcomment: -/*!re2c - Newline - { - /*if(cursor == s->eof) BOOST_WAVE_RET(T_EOF); */ - /*s->tok = cursor; */ - s->line++; - cursor.column = 1; - BOOST_WAVE_RET(T_CPPCOMMENT); - } - - any { goto cppcomment; } - - "\000" - { - if (s->eof && cursor != s->eof) - { - --YYCURSOR; // next call returns T_EOF - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "invalid character '\\000' in input stream"); - } - - --YYCURSOR; // next call returns T_EOF - if (!s->single_line_only) - { - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_warning, - "Unterminated 'C++' style comment"); - } - BOOST_WAVE_RET(T_CPPCOMMENT); - } - - anyctrl - { - // flag the error - BOOST_WAVE_UPDATE_CURSOR(); // adjust the input cursor - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "invalid character '\\%03o' in input stream", *--YYCURSOR); - } -*/ - -/* this subscanner is called whenever a pp_number has been started */ -pp_number: -{ - cursor = uchar_wrapper(s->tok = s->cur, s->column = s->curr_column); - marker = uchar_wrapper(s->ptr); - limit = uchar_wrapper(s->lim); - - if (s->detect_pp_numbers) { - /*!re2c - "."? Digit (Digit | NonDigit | ExponentStart | ".")* - { BOOST_WAVE_RET(T_PP_NUMBER); } - - * { BOOST_ASSERT(false); } - */ - } - else { - /*!re2c - ((FractionalConstant ExponentPart?) | (Digit+ ExponentPart)) FloatingSuffix? - { BOOST_WAVE_RET(T_FLOATLIT); } - - Integer { goto integer_suffix; } - - * { BOOST_ASSERT(false); } - */ - } -} - -/* this subscanner is called, whenever an Integer was recognized */ -integer_suffix: -{ - if (s->enable_ms_extensions) { - /*!re2c - LongIntegerSuffix | "i64" - { BOOST_WAVE_RET(T_LONGINTLIT); } - - IntegerSuffix? - { BOOST_WAVE_RET(T_INTLIT); } - */ - } - else { - /*!re2c - LongIntegerSuffix - { BOOST_WAVE_RET(T_LONGINTLIT); } - - IntegerSuffix? - { BOOST_WAVE_RET(T_INTLIT); } - */ - } - - // re2c will complain about -Wmatch-empty-string above - // it's OK because we've already matched an integer - // and will return T_INTLIT -} - -/* this subscanner is invoked for C++0x extended character literals */ -extcharlit: -{ - /*!re2c - * { - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "Invalid character in raw string delimiter ('%c')", yych); - } - - ((EscapeSequence | UniversalChar | any\[\n\r\\']) [']) - { BOOST_WAVE_RET(T_CHARLIT); } - - any - { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); } - */ -} - -/* this subscanner is invoked for C++0x extended character string literals */ -extstringlit: -{ - /*!re2c - * { - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "Invalid character in raw string delimiter ('%c')", yych); - } - - ((EscapeSequence | UniversalChar | any\[\n\r\\"])* ["]) - { BOOST_WAVE_RET(T_STRINGLIT); } - - any - { BOOST_WAVE_RET(TOKEN_FROM_ID(*s->tok, UnknownTokenType)); } - */ -} - -extrawstringlit: -{ - // we have consumed the double quote but not the lparen - // at this point we may see a delimiter - - /*!re2c - * { - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "Invalid character in raw string delimiter ('%c')", yych); - } - - // delimiters are any character but parentheses, backslash, and whitespace - any\[()\\\t\v\f\r\n] - { - rawstringdelim += yych; - if (rawstringdelim.size() > 16) - { - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "Raw string delimiter of excessive length (\"%s\") in input stream", - rawstringdelim.c_str()); - } - goto extrawstringlit; - } - - "(" - { - rawstringdelim = ")" + rawstringdelim; - goto extrawstringbody; - } - - */ -} - -extrawstringbody: -{ - /*!re2c - - * { - (*s->error_proc)(s, lexing_exception::generic_lexing_error, - "Invalid character in raw string body ('%c')", yych); - } - - Newline - { - s->line += count_backslash_newlines(s, cursor) +1; - cursor.column = 1; - goto extrawstringbody; - } - - (EscapeSequence | UniversalChar | any\["]) - { - goto extrawstringbody; - } - - ["] - { - // check to see if we have completed a delimiter - if (string_type((char *)(YYCURSOR - rawstringdelim.size() - 1), - (char *)(YYCURSOR - 1)) == rawstringdelim) - { - BOOST_WAVE_RET(T_RAWSTRINGLIT); - } else { - goto extrawstringbody; - } - } - */ -} diff --git a/make_headers.sh b/make_headers.sh new file mode 100644 index 00000000..5e270d6d --- /dev/null +++ b/make_headers.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +# Which version of Boost? +BOOST_MAJOR=1 +BOOST_MINOR=75 +BOOST_PATCH=0 + +# Version formatted representations (dot and underscore) +BOOST_VER_DOT=${BOOST_MAJOR}.${BOOST_MINOR}.${BOOST_PATCH} +BOOST_VER_UND=${BOOST_MAJOR}_${BOOST_MINOR}_${BOOST_PATCH} + +# where do I live? +#base="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" +base=/home/rgommers/code/scipy/boost-headers-only + +# download tarball (location of tarballs can also be found at https://www.boost.org/users/download/) +echo "Downloading source distribution of Boost ${BOOST_VER_DOT}... " +archive=${base}/boost.${BOOST_VER_DOT}.tar.gz +srctree=${base}/boost_${BOOST_VER_UND} +wget -q --show-progress -O ${archive} https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VER_DOT}/source/boost_${BOOST_VER_UND}.tar.gz +printf "Unpacking... " +tar -xzf ${archive} +echo "Extracted!" + +# configure build by calling bootstrap.sh +printf "Starting configure... " +boost_tmp=${base}/../boost_with_lib +$(cd ${srctree} && ./bootstrap.sh --prefix=${boost_tmp} --with-libraries=math > ${base}/bootstrap.log) +res=${?} +if [ "${res}" -ne 0 ]; then + echo "Failed to run Boost ./bootstrap.sh!" + return 1 +fi +echo "Success!" + +# Do the build, will create some binaries but we will ignore these +printf "Starting build... " +$(cd ${srctree} && ./b2 install > ${base}/b2.log) +res=${?} +if [ "${res}" -ne 0 ]; then + echo "Failed to run Boost ./b2!" + return 1 +fi +# ensure the include/ directory really does exist where we think it does +if [ ! -d "${boost_tmp}/include" ]; then + echo "Headers failed to generate!" + return 1 +fi +echo "Success!" + +# Remove old headers and replace with new headers and move License, README +echo "Updating header files!" +rm -r ${base}/boost/ +mv ${boost_tmp}/include/boost/ ${base}/ +mv ${srctree}/LICENSE_1_0.txt ${base}/ +mv ${srctree}/README.md ${base}/Boost_${BOOST_VER_UND}_README.md + +# Cleanup +printf "Cleaning up... " +rm -r ${boost_tmp}/ +rm -r ${srctree}/ +rm ${archive} +echo "Done!" ```

It's not impossible I messed something up here. What I did is:

mckib2 commented 3 years ago

@rgommers The issue here is that the initial Boost 1.75.0 commit was not generated using the make_headers.sh script, that came afterwards to improve reproducibility (and rightfully so as I don't remember exactly what I did to produce the initial commit contents).

I'm happy to have the history rewritten to include what you have generated for 1.75.0 (might also involve updating the Boost submodule commit in SciPy if the commit hash changes), but I don't foresee us needing to change anything in this repo until SciPy moves its minimum GCC version above 7.1 (needed to avoid a compiler bug preventing Boost 1.76.0 header files from building as noted here). Unless you want to rewrite the history, I don't know if there's anything actionable to do except leave these notes for future us when we think about upgrading our Boost dependency

rgommers commented 3 years ago

That all makes sense. I think we can leave it as is, no need to rewrite history. I just wanted to capture it in case we have to come back to this in the future. Let's just close this issue.