commit 1fd7f1d42221934c2a2bddabae7e5ed0fa84bed6
Author: Nicholas McKibben <[email protected]>
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 <boost/asio/impl/src.hpp> instead.")
-#elif defined(__GNUC__) \
- || defined(__HP_aCC) \
- || defined(__SUNPRO_CC) \
- || defined(__IBMCPP__)
-# warning "This file is deprecated."
-# warning "Please #include <boost/asio/impl/src.hpp> instead."
-#endif
-
-#include <boost/asio/impl/src.hpp>
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 ([email protected])
-#
-# 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 <boost/function/function_template.hpp>\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 <number of arguments>\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 <boost/function/detail/maybe_include.hpp>\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
- <boost/hana/detail/struct_macros.hpp> 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 <boost/hana/detail/struct_macros.erb.hpp>
-// 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 <boost/hana/config.hpp>
-#include <boost/hana/detail/preprocessor.hpp>
-#include <boost/hana/pair.hpp>
-#include <boost/hana/string.hpp>
-#include <boost/hana/tuple.hpp>
-
-#include <cstddef>
-#include <utility>
-
-
-BOOST_HANA_NAMESPACE_BEGIN namespace struct_detail {
- template <typename Memptr, Memptr ptr>
- struct member_ptr {
- template <typename T>
- constexpr decltype(auto) operator()(T&& t) const
- { return static_cast<T&&>(t).*ptr; }
- };
-
- constexpr std::size_t strlen(char const* s) {
- std::size_t n = 0;
- while (*s++ != '\0')
- ++n;
- return n;
- }
-
- template <std::size_t n, typename Names, std::size_t ...i>
- constexpr auto prepare_member_name_impl(std::index_sequence<i...>) {
- return hana::string_c<hana::at_c<n>(Names::get())[i]...>;
- }
-
- template <std::size_t n, typename Names>
- constexpr auto prepare_member_name() {
- constexpr std::size_t len = strlen(hana::at_c<n>(Names::get()));
- return prepare_member_name_impl<n, Names>(std::make_index_sequence<len>{});
- }
-} 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 <typename ...>
-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<TYPE> { \
- 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<decltype(&TYPE::m#{i}), &TYPE::m#{i}>{})" }.join(', ') %>\
- ); \
- } \
- }; \
- }} \
-/**/
-<% end %>
-
-//////////////////////////////////////////////////////////////////////////////
-// BOOST_HANA_ADAPT_ADT
-//////////////////////////////////////////////////////////////////////////////
-template <typename ...>
-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<TYPE> { \
- template <typename ...> \
- 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<decltype(&TYPE::BOOST_HANA_PP_BACK m#{i}), &TYPE::BOOST_HANA_PP_BACK m#{i}>{})" }.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 @@
-<?xml version="1.0" encoding="utf-8"?>
-<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
-
- <Type Name="boost::json::storage_ptr">
- <DisplayString Condition="i_==0">default</DisplayString>
- <DisplayString Condition="(i_&3)==1"> shared</DisplayString>
- <DisplayString Condition="(i_&3)==2"> trivial</DisplayString>
- <DisplayString Condition="(i_&3)==3"> shared, trivial</DisplayString>
- <DisplayString>non-owning</DisplayString>
- <Expand>
- <Item Name="[ refs ]" Condition="(i_&1)==1">((shared_resource*)(i_&~3))->refs</Item>
- <Item Name="[ resource ]" Condition="(i_&2)==1">(shared_resource*)(i_&~3)</Item>
- <Item Name="[ resource ]" Condition="(i_&2)!=1">(memory_resource*)(i_&~3)</Item>
- </Expand>
- </Type>
-
- <Type Name="boost::json::detail::shared_resource_impl<*>">
- <DisplayString>$T1*</DisplayString>
- <Expand>
- <Item Name="[ refs ]">refs</Item>
- </Expand>
- </Type>
-
- <Type Name="boost::json::monotonic_resource">
- <DisplayString>monotonic_resource</DisplayString>
- <Expand>
- <Item Name="[ free ]">head_->n</Item>
- </Expand>
- </Type>
-
- <Type Name="boost::json::static_resource">
- <DisplayString>static_resource</DisplayString>
- <Expand>
- <Item Name="[ free ]">n_</Item>
- </Expand>
- </Type>
-
- <Type Name="boost::json::value">
- <DisplayString Condition="sca_.k==kind::null">null</DisplayString>
- <DisplayString Condition="sca_.k==kind::bool_">{sca_.b}</DisplayString>
- <DisplayString Condition="sca_.k==kind::int64">{sca_.i}</DisplayString>
- <DisplayString Condition="sca_.k==kind::uint64">{sca_.u}u</DisplayString>
- <DisplayString Condition="sca_.k==kind::double_">{sca_.d}</DisplayString>
- <DisplayString Condition="sca_.k==kind::string">{((char*)(str_.impl_.p_.t+1)),[str_.impl_.p_.t->size]s}</DisplayString>
- <DisplayString Condition="sca_.k==kind::string+64">{((char*)(str_.impl_.k_.s)),[str_.impl_.k_.n]s}:</DisplayString>
- <DisplayString Condition="sca_.k==kind::string+128">{str_.impl_.s_.buf,[detail::string_impl::sbo_chars_-str_.impl_.s_.buf[detail::string_impl::sbo_chars_]]s}</DisplayString>
- <DisplayString Condition="sca_.k==kind::array">array [{arr_.t_->size}]</DisplayString>
- <DisplayString Condition="sca_.k==kind::object">object [{obj_.t_->size}]</DisplayString>
- <Expand>
- <ExpandedItem Condition="sca_.k==kind::string">str_</ExpandedItem>
- <ExpandedItem Condition="sca_.k==kind::string+64">str_</ExpandedItem>
- <ExpandedItem Condition="sca_.k==kind::string+128">str_</ExpandedItem>
- <ExpandedItem Condition="sca_.k==kind::array">arr_</ExpandedItem>
- <ExpandedItem Condition="sca_.k==kind::object">obj_</ExpandedItem>
- </Expand>
- </Type>
-
- <Type Name="boost::json::string">
- <DisplayString Condition="impl_.s_.k==kind::string">{((char*)(impl_.p_.t+1)),[impl_.p_.t->size]s}</DisplayString>
- <DisplayString Condition="impl_.s_.k==kind::string+64">{((char*)(impl_.k_.s)),[impl_.k_.n]s}:</DisplayString>
- <DisplayString Condition="impl_.s_.k==kind::string+128">{impl_.s_.buf,[detail::string_impl::sbo_chars_-impl_.s_.buf[detail::string_impl::sbo_chars_]]s}</DisplayString>
- <Expand>
- <!-- VFALCO Need to handle key string here -->
- <Item Name="[size]">impl_.s_.k==kind::string?impl_.p_.t->size:detail::string_impl::sbo_chars_-impl_.s_.buf[detail::string_impl::sbo_chars_]</Item>
- <Item Name="[capacity]">impl_.s_.k==kind::string?impl_.p_.t->capacity:detail::string_impl::sbo_chars_</Item>
- <Item Name="[storage]">sp_</Item>
- </Expand>
- </Type>
-
- <Type Name="boost::json::array">
- <DisplayString>array [{t_->size}]</DisplayString>
- <Expand>
- <ArrayItems>
- <Size>t_->size</Size>
- <ValuePointer>((value*)(t_+1))</ValuePointer>
- </ArrayItems>
- <Item Name="[capacity]">t_->capacity</Item>
- <Item Name="[storage]">sp_</Item>
- </Expand>
- </Type>
-
- <Type Name="boost::json::object">
- <DisplayString>object [{t_->size}]</DisplayString>
- <Expand>
- <ArrayItems>
- <Size>t_->size</Size>
- <ValuePointer>(boost::json::key_value_pair*)(t_+1)</ValuePointer>
- </ArrayItems>
- <Item Name="[capacity]">t_->capacity</Item>
- <Item Name="[storage]">sp_</Item>
- </Expand>
- </Type>
-
- <Type Name="boost::json::key_value_pair">
- <DisplayString Condition="value_.sca_.k==kind::null">{{ {key_,[len_]s}, null }}</DisplayString>
- <DisplayString Condition="value_.sca_.k==kind::bool_">{{ {key_,[len_]s}, {value_.sca_.b} }}</DisplayString>
- <DisplayString Condition="value_.sca_.k==kind::int64">{{ {key_,[len_]s}, {value_.sca_.i} }}</DisplayString>
- <DisplayString Condition="value_.sca_.k==kind::uint64">{{ {key_,[len_]s}, {value_.sca_.u} }}</DisplayString>
- <DisplayString Condition="value_.sca_.k==kind::double_">{{ {key_,[len_]s}, {value_.sca_.d} }}</DisplayString>
- <DisplayString Condition="value_.sca_.k==kind::string">{{ {key_,[len_]s}, {((char*)(value_.str_.impl_.p_.t+1)),[value_.str_.impl_.p_.t->size]s} }}</DisplayString>
- <DisplayString Condition="value_.sca_.k==kind::string+128">{{ {key_,[len_]s}, {value_.str_.impl_.s_.buf,[detail::string_impl::sbo_chars_-value_.str_.impl_.s_.buf[detail::string_impl::sbo_chars_]]s} }}</DisplayString>
- <DisplayString Condition="value_.sca_.k==kind::array">{{ {key_,[len_]s}, array [{value_.arr_.t_->size}] }}</DisplayString>
- <DisplayString Condition="value_.sca_.k==kind::object">{{ {key_,[len_]s}, object [{value_.obj_.t_->size}] }}</DisplayString>
- <Expand>
- <ExpandedItem>&this->value_</ExpandedItem>
- </Expand>
- </Type>
-
-</AutoVisualizer>
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 E1::value_type , T2>,
-< typename matrix_binary_scalar2_traits<E1, const T2, scalar_divides<typename E1::value_type, T2> >::result_type
-< > ::result_type
----
-> typename matrix_binary_scalar2_traits<E1, const T2, scalar_divides<typename E1::value_type, T2> >::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 <BOOST_M4_FOR(i, 0, N, `typename T`'i', `, ')>
-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 <BOOST_M4_FOR(i, 0, N, `typename T`'i', `, ')>
-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 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- This DTD is used for the output of Spirit parse tree's through -->
-<!-- the boost::spirit::tree_to_xml functions. -->
-<!-- Copyright (c) 2001-2007 Hartmut Kaiser -->
-<!-- Distribution 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) -->
-<!ELEMENT parsetree (parsenode)>
-<!ATTLIST parsetree
- version CDATA "1.0"
->
-<!ELEMENT parsenode ((value | token)?, parsenode*)>
-<!ATTLIST parsenode
- rule CDATA #IMPLIED
->
-<!ELEMENT value (#PCDATA | token)*>
-<!ELEMENT token (#PCDATA)>
-<!ATTLIST token
- id CDATA #REQUIRED
- is_root CDATA "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!"