diff --git a/DEPENDENCIES b/DEPENDENCIES
index 724b9492..d61e8d55 100644
--- a/DEPENDENCIES
+++ b/DEPENDENCIES
@@ -1,5 +1,5 @@
vendorpull https://github.com/sourcemeta/vendorpull 70342aaf458e6cb80baeb5b718901075fc42ede6
noa https://github.com/sourcemeta/noa dee6c859895baf918fe3ecca22e4e7a262c5d500
-jsontoolkit https://github.com/sourcemeta/jsontoolkit 60a3862ad0d9642c97685f94aeaed96ab3509690
-alterschema https://github.com/sourcemeta/alterschema 3579095980f5d53033a457725dd95eca27de96f4
+jsontoolkit https://github.com/sourcemeta/jsontoolkit d3436cfa5546f5f5c01ffa2f2314aabd966a84ed
+alterschema https://github.com/sourcemeta/alterschema dfbc1f51d81ec231346c7e73f06c60cbaa7b0db6
bootstrap https://github.com/twbs/bootstrap 1a6fdfae6be09b09eaced8f0e442ca6f7680a61e
diff --git a/vendor/alterschema/vendor/noa/CMakeLists.txt b/vendor/alterschema/vendor/noa/CMakeLists.txt
deleted file mode 100644
index 45ec1287..00000000
--- a/vendor/alterschema/vendor/noa/CMakeLists.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-cmake_minimum_required(VERSION 3.16)
-project(noa VERSION 0.0.0 LANGUAGES CXX
- DESCRIPTION "A set of re-usable and opinionated utilities for Sourcemeta projects")
-list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
-list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/noa")
-include(noa)
-
-# Options
-option(NOA_HASH "Build the Noa Hash library" ON)
-option(NOA_FLAT_MAP "Build the Noa Flat Map library" ON)
-option(NOA_REGEX "Build the Noa Regex library" ON)
-option(NOA_GOOGLETEST "Build the Google Test library" ON)
-option(NOA_GOOGLEBENCHMARK "Build the Google Benchmark library" ON)
-option(NOA_TESTS "Build the Noa tests" OFF)
-option(NOA_BENCHMARK "Build the Noa benchmarks" OFF)
-option(NOA_DOCS "Build the Noa docs" OFF)
-option(NOA_INSTALL "Install the Noa library" ON)
-option(NOA_ADDRESS_SANITIZER "Build Noa with an address sanitizer" OFF)
-option(NOA_UNDEFINED_SANITIZER "Build Noa with an undefined behavior sanitizer" OFF)
-
-if(NOA_INSTALL)
- include(GNUInstallDirs)
- include(CMakePackageConfigHelpers)
- configure_package_config_file(
- config.cmake.in
- "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
- INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
- write_basic_package_version_file(
- "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
- COMPATIBILITY SameMajorVersion)
- install(FILES
- "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
- "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
- COMPONENT sourcemeta_noa_dev)
-endif()
-
-if(NOA_HASH)
- add_subdirectory(src/hash)
-endif()
-
-if(NOA_FLAT_MAP)
- add_subdirectory(src/flat_map)
-endif()
-
-if(NOA_REGEX)
- find_package(BoostRegex REQUIRED)
- add_subdirectory(src/regex)
-endif()
-
-if(NOA_GOOGLETEST)
- find_package(GoogleTest REQUIRED)
-endif()
-
-if(NOA_ADDRESS_SANITIZER)
- noa_sanitizer(TYPE address)
-elseif(NOA_UNDEFINED_SANITIZER)
- noa_sanitizer(TYPE undefined)
-endif()
-
-if(NOA_DOCS)
- noa_target_doxygen(CONFIG "${PROJECT_SOURCE_DIR}/doxygen/Doxyfile.in"
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/website")
-endif()
-
-if(PROJECT_IS_TOP_LEVEL)
- noa_target_clang_format(SOURCES
- benchmark/*.h benchmark/*.cc
- src/*.h src/*.cc
- test/*.h test/*.cc)
- noa_target_clang_tidy(SOURCES
- src/*.h src/*.cc)
-endif()
-
-if(NOA_TESTS AND NOA_GOOGLETEST)
- enable_testing()
-
- if(NOA_HASH)
- add_subdirectory(test/hash)
- endif()
-
- if(NOA_FLAT_MAP)
- add_subdirectory(test/flat_map)
- endif()
-
- if(NOA_REGEX)
- add_subdirectory(test/regex)
- endif()
-
- if(PROJECT_IS_TOP_LEVEL)
- # Otherwise we need the child project to link
- # against the sanitizers too.
- if(NOT NOA_ADDRESS_SANITIZER AND NOT NOA_UNDEFINED_SANITIZER)
- add_subdirectory(test/packaging)
- endif()
- endif()
-endif()
-
-if(NOA_GOOGLEBENCHMARK)
- find_package(GoogleBenchmark REQUIRED)
-endif()
-
-if(NOA_BENCHMARK AND NOA_GOOGLEBENCHMARK)
- add_subdirectory(benchmark)
-endif()
diff --git a/vendor/alterschema/vendor/noa/LICENSE b/vendor/alterschema/vendor/noa/LICENSE
deleted file mode 100644
index 9348973b..00000000
--- a/vendor/alterschema/vendor/noa/LICENSE
+++ /dev/null
@@ -1,12 +0,0 @@
-This software is dual-licensed: you can redistribute it and/or modify it under
-the terms of the GNU Affero General Public License as published by the Free
-Software Foundation, either version 3 of the License, or (at your option) any
-later version. For the terms of this license, see
-.
-
-You are free to use this software under the terms of the GNU Affero General
-Public License WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-Alternatively, you can use this software under a commercial license, as set out
-in .
diff --git a/vendor/alterschema/vendor/noa/cmake/FindBoostRegex.cmake b/vendor/alterschema/vendor/noa/cmake/FindBoostRegex.cmake
deleted file mode 100644
index 0c8b2724..00000000
--- a/vendor/alterschema/vendor/noa/cmake/FindBoostRegex.cmake
+++ /dev/null
@@ -1,184 +0,0 @@
-if(NOT BoostRegex_FOUND)
- set(BOOST_REGEX_DIR "${PROJECT_SOURCE_DIR}/vendor/boost-regex")
- set(BOOST_REGEX_PUBLIC_HEADER "${BOOST_REGEX_DIR}/include/boost/regex.hpp")
-
- set(BOOST_REGEX_PRIVATE_HEADERS
- "${BOOST_REGEX_DIR}/include/boost/cregex.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex.h"
- "${BOOST_REGEX_DIR}/include/boost/regex_fwd.hpp")
- set(BOOST_REGEX_PRIVATE_HEADERS_REGEX
- "${BOOST_REGEX_DIR}/include/boost/regex/concepts.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/config.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/icu.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/mfc.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/pattern_except.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/regex_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/user.hpp")
- set(BOOST_REGEX_PRIVATE_HEADERS_REGEX_CONFIG
- "${BOOST_REGEX_DIR}/include/boost/regex/config/borland.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/config/cwchar.hpp")
- set(BOOST_REGEX_PRIVATE_HEADERS_REGEX_PENDING
- "${BOOST_REGEX_DIR}/include/boost/regex/pending/object_cache.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/pending/static_mutex.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/pending/unicode_iterator.hpp")
- set(BOOST_REGEX_PRIVATE_HEADERS_REGEX_V4
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/basic_regex_parser.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/object_cache.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/cregex.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/basic_regex_creator.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_format.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/u32regex_iterator.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/states.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/perl_matcher_recursive.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/perl_matcher.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_grep.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/match_flags.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/w32_regex_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_replace.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/perl_matcher_common.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/c_regex_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_traits_defaults.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/cpp_regex_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/syntax_type.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/protected_call.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regbase.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_raw_buffer.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_iterator.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/basic_regex.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/error_type.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/icu.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_match.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/u32regex_token_iterator.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_search.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/indexed_bit_flag.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_token_iterator.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/iterator_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/perl_matcher_non_recursive.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_workaround.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/sub_match.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_merge.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_fwd.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/iterator_category.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/regex_split.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/unicode_iterator.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/primary_transform.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/char_regex_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/mem_block_cache.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/pattern_except.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v4/match_results.hpp")
- set(BOOST_REGEX_PRIVATE_HEADERS_REGEX_V5
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/basic_regex_parser.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/object_cache.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/cregex.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/basic_regex_creator.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_format.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/u32regex_iterator.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/states.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/perl_matcher.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_grep.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/match_flags.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/w32_regex_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_replace.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/perl_matcher_common.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/c_regex_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_traits_defaults.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/cpp_regex_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/syntax_type.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regbase.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_raw_buffer.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_iterator.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/basic_regex.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/error_type.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/icu.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_match.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/u32regex_token_iterator.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_search.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_token_iterator.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/iterator_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/perl_matcher_non_recursive.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_workaround.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/sub_match.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_merge.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_fwd.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/iterator_category.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/regex_split.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/unicode_iterator.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/primary_transform.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/char_regex_traits.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/mem_block_cache.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/pattern_except.hpp"
- "${BOOST_REGEX_DIR}/include/boost/regex/v5/match_results.hpp")
-
- add_library(boost_regex INTERFACE
- "${BOOST_REGEX_PUBLIC_HEADER}"
- ${BOOST_REGEX_PRIVATE_HEADERS}
- ${BOOST_REGEX_PRIVATE_HEADERS_REGEX}
- ${BOOST_REGEX_PRIVATE_HEADERS_REGEX_CONFIG}
- ${BOOST_REGEX_PRIVATE_HEADERS_REGEX_PENDING}
- ${BOOST_REGEX_PRIVATE_HEADERS_REGEX_V4}
- ${BOOST_REGEX_PRIVATE_HEADERS_REGEX_V5})
-
- target_compile_definitions(boost_regex INTERFACE BOOST_REGEX_STANDALONE)
-
- add_library(Boost::regex ALIAS boost_regex)
-
- target_include_directories(boost_regex INTERFACE
- "$"
- "$")
-
- set_target_properties(boost_regex
- PROPERTIES
- OUTPUT_NAME boost_regex
- PUBLIC_HEADER "${BOOST_REGEX_PUBLIC_HEADER}"
- PRIVATE_HEADER "${BOOST_REGEX_PRIVATE_HEADERS}"
- EXPORT_NAME boost_regex)
-
- if(NOA_INSTALL)
- include(GNUInstallDirs)
- install(TARGETS boost_regex
- EXPORT boost_regex
- PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/boost"
- COMPONENT sourcemeta_noa
- PRIVATE_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/boost"
- COMPONENT sourcemeta_noa
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
- COMPONENT sourcemeta_noa
- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
- COMPONENT sourcemeta_noa
- NAMELINK_COMPONENT sourcemeta_noa_dev
- ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
- COMPONENT sourcemeta_noa_dev)
- install(FILES ${BOOST_REGEX_PRIVATE_HEADERS_REGEX}
- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/boost/regex"
- COMPONENT sourcemeta_noa)
- install(FILES ${BOOST_REGEX_PRIVATE_HEADERS_REGEX_CONFIG}
- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/boost/regex/config"
- COMPONENT sourcemeta_noa)
- install(FILES ${BOOST_REGEX_PRIVATE_HEADERS_REGEX_PENDING}
- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/boost/regex/pending"
- COMPONENT sourcemeta_noa)
- install(FILES ${BOOST_REGEX_PRIVATE_HEADERS_REGEX_V4}
- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/boost/regex/v4"
- COMPONENT sourcemeta_noa)
- install(FILES ${BOOST_REGEX_PRIVATE_HEADERS_REGEX_V5}
- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/boost/regex/v5"
- COMPONENT sourcemeta_noa)
- install(EXPORT boost_regex
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/boostregex"
- COMPONENT sourcemeta_noa_dev)
-
- file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/boostregex-config.cmake
- "include(\"\${CMAKE_CURRENT_LIST_DIR}/boost_regex.cmake\")\n"
- "check_required_components(\"boostregex\")\n")
- install(FILES
- "${CMAKE_CURRENT_BINARY_DIR}/boostregex-config.cmake"
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/boostregex"
- COMPONENT sourcemeta_noa_dev)
- endif()
-
- set(BoostRegex_FOUND ON)
-endif()
diff --git a/vendor/alterschema/vendor/noa/cmake/FindGoogleBenchmark.cmake b/vendor/alterschema/vendor/noa/cmake/FindGoogleBenchmark.cmake
deleted file mode 100644
index da442f63..00000000
--- a/vendor/alterschema/vendor/noa/cmake/FindGoogleBenchmark.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-if(NOT Benchmark_FOUND)
- set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Enable testing of the benchmark library.")
- add_subdirectory("${PROJECT_SOURCE_DIR}/vendor/googlebenchmark")
- set(Benchmark_FOUND ON)
-endif()
diff --git a/vendor/alterschema/vendor/noa/cmake/FindGoogleTest.cmake b/vendor/alterschema/vendor/noa/cmake/FindGoogleTest.cmake
deleted file mode 100644
index 18eb1184..00000000
--- a/vendor/alterschema/vendor/noa/cmake/FindGoogleTest.cmake
+++ /dev/null
@@ -1,6 +0,0 @@
-if(NOT GoogleTest_FOUND)
- set(BUILD_GMOCK ON CACHE BOOL "enable googlemock")
- set(INSTALL_GTEST OFF CACHE BOOL "disable installation")
- add_subdirectory("${PROJECT_SOURCE_DIR}/vendor/googletest")
- set(GoogleTest_FOUND ON)
-endif()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/commands/copy-file.cmake b/vendor/alterschema/vendor/noa/cmake/noa/commands/copy-file.cmake
deleted file mode 100644
index bed4cb82..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/commands/copy-file.cmake
+++ /dev/null
@@ -1,17 +0,0 @@
-function(noa_command_copy_file)
- cmake_parse_arguments(NOA_COMMAND_COPY_FILE "" "FROM;TO" "" ${ARGN})
-
- if(NOT NOA_COMMAND_COPY_FILE_FROM)
- message(FATAL_ERROR "You must pass the file to copy using the FROM option")
- endif()
- if(NOT NOA_COMMAND_COPY_FILE_TO)
- message(FATAL_ERROR "You must pass the destination to copy to using the TO option")
- endif()
-
- add_custom_command(
- OUTPUT "${NOA_COMMAND_COPY_FILE_TO}"
- COMMAND "${CMAKE_COMMAND}" -E copy "${NOA_COMMAND_COPY_FILE_FROM}" "${NOA_COMMAND_COPY_FILE_TO}"
- MAIN_DEPENDENCY "${NOA_COMMAND_COPY_FILE_FROM}"
- DEPENDS "${NOA_COMMAND_COPY_FILE_FROM}"
- COMMENT "Copying ${NOA_COMMAND_COPY_FILE_FROM} ot ${NOA_COMMAND_COPY_FILE_TO}")
-endfunction()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/compiler/options.cmake b/vendor/alterschema/vendor/noa/cmake/noa/compiler/options.cmake
deleted file mode 100644
index 5db0e8e0..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/compiler/options.cmake
+++ /dev/null
@@ -1,109 +0,0 @@
-function(noa_add_default_options visibility target)
- if(NOA_COMPILER_MSVC)
- # See https://learn.microsoft.com/en-us/cpp/build/reference/compiler-options-listed-by-category
- target_compile_options("${target}" ${visibility}
- /options:strict
- /permissive-
- /W4
- /WL
- /MP
- /sdl)
- elseif(NOA_COMPILER_LLVM OR NOA_COMPILER_GCC)
- target_compile_options("${target}" ${visibility}
- -Wall
- -Wextra
- -Wpedantic
- -Wshadow
- -Wdouble-promotion
- -Wconversion
- -Wunused-parameter
- -Wtrigraphs
- -Wunreachable-code
- -Wmissing-braces
- -Wparentheses
- -Wswitch
- -Wunused-function
- -Wunused-label
- -Wunused-parameter
- -Wunused-variable
- -Wunused-value
- -Wempty-body
- -Wuninitialized
- -Wshadow
- -Wconversion
- -Wenum-conversion
- -Wfloat-conversion
- -Wimplicit-fallthrough
- -Wsign-compare
- -Wsign-conversion
- -Wunknown-pragmas
- -Wnon-virtual-dtor
- -Woverloaded-virtual
- -Winvalid-offsetof
- -funroll-loops
- -fstrict-aliasing
- -ftree-vectorize
-
- # To improve how much GCC/Clang will vectorize
- -fno-math-errno
-
- # Assume that signed arithmetic overflow of addition, subtraction and
- # multiplication wraps around using twos-complement representation
- # See https://users.cs.utah.edu/~regehr/papers/overflow12.pdf
- # See https://www.postgresql.org/message-id/1689.1134422394@sss.pgh.pa.us
- -fwrapv)
- endif()
-
- if(NOA_COMPILER_LLVM)
- target_compile_options("${target}" ${visibility}
- -Wbool-conversion
- -Wint-conversion
- -Wpointer-sign
- -Wconditional-uninitialized
- -Wconstant-conversion
- -Wnon-literal-null-conversion
- -Wshorten-64-to-32
- -Wdeprecated-implementations
- -Winfinite-recursion
- -Wnewline-eof
- -Wfour-char-constants
- -Wselector
- -Wundeclared-selector
- -Wdocumentation
- -Wmove
- -Wc++11-extensions
- -Wcomma
- -Wno-exit-time-destructors
- -Wrange-loop-analysis
-
- # Enable loop vectorization for performance reasons
- -fvectorize
- # Enable vectorization of straight-line code for performance
- -fslp-vectorize)
- elseif(NOA_COMPILER_GCC)
- target_compile_options("${target}" ${visibility}
- -fno-trapping-math
- # Newer versions of GCC (i.e. 14) seem to print a lot of false-positives here
- -Wno-dangling-reference
- # GCC seems to print a lot of false-positives here
- -Wno-free-nonheap-object
- # Disables runtime type information
- -fno-rtti)
- endif()
-endfunction()
-
-# For studying failed vectorization results
-# - On Clang , seems to only take effect on release shared builds
-# - On GCC, seems to only take effect on release shared builds
-function(noa_add_vectorization_diagnostics target)
- if(NOA_COMPILER_LLVM)
- # See https://llvm.org/docs/Vectorizers.html#id6
- target_compile_options("${target}" PRIVATE
- -Rpass-analysis=loop-vectorize
- -Rpass-missed=loop-vectorize)
- elseif(NOA_COMPILER_GCC)
- target_compile_options("${target}" PRIVATE
- -fopt-info-vec-missed
- -fopt-info-loop-missed)
- endif()
-endfunction()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/compiler/sanitizer.cmake b/vendor/alterschema/vendor/noa/cmake/noa/compiler/sanitizer.cmake
deleted file mode 100644
index 37ff6f98..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/compiler/sanitizer.cmake
+++ /dev/null
@@ -1,40 +0,0 @@
-function(noa_sanitizer)
- cmake_parse_arguments(NOA_SANITIZER "" "TYPE" "" ${ARGN})
-
- if(NOT NOA_SANITIZER_TYPE)
- message(FATAL_ERROR "You must pass the intended sanitizer")
- endif()
-
- if(NOA_COMPILER_LLVM AND "${NOA_SANITIZER_TYPE}" STREQUAL "address")
- # See https://clang.llvm.org/docs/AddressSanitizer.html
- message(STATUS "Enabling sanitizer: Clang AddressSanitizer")
- add_compile_options(-fsanitize=address -fsanitize-address-use-after-scope)
- add_link_options(-fsanitize=address)
- # Get nicer stack traces with the Address sanitizer
- add_compile_options(-fno-omit-frame-pointer -fno-optimize-sibling-calls)
- add_compile_options(-O1)
- elseif(NOA_COMPILER_LLVM AND "${NOA_SANITIZER_TYPE}" STREQUAL "memory")
- if(APPLE)
- message(FATAL_ERROR "Clang MemorySanitizer is not available on Apple platforms")
- endif()
-
- # See https://clang.llvm.org/docs/MemorySanitizer.html
- message(STATUS "Enabling sanitizer: Clang MemorySanitizer")
- add_compile_options(-fsanitize=memory -fno-sanitize-memory-use-after-dtor)
- add_link_options(-fsanitize=memory)
- # Get nicer stack traces with the Memory sanitizer
- add_compile_options(-fno-omit-frame-pointer -fno-optimize-sibling-calls)
- add_compile_options(-O1)
- elseif(NOA_COMPILER_LLVM AND "${NOA_SANITIZER_TYPE}" STREQUAL "undefined")
- # See https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
- message(STATUS "Enabling sanitizer: Clang UndefinedBehaviorSanitizer")
- add_compile_options(-fsanitize=undefined,nullability,integer,implicit-conversion,local-bounds
- -fno-sanitize=unsigned-integer-overflow)
- add_link_options(-fsanitize=undefined,nullability,integer,implicit-conversion,local-bounds
- -fno-sanitize=unsigned-integer-overflow)
- # Exit after an error, otherwise this sanitizer only prints warnings
- add_compile_options(-fno-sanitize-recover=all)
- else()
- message(FATAL_ERROR "Unrecognized compiler and/or sanitizer combination")
- endif()
-endfunction()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/defaults.cmake b/vendor/alterschema/vendor/noa/cmake/noa/defaults.cmake
deleted file mode 100644
index d942923c..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/defaults.cmake
+++ /dev/null
@@ -1,95 +0,0 @@
-# Standards (sane modern defaults)
-if("CXX" IN_LIST NOA_LANGUAGES)
- set(CMAKE_CXX_STANDARD 20 PARENT_SCOPE)
-endif()
-if("C" IN_LIST NOA_LANGUAGES)
- set(CMAKE_C_STANDARD 11 PARENT_SCOPE)
-endif()
-if("OBJCXX" IN_LIST NOA_LANGUAGES)
- set(CMAKE_OBJCXX_STANDARD "${CMAKE_CXX_STANDARD}" PARENT_SCOPE)
-endif()
-
-# Hide symbols from shared libraries by default
-# In certain compilers, like GCC and Clang,
-# symbols are visible by default.
-set(CMAKE_VISIBILITY_INLINES_HIDDEN YES PARENT_SCOPE)
-if("CXX" IN_LIST NOA_LANGUAGES)
- set(CMAKE_CXX_VISIBILITY_PRESET hidden PARENT_SCOPE)
-endif()
-if("C" IN_LIST NOA_LANGUAGES)
- set(CMAKE_C_VISIBILITY_PRESET hidden PARENT_SCOPE)
-endif()
-if("OBJCXX" IN_LIST NOA_LANGUAGES)
- set(CMAKE_OBJCXX_VISIBILITY_PRESET hidden PARENT_SCOPE)
-endif()
-
-# By default, stay within ISO C++
-if("CXX" IN_LIST NOA_LANGUAGES)
- set(CMAKE_CXX_STANDARD_REQUIRED ON PARENT_SCOPE)
- set(CMAKE_CXX_EXTENSIONS OFF PARENT_SCOPE)
-endif()
-if("C" IN_LIST NOA_LANGUAGES)
- set(CMAKE_C_STANDARD_REQUIRED ON PARENT_SCOPE)
- set(CMAKE_C_EXTENSIONS OFF PARENT_SCOPE)
-endif()
-if("OBJCXX" IN_LIST NOA_LANGUAGES)
- set(CMAKE_OBJCXX_STANDARD_REQUIRED ON PARENT_SCOPE)
- set(CMAKE_OBJCXX_EXTENSIONS OFF PARENT_SCOPE)
-endif()
-
-# Export compile commands by default.
-# It is very useful for IDE integration, linting, etc
-set(CMAKE_EXPORT_COMPILE_COMMANDS ON PARENT_SCOPE)
-
-# Prevent DT_RPATH/DT_RUNPATH problem
-# This problem is not present on Apple platforms.
-# See https://www.youtube.com/watch?v=m0DwB4OvDXk
-if(NOT APPLE)
- set(CMAKE_INSTALL_RPATH $ORIGIN PARENT_SCOPE)
-endif()
-
-# Delay GoogleTest discovery until before running the tests
-# See https://discourse.cmake.org/t/default-value-for-new-discovery-mode-option-for-gtest-discover-tests/1422
-set(CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE PRE_TEST PARENT_SCOPE)
-
-# Always use folders in IDE
-# See https://cmake.org/cmake/help/latest/prop_gbl/USE_FOLDERS.html
-set_property(GLOBAL PROPERTY USE_FOLDERS ON)
-
-# On Windows, during build, put executables and libraries in the same directory.
-# Otherwise, if there is any shared library being generated, the binaries
-# linking to it will not be able to find it and i.e. unit tests will fail.
-# Note that GoogleTest does this already to a non-configurable top-level
-# `bin` directory, so adopting that convention here.
-# See https://stackoverflow.com/q/39807664
-# See https://github.com/google/googletest/blob/e47544ad31cb3ceecd04cc13e8fe556f8df9fe0b/googletest/cmake/internal_utils.cmake#L173-L174
-if(WIN32)
- # For EXE files
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" CACHE STRING "")
- # For DLL files
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" CACHE STRING "")
-endif()
-
-# Enable IPO/LTO to help the compiler optimize across modules.
-# Only do so in release, given these optimizations can significantly
-# increase build times.
-
-# Note we don't use CheckIPOSupported and CMAKE_INTERPROCEDURAL_OPTIMIZATION,
-# as those CMake features can only enable thin LTO. For Fat LTO, see:
-# - https://gcc.gnu.org/onlinedocs/gccint/LTO-Overview.html
-# - https://llvm.org/docs/FatLTO.html
-
-if(NOA_COMPILER_GCC AND CMAKE_BUILD_TYPE STREQUAL "Release" AND NOT BUILD_SHARED_LIBS)
- message(STATUS "Enabling Fat LTO")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto -ffat-lto-objects" PARENT_SCOPE)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto" PARENT_SCOPE)
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -flto" PARENT_SCOPE)
-endif()
-
-# TODO: Make this work on Linux on LLVM
-if(NOA_COMPILER_LLVM AND CMAKE_BUILD_TYPE STREQUAL "Release" AND NOT BUILD_SHARED_LIBS AND APPLE)
- message(STATUS "Enabling Fat LTO")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto=full" PARENT_SCOPE)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto=full" PARENT_SCOPE)
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -flto=full" PARENT_SCOPE)
-endif()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/noa.cmake b/vendor/alterschema/vendor/noa/cmake/noa/noa.cmake
deleted file mode 100644
index b794fd4d..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/noa.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-set(NOA_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}")
-include("${NOA_DIRECTORY}/shim.cmake")
-include("${NOA_DIRECTORY}/variables.cmake")
-include("${NOA_DIRECTORY}/defaults.cmake")
-include("${NOA_DIRECTORY}/compiler/sanitizer.cmake")
-include("${NOA_DIRECTORY}/compiler/options.cmake")
-include("${NOA_DIRECTORY}/options/enum.cmake")
-include("${NOA_DIRECTORY}/commands/copy-file.cmake")
-include("${NOA_DIRECTORY}/targets/library.cmake")
-include("${NOA_DIRECTORY}/targets/executable.cmake")
-include("${NOA_DIRECTORY}/targets/clang-format.cmake")
-include("${NOA_DIRECTORY}/targets/clang-tidy.cmake")
-include("${NOA_DIRECTORY}/targets/shellcheck.cmake")
-include("${NOA_DIRECTORY}/targets/doxygen.cmake")
-include("${NOA_DIRECTORY}/targets/googletest.cmake")
-include("${NOA_DIRECTORY}/targets/googlebenchmark.cmake")
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/options/enum.cmake b/vendor/alterschema/vendor/noa/cmake/noa/options/enum.cmake
deleted file mode 100644
index b75eb2a9..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/options/enum.cmake
+++ /dev/null
@@ -1,32 +0,0 @@
-function(noa_option_enum)
- cmake_parse_arguments(NOA_OPTION_ENUM "" "NAME;DEFAULT;DESCRIPTION" "CHOICES" ${ARGN})
-
- if(NOT NOA_OPTION_ENUM_NAME)
- message(FATAL_ERROR "You must pass the option name as NAME")
- endif()
- if(NOT NOA_OPTION_ENUM_DEFAULT)
- message(FATAL_ERROR "You must pass the option default value as DEFAULT")
- endif()
- if(NOT "${NOA_OPTION_ENUM_DEFAULT}" IN_LIST NOA_OPTION_ENUM_CHOICES)
- message(FATAL_ERROR "Default value of ${NOA_OPTION_ENUM_NAME} must be one of these: ${NOA_OPTION_ENUM_CHOICES}")
- endif()
- if(NOT NOA_OPTION_ENUM_DESCRIPTION)
- message(FATAL_ERROR "You must pass the option description as DESCRIPTION")
- endif()
- if(NOT NOA_OPTION_ENUM_CHOICES)
- message(FATAL_ERROR "You must pass the option enum choices as CHOICES")
- endif()
-
- # Declare the option
- set("${NOA_OPTION_ENUM_NAME}" "${NOA_OPTION_ENUM_DEFAULT}"
- CACHE STRING "${NOA_OPTION_ENUM_DESCRIPTION}")
-
- # Display a nice set of options in `cmake-gui`
- set_property(CACHE "${NOA_OPTION_ENUM_NAME}"
- PROPERTY STRINGS ${NOA_OPTION_ENUM_CHOICES})
-
- # Perform validation
- if(NOT "${${NOA_OPTION_ENUM_NAME}}" IN_LIST NOA_OPTION_ENUM_CHOICES)
- message(FATAL_ERROR "Value of ${NOA_OPTION_ENUM_NAME} must be one of these: ${NOA_OPTION_ENUM_CHOICES}")
- endif()
-endfunction()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/shim.cmake b/vendor/alterschema/vendor/noa/cmake/noa/shim.cmake
deleted file mode 100644
index f5668919..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/shim.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-# The PROJECT_IS_TOP_LEVEL handy variable is only
-# available on CMake >=3.21.
-if(NOT DEFINED PROJECT_IS_TOP_LEVEL AND "${CMAKE_PROJECT_NAME}" STREQUAL "${PROJECT_NAME}")
- set(PROJECT_IS_TOP_LEVEL YES PARENT_SCOPE)
-endif()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/targets/clang-format.cmake b/vendor/alterschema/vendor/noa/cmake/noa/targets/clang-format.cmake
deleted file mode 100644
index a788e6ee..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/targets/clang-format.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
-function(noa_target_clang_format)
- cmake_parse_arguments(NOA_TARGET_CLANG_FORMAT "REQUIRED" "" "SOURCES" ${ARGN})
-
- if(NOA_TARGET_CLANG_FORMAT_REQUIRED)
- find_program(CLANG_FORMAT_BIN NAMES clang-format REQUIRED)
- else()
- find_program(CLANG_FORMAT_BIN NAMES clang-format)
- endif()
-
- # This covers the empty list too
- if(NOT NOA_TARGET_CLANG_FORMAT_SOURCES)
- message(FATAL_ERROR "You must pass file globs to format in the SOURCES option")
- endif()
- file(GLOB_RECURSE NOA_TARGET_CLANG_FORMAT_FILES
- ${NOA_TARGET_CLANG_FORMAT_SOURCES})
-
- set(CLANG_FORMAT_CONFIG "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/clang-format.config")
- if(CLANG_FORMAT_BIN)
- add_custom_target(clang_format
- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
- VERBATIM
- COMMAND "${CLANG_FORMAT_BIN}" "--style=file:${CLANG_FORMAT_CONFIG}"
- -i ${NOA_TARGET_CLANG_FORMAT_FILES}
- COMMENT "Formatting sources using ClangFormat")
- add_custom_target(clang_format_test
- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
- VERBATIM
- COMMAND "${CLANG_FORMAT_BIN}" "--style=file:${CLANG_FORMAT_CONFIG}"
- --dry-run -Werror
- -i ${NOA_TARGET_CLANG_FORMAT_FILES}
- COMMENT "Checking for ClangFormat compliance")
- else()
- add_custom_target(clang_format
- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
- VERBATIM
- COMMAND "${CMAKE_COMMAND}" -E echo "Could not locate ClangFormat"
- COMMAND "${CMAKE_COMMAND}" -E false)
- add_custom_target(clang_format_test
- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
- VERBATIM
- COMMAND "${CMAKE_COMMAND}" -E echo "Could not locate ClangFormat"
- COMMAND "${CMAKE_COMMAND}" -E false)
- endif()
-
- set_target_properties(clang_format clang_format_test PROPERTIES FOLDER "Formatting")
-endfunction()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/targets/clang-format.config b/vendor/alterschema/vendor/noa/cmake/noa/targets/clang-format.config
deleted file mode 100644
index d9c695cc..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/targets/clang-format.config
+++ /dev/null
@@ -1,3 +0,0 @@
----
-BasedOnStyle: LLVM
-IndentCaseLabels: true
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/targets/clang-tidy.cmake b/vendor/alterschema/vendor/noa/cmake/noa/targets/clang-tidy.cmake
deleted file mode 100644
index c3767411..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/targets/clang-tidy.cmake
+++ /dev/null
@@ -1,56 +0,0 @@
-function(noa_target_clang_tidy)
- cmake_parse_arguments(NOA_TARGET_CLANG_TIDY "REQUIRED" "" "SOURCES" ${ARGN})
-
- set(CLANG_TIDY_FIND_PATHS "")
-
- # Locate ClangTidy on default Homebrew installations,
- # given that the LLVM formula won't symlink `clang-tidy`
- # to any available path by default.
- if(APPLE)
- if(IS_DIRECTORY "/opt/homebrew/Cellar/llvm")
- set(HOMEBREW_LLVM "/opt/homebrew/Cellar/llvm")
- elseif(IS_DIRECTORY "/usr/local/Cellar/llvm")
- set(HOMEBREW_LLVM "/opt/local/Cellar/llvm")
- endif()
- if(HOMEBREW_LLVM)
- file(GLOB llvm_version_paths LIST_DIRECTORIES true "${HOMEBREW_LLVM}/*")
- foreach(llvm_version_path ${llvm_version_paths})
- list(APPEND CLANG_TIDY_FIND_PATHS "${llvm_version_path}/bin")
- endforeach()
- endif()
- endif()
-
- if(NOA_TARGET_CLANG_TIDY_REQUIRED)
- find_program(CLANG_TIDY_BIN NAMES clang-tidy REQUIRED
- PATHS ${CLANG_TIDY_FIND_PATHS})
- else()
- find_program(CLANG_TIDY_BIN NAMES clang-tidy
- PATHS ${CLANG_TIDY_FIND_PATHS})
- endif()
-
- # This covers the empty list too
- if(NOT NOA_TARGET_CLANG_TIDY_SOURCES)
- message(FATAL_ERROR "You must pass file globs to analyze in the SOURCES option")
- endif()
- file(GLOB_RECURSE NOA_TARGET_CLANG_TIDY_FILES
- ${NOA_TARGET_CLANG_TIDY_SOURCES})
-
- set(CLANG_TIDY_CONFIG "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/clang-tidy.config")
- if(CLANG_TIDY_BIN)
- add_custom_target(clang_tidy
- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
- VERBATIM
- COMMAND "${CLANG_TIDY_BIN}" -p "${PROJECT_BINARY_DIR}"
- --config-file "${CLANG_TIDY_CONFIG}"
- ${NOA_TARGET_CLANG_TIDY_FILES}
- COMMENT "Analyzing sources using ClangTidy")
- else()
- add_custom_target(clang_tidy
- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
- VERBATIM
- COMMAND "${CMAKE_COMMAND}" -E echo "Could not locate ClangTidy"
- COMMAND "${CMAKE_COMMAND}" -E false)
- endif()
-
- set_target_properties(clang_tidy PROPERTIES FOLDER "Linting")
-endfunction()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/targets/clang-tidy.config b/vendor/alterschema/vendor/noa/cmake/noa/targets/clang-tidy.config
deleted file mode 100644
index 1ea469bf..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/targets/clang-tidy.config
+++ /dev/null
@@ -1,7 +0,0 @@
----
-# See https://clang.llvm.org/extra/clang-tidy/index.html
-# First disable all default checks (with -*)
-Checks: '-*,bugprone-*,clang-analyzer-*,clang-diagnostic-*,modernize-*,concurrency-*,cppcoreguidelines-*,performance-*,portability-*,objc-*,misc-*,-misc-no-recursion,-bugprone-easily-swappable-parameters'
-WarningsAsErrors: '*'
-HeaderFilterRegex: ''
-FormatStyle: none
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/targets/doxygen.cmake b/vendor/alterschema/vendor/noa/cmake/noa/targets/doxygen.cmake
deleted file mode 100644
index 1a3bfc2c..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/targets/doxygen.cmake
+++ /dev/null
@@ -1,26 +0,0 @@
-function(noa_target_doxygen)
- cmake_parse_arguments(NOA_TARGET_DOXYGEN "" "CONFIG;OUTPUT" "" ${ARGN})
-
- if(NOT NOA_TARGET_DOXYGEN_CONFIG)
- message(FATAL_ERROR "You must pass an input config file using the CONFIG option")
- endif()
- if(NOT NOA_TARGET_DOXYGEN_OUTPUT)
- message(FATAL_ERROR "You must pass an output directory using the OUTPUT option")
- endif()
-
- find_package(Doxygen)
- if(DOXYGEN_FOUND)
- set(DOXYGEN_IN "${NOA_TARGET_DOXYGEN_CONFIG}")
- set(DOXYGEN_OUT "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
- configure_file("${DOXYGEN_IN}" "${DOXYGEN_OUT}" @ONLY)
- add_custom_target(doxygen
- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
- VERBATIM
- COMMAND "${CMAKE_COMMAND}" -E make_directory "${NOA_TARGET_DOXYGEN_OUTPUT}"
- COMMAND "${DOXYGEN_EXECUTABLE}" "${DOXYGEN_OUT}")
- else()
- add_custom_target(doxygen VERBATIM
- COMMAND "${CMAKE_COMMAND}" -E echo "Could not locate Doxygen"
- COMMAND "${CMAKE_COMMAND}" -E false)
- endif()
-endfunction()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/targets/executable.cmake b/vendor/alterschema/vendor/noa/cmake/noa/targets/executable.cmake
deleted file mode 100644
index 97a49fae..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/targets/executable.cmake
+++ /dev/null
@@ -1,35 +0,0 @@
-function(noa_executable)
- cmake_parse_arguments(NOA_EXECUTABLE ""
- "NAMESPACE;PROJECT;NAME;FOLDER;VARIANT;OUTPUT" "SOURCES" ${ARGN})
-
- if(NOT NOA_EXECUTABLE_PROJECT)
- message(FATAL_ERROR "You must pass the project name using the PROJECT option")
- endif()
- if(NOT NOA_EXECUTABLE_NAME)
- message(FATAL_ERROR "You must pass the executable name using the NAME option")
- endif()
- if(NOT NOA_EXECUTABLE_FOLDER)
- message(FATAL_ERROR "You must pass the folder name using the FOLDER option")
- endif()
- if(NOT NOA_EXECUTABLE_SOURCES)
- message(FATAL_ERROR "You must pass the sources list using the SOURCES option")
- endif()
-
- if(NOA_EXECUTABLE_NAMESPACE)
- set(TARGET_NAME "${NOA_EXECUTABLE_NAMESPACE}_${NOA_EXECUTABLE_PROJECT}_${NOA_EXECUTABLE_NAME}")
- else()
- set(TARGET_NAME "${NOA_EXECUTABLE_PROJECT}_${NOA_EXECUTABLE_NAME}")
- endif()
-
- if(NOA_EXECUTABLE_VARIANT)
- set(TARGET_NAME "${TARGET_NAME}_${NOA_EXECUTABLE_VARIANT}")
- endif()
-
- if(NOA_EXECUTABLE_OUTPUT)
- set("${NOA_EXECUTABLE_OUTPUT}" "${TARGET_NAME}" PARENT_SCOPE)
- endif()
-
- add_executable("${TARGET_NAME}" ${NOA_EXECUTABLE_SOURCES})
- noa_add_default_options(PRIVATE ${TARGET_NAME})
- set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${NOA_EXECUTABLE_FOLDER}")
-endfunction()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/targets/googlebenchmark.cmake b/vendor/alterschema/vendor/noa/cmake/noa/targets/googlebenchmark.cmake
deleted file mode 100644
index f7068346..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/targets/googlebenchmark.cmake
+++ /dev/null
@@ -1,26 +0,0 @@
-function(noa_googlebenchmark)
- cmake_parse_arguments(NOA_GOOGLEBENCHMARK ""
- "NAMESPACE;PROJECT;FOLDER" "SOURCES" ${ARGN})
-
- if(NOT NOA_GOOGLEBENCHMARK_PROJECT)
- message(FATAL_ERROR "You must pass the project name using the PROJECT option")
- endif()
- if(NOT NOA_GOOGLEBENCHMARK_FOLDER)
- message(FATAL_ERROR "You must pass the folder name using the FOLDER option")
- endif()
- if(NOT NOA_GOOGLEBENCHMARK_SOURCES)
- message(FATAL_ERROR "You must pass the sources list using the SOURCES option")
- endif()
-
- if(NOA_GOOGLEBENCHMARK_NAMESPACE)
- set(TARGET_NAME "${NOA_GOOGLEBENCHMARK_NAMESPACE}_${NOA_GOOGLEBENCHMARK_PROJECT}_benchmark")
- else()
- set(TARGET_NAME "${NOA_GOOGLEBENCHMARK_PROJECT}_benchmark")
- endif()
-
- add_executable("${TARGET_NAME}" ${NOA_GOOGLEBENCHMARK_SOURCES})
- noa_add_default_options(PRIVATE ${TARGET_NAME})
- set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${NOA_GOOGLEBENCHMARK_FOLDER}")
- target_link_libraries("${TARGET_NAME}" PRIVATE benchmark::benchmark)
- target_link_libraries("${TARGET_NAME}" PRIVATE benchmark::benchmark_main)
-endfunction()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/targets/googletest.cmake b/vendor/alterschema/vendor/noa/cmake/noa/targets/googletest.cmake
deleted file mode 100644
index ee8482b9..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/targets/googletest.cmake
+++ /dev/null
@@ -1,24 +0,0 @@
-function(noa_googletest)
- cmake_parse_arguments(NOA_GOOGLETEST ""
- "NAMESPACE;PROJECT;NAME;FOLDER;VARIANT" "SOURCES" ${ARGN})
-
- if(NOA_GOOGLETEST_VARIANT)
- set(TARGET_VARIANT "${NOA_GOOGLETEST_VARIANT}_unit")
- else()
- set(TARGET_VARIANT "unit")
- endif()
-
- noa_executable(
- NAMESPACE "${NOA_GOOGLETEST_NAMESPACE}"
- PROJECT "${NOA_GOOGLETEST_PROJECT}"
- NAME "${NOA_GOOGLETEST_NAME}"
- FOLDER "${NOA_GOOGLETEST_FOLDER}"
- VARIANT "${TARGET_VARIANT}"
- SOURCES "${NOA_GOOGLETEST_SOURCES}"
- OUTPUT TARGET_NAME)
-
- target_link_libraries("${TARGET_NAME}"
- PRIVATE GTest::gtest GTest::gmock GTest::gtest_main)
- add_test(NAME "${NOA_GOOGLETEST_PROJECT}.${NOA_GOOGLETEST_NAME}"
- COMMAND "${TARGET_NAME}" --gtest_brief=1)
-endfunction()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/targets/library.cmake b/vendor/alterschema/vendor/noa/cmake/noa/targets/library.cmake
deleted file mode 100644
index 03311504..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/targets/library.cmake
+++ /dev/null
@@ -1,165 +0,0 @@
-function(noa_library)
- cmake_parse_arguments(NOA_LIBRARY ""
- "NAMESPACE;PROJECT;NAME;FOLDER;VARIANT" "PRIVATE_HEADERS;SOURCES" ${ARGN})
-
- if(NOT NOA_LIBRARY_PROJECT)
- message(FATAL_ERROR "You must pass the project name using the PROJECT option")
- endif()
- if(NOT NOA_LIBRARY_NAME)
- message(FATAL_ERROR "You must pass the library name using the NAME option")
- endif()
- if(NOT NOA_LIBRARY_FOLDER)
- message(FATAL_ERROR "You must pass the folder name using the FOLDER option")
- endif()
-
- if(NOA_LIBRARY_NAMESPACE)
- set(INCLUDE_PREFIX "include/${NOA_LIBRARY_NAMESPACE}/${NOA_LIBRARY_PROJECT}")
- else()
- set(INCLUDE_PREFIX "include/${NOA_LIBRARY_PROJECT}")
- endif()
-
- set(EXPORT_HEADER_PATH "${CMAKE_CURRENT_BINARY_DIR}/${INCLUDE_PREFIX}/${NOA_LIBRARY_NAME}_export.h")
- if(NOT NOA_LIBRARY_VARIANT)
- set(PUBLIC_HEADER "${INCLUDE_PREFIX}/${NOA_LIBRARY_NAME}.h")
- else()
- set(PUBLIC_HEADER "../${INCLUDE_PREFIX}/${NOA_LIBRARY_NAME}.h")
- endif()
-
- if(NOA_LIBRARY_SOURCES)
- set(ABSOLUTE_PRIVATE_HEADERS "${EXPORT_HEADER_PATH}")
- else()
- set(ABSOLUTE_PRIVATE_HEADERS)
- endif()
-
- foreach(private_header IN LISTS NOA_LIBRARY_PRIVATE_HEADERS)
- if(NOA_LIBRARY_VARIANT)
- list(APPEND ABSOLUTE_PRIVATE_HEADERS "../${INCLUDE_PREFIX}/${NOA_LIBRARY_NAME}_${private_header}")
- else()
- list(APPEND ABSOLUTE_PRIVATE_HEADERS "${INCLUDE_PREFIX}/${NOA_LIBRARY_NAME}_${private_header}")
- endif()
- endforeach()
-
- if(NOA_LIBRARY_NAMESPACE)
- set(TARGET_NAME "${NOA_LIBRARY_NAMESPACE}_${NOA_LIBRARY_PROJECT}_${NOA_LIBRARY_NAME}")
- set(ALIAS_NAME "${NOA_LIBRARY_NAMESPACE}::${NOA_LIBRARY_PROJECT}::${NOA_LIBRARY_NAME}")
- else()
- set(TARGET_NAME "${NOA_LIBRARY_PROJECT}_${NOA_LIBRARY_NAME}")
- set(ALIAS_NAME "${NOA_LIBRARY_PROJECT}::${NOA_LIBRARY_NAME}")
- endif()
-
- if(NOA_LIBRARY_VARIANT)
- set(TARGET_NAME "${TARGET_NAME}_${NOA_LIBRARY_VARIANT}")
- set(ALIAS_NAME "${ALIAS_NAME}::${NOA_LIBRARY_VARIANT}")
- endif()
-
- if(NOA_LIBRARY_SOURCES)
- add_library(${TARGET_NAME}
- ${PUBLIC_HEADER} ${ABSOLUTE_PRIVATE_HEADERS} ${NOA_LIBRARY_SOURCES})
- noa_add_default_options(PRIVATE ${TARGET_NAME})
- else()
- add_library(${TARGET_NAME} INTERFACE
- ${PUBLIC_HEADER} ${ABSOLUTE_PRIVATE_HEADERS})
- noa_add_default_options(INTERFACE ${TARGET_NAME})
- endif()
-
- add_library(${ALIAS_NAME} ALIAS ${TARGET_NAME})
-
- if(NOT NOA_LIBRARY_VARIANT)
- set(include_dir "${CMAKE_CURRENT_SOURCE_DIR}/include")
- else()
- set(include_dir "${CMAKE_CURRENT_SOURCE_DIR}/../include")
- endif()
- if(NOA_LIBRARY_SOURCES)
- target_include_directories(${TARGET_NAME} PUBLIC
- "$"
- "$")
- else()
- target_include_directories(${TARGET_NAME} INTERFACE
- "$"
- "$")
- endif()
-
- if(NOA_LIBRARY_VARIANT)
- set(export_name "${NOA_LIBRARY_PROJECT}::${NOA_LIBRARY_NAME}::${NOA_LIBRARY_VARIANT}")
- else()
- set(export_name "${NOA_LIBRARY_PROJECT}::${NOA_LIBRARY_NAME}")
- endif()
-
- if(NOA_LIBRARY_SOURCES)
- set_target_properties(${TARGET_NAME}
- PROPERTIES
- OUTPUT_NAME ${TARGET_NAME}
- PUBLIC_HEADER "${PUBLIC_HEADER}"
- PRIVATE_HEADER "${ABSOLUTE_PRIVATE_HEADERS}"
- EXPORT_NAME "${export_name}"
- FOLDER "${NOA_LIBRARY_FOLDER}")
- else()
- set_target_properties(${TARGET_NAME}
- PROPERTIES
- OUTPUT_NAME ${TARGET_NAME}
- PUBLIC_HEADER "${PUBLIC_HEADER}"
- PRIVATE_HEADER "${ABSOLUTE_PRIVATE_HEADERS}"
- EXPORT_NAME "${export_name}"
- FOLDER "${NOA_LIBRARY_FOLDER}")
- endif()
-
- if(NOA_LIBRARY_SOURCES)
- include(GenerateExportHeader)
- generate_export_header(${TARGET_NAME}
- EXPORT_FILE_NAME ${EXPORT_HEADER_PATH})
- set_target_properties(${TARGET_NAME}
- PROPERTIES
- SOVERSION "${PROJECT_VERSION_MAJOR}"
- VERSION "${PROJECT_VERSION}")
-
- # To find the generated files
- target_include_directories(${TARGET_NAME}
- PUBLIC "$")
- endif()
-endfunction()
-
-function(noa_library_install)
- cmake_parse_arguments(NOA_LIBRARY "" "NAMESPACE;PROJECT;NAME;VARIANT" "" ${ARGN})
-
- if(NOT NOA_LIBRARY_PROJECT)
- message(FATAL_ERROR "You must pass the project name using the PROJECT option")
- endif()
- if(NOT NOA_LIBRARY_NAME)
- message(FATAL_ERROR "You must pass the library name using the NAME option")
- endif()
-
- if(NOA_LIBRARY_NAMESPACE)
- set(COMPONENT_NAME "${NOA_LIBRARY_NAMESPACE}_${NOA_LIBRARY_PROJECT}")
- set(TARGET_NAME "${NOA_LIBRARY_NAMESPACE}_${NOA_LIBRARY_PROJECT}_${NOA_LIBRARY_NAME}")
- set(INCLUDE_PATH "${CMAKE_INSTALL_INCLUDEDIR}/${NOA_LIBRARY_NAMESPACE}/${NOA_LIBRARY_PROJECT}")
- set(NAMESPACE_PREFIX "${NOA_LIBRARY_NAMESPACE}::")
- else()
- set(COMPONENT_NAME "${NOA_LIBRARY_PROJECT}")
- set(TARGET_NAME "${NOA_LIBRARY_PROJECT}_${NOA_LIBRARY_NAME}")
- set(INCLUDE_PATH "${CMAKE_INSTALL_INCLUDEDIR}/${NOA_LIBRARY_PROJECT}")
- set(NAMESPACE_PREFIX "")
- endif()
-
- if(NOA_LIBRARY_VARIANT)
- set(TARGET_NAME "${TARGET_NAME}_${NOA_LIBRARY_VARIANT}")
- endif()
-
- include(GNUInstallDirs)
- install(TARGETS ${TARGET_NAME}
- EXPORT ${TARGET_NAME}
- PUBLIC_HEADER DESTINATION "${INCLUDE_PATH}"
- COMPONENT ${COMPONENT_NAME}_dev
- PRIVATE_HEADER DESTINATION "${INCLUDE_PATH}"
- COMPONENT ${COMPONENT_NAME}_dev
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
- COMPONENT ${COMPONENT_NAME}
- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
- COMPONENT ${COMPONENT_NAME}
- NAMELINK_COMPONENT ${COMPONENT_NAME}_dev
- ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
- COMPONENT ${COMPONENT_NAME}_dev)
- install(EXPORT ${TARGET_NAME}
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${NOA_LIBRARY_PROJECT}"
- NAMESPACE ${NAMESPACE_PREFIX}
- COMPONENT ${COMPONENT_NAME}_dev)
-endfunction()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/targets/shellcheck.cmake b/vendor/alterschema/vendor/noa/cmake/noa/targets/shellcheck.cmake
deleted file mode 100644
index 65622470..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/targets/shellcheck.cmake
+++ /dev/null
@@ -1,32 +0,0 @@
-function(noa_target_shellcheck)
- cmake_parse_arguments(NOA_TARGET_SHELLCHECK "REQUIRED" "" "SOURCES" ${ARGN})
-
- if(NOA_TARGET_SHELLCHECK_REQUIRED)
- find_program(SHELLCHECK_BIN NAMES shellcheck REQUIRED)
- else()
- find_program(SHELLCHECK_BIN NAMES shellcheck)
- endif()
-
- # This covers the empty list too
- if(NOT NOA_TARGET_SHELLCHECK_SOURCES)
- message(FATAL_ERROR "You must pass file globs to lint in the SOURCES option")
- endif()
- file(GLOB_RECURSE NOA_TARGET_SHELLCHECK_FILES
- ${NOA_TARGET_SHELLCHECK_SOURCES})
-
- if(SHELLCHECK_BIN)
- add_custom_target(shellcheck
- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
- VERBATIM
- COMMAND "${SHELLCHECK_BIN}" ${NOA_TARGET_SHELLCHECK_FILES}
- COMMENT "Analyzing sources using ShellCheck")
- else()
- add_custom_target(shellcheck
- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
- VERBATIM
- COMMAND "${CMAKE_COMMAND}" -E echo "Could not locate ShellCheck"
- COMMAND "${CMAKE_COMMAND}" -E false)
- endif()
-
- set_target_properties(shellcheck PROPERTIES FOLDER "Linting")
-endfunction()
diff --git a/vendor/alterschema/vendor/noa/cmake/noa/variables.cmake b/vendor/alterschema/vendor/noa/cmake/noa/variables.cmake
deleted file mode 100644
index dff65711..00000000
--- a/vendor/alterschema/vendor/noa/cmake/noa/variables.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-# Get the list of languages defined in the project
-get_property(NOA_LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
-
-# Compiler detection (C++)
-# TODO: Detect compilers on programming languages other than C++
-if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
- set(NOA_COMPILER_LLVM ON PARENT_SCOPE)
-elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- set(NOA_COMPILER_GCC ON PARENT_SCOPE)
-elseif(MSVC)
- set(NOA_COMPILER_MSVC ON PARENT_SCOPE)
-endif()
diff --git a/vendor/alterschema/vendor/noa/config.cmake.in b/vendor/alterschema/vendor/noa/config.cmake.in
deleted file mode 100644
index ef5baf7f..00000000
--- a/vendor/alterschema/vendor/noa/config.cmake.in
+++ /dev/null
@@ -1,27 +0,0 @@
-@PACKAGE_INIT@
-
-# Support both casing styles
-list(APPEND NOA_COMPONENTS ${Noa_FIND_COMPONENTS})
-list(APPEND NOA_COMPONENTS ${noa_FIND_COMPONENTS})
-if(NOT NOA_COMPONENTS)
- list(APPEND NOA_COMPONENTS hash)
- list(APPEND NOA_COMPONENTS flat_map)
- list(APPEND NOA_COMPONENTS regex)
-endif()
-
-include(CMakeFindDependencyMacro)
-
-foreach(component ${NOA_COMPONENTS})
- if(component STREQUAL "hash")
- include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_noa_hash.cmake")
- elseif(component STREQUAL "flat_map")
- include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_noa_flat_map.cmake")
- elseif(component STREQUAL "regex")
- find_dependency(BoostRegex)
- include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_noa_regex.cmake")
- else()
- message(FATAL_ERROR "Unknown Noa component: ${component}")
- endif()
-endforeach()
-
-check_required_components("@PROJECT_NAME@")
diff --git a/vendor/alterschema/vendor/noa/src/flat_map/CMakeLists.txt b/vendor/alterschema/vendor/noa/src/flat_map/CMakeLists.txt
deleted file mode 100644
index 37e01dd2..00000000
--- a/vendor/alterschema/vendor/noa/src/flat_map/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-include(noa)
-
-noa_library(NAMESPACE sourcemeta PROJECT noa NAME flat_map FOLDER "Noa/Flat Map")
-
-if(NOA_INSTALL)
- noa_library_install(NAMESPACE sourcemeta PROJECT noa NAME flat_map)
-endif()
diff --git a/vendor/alterschema/vendor/noa/src/flat_map/include/sourcemeta/noa/flat_map.h b/vendor/alterschema/vendor/noa/src/flat_map/include/sourcemeta/noa/flat_map.h
deleted file mode 100644
index e253326c..00000000
--- a/vendor/alterschema/vendor/noa/src/flat_map/include/sourcemeta/noa/flat_map.h
+++ /dev/null
@@ -1,270 +0,0 @@
-#ifndef SOURCEMETA_NOA_FLAT_MAP_H_
-#define SOURCEMETA_NOA_FLAT_MAP_H_
-
-#include // std::swap
-#include // assert
-#include // std::initializer_list
-#include // std::advance
-#include // std::pair, std::move
-#include // std::vector
-
-/// @defgroup flat_map Flat Map
-
-namespace sourcemeta::noa {
-
-// TODO: Allow passing custom allocators
-/// @ingroup flat_map
-template class FlatMap {
-public:
- FlatMap() = default;
-
- using key_type = Key;
- using mapped_type = Value;
- using hash_type = typename Hash::hash_type;
- using value_type = std::pair;
-
- struct Entry {
- key_type first;
- mapped_type second;
- hash_type hash;
- };
-
- using underlying_type = std::vector;
- using size_type = typename underlying_type::size_type;
- using difference_type = typename underlying_type::difference_type;
- using allocator_type = typename underlying_type::allocator_type;
- using reference = typename underlying_type::reference;
- using const_reference = typename underlying_type::const_reference;
- using pointer = typename underlying_type::pointer;
- using const_pointer = typename underlying_type::const_pointer;
- using const_iterator = typename underlying_type::const_iterator;
-
- FlatMap(std::initializer_list entries) {
- this->data.reserve(entries.size());
- for (auto &&entry : entries) {
- this->assign(std::move(entry.first), std::move(entry.second));
- }
- }
-
- auto begin() const noexcept -> const_iterator { return this->data.begin(); }
- auto end() const noexcept -> const_iterator { return this->data.end(); }
- auto cbegin() const noexcept -> const_iterator { return this->data.cbegin(); }
- auto cend() const noexcept -> const_iterator { return this->data.cend(); }
-
- inline auto hash(const key_type &key) const noexcept -> hash_type {
- return this->hasher(key);
- }
-
- auto assign(key_type &&key, mapped_type &&value) -> hash_type {
- const auto key_hash{this->hash(key)};
-
- if (this->hasher.is_perfect(key_hash)) {
- for (auto &entry : this->data) {
- if (entry.hash == key_hash) {
- entry.second = std::move(value);
- return key_hash;
- }
- }
- } else {
- for (auto &entry : this->data) {
- if (entry.hash == key_hash && entry.first == key) {
- entry.second = std::move(value);
- return key_hash;
- }
- }
- }
-
- this->data.push_back({std::move(key), std::move(value), key_hash});
- return key_hash;
- }
-
- auto assign(const key_type &key, const mapped_type &value) -> hash_type {
- const auto key_hash{this->hash(key)};
-
- if (this->hasher.is_perfect(key_hash)) {
- for (auto &entry : this->data) {
- if (entry.hash == key_hash) {
- entry.second = value;
- return key_hash;
- }
- }
- } else {
- for (auto &entry : this->data) {
- if (entry.hash == key_hash && entry.first == key) {
- entry.second = value;
- return key_hash;
- }
- }
- }
-
- this->data.push_back({key, value, key_hash});
- return key_hash;
- }
-
- // As a performance optimisation if the hash is known
- inline auto find(const key_type &key, const hash_type key_hash) const
- -> const_iterator {
- assert(this->hash(key) == key_hash);
-
- // Move the perfect hash condition out of the loop for extra performance
- if (this->hasher.is_perfect(key_hash)) {
- for (size_type index = 0; index < this->data.size(); index++) {
- if (this->data[index].hash == key_hash) {
- auto iterator{this->cbegin()};
- std::advance(iterator, index);
- return iterator;
- }
- }
- } else {
- for (size_type index = 0; index < this->data.size(); index++) {
- if (this->data[index].hash == key_hash &&
- this->data[index].first == key) {
- auto iterator{this->cbegin()};
- std::advance(iterator, index);
- return iterator;
- }
- }
- }
-
- return this->cend();
- }
-
- // As a performance optimisation if the hash is known
- auto contains(const key_type &key, const hash_type key_hash) const -> bool {
- assert(this->hash(key) == key_hash);
-
- // Move the perfect hash condition out of the loop for extra performance
- if (this->hasher.is_perfect(key_hash)) {
- for (const auto &entry : this->data) {
- if (entry.hash == key_hash) {
- return true;
- }
- }
- } else {
- for (const auto &entry : this->data) {
- if (entry.hash == key_hash && entry.first == key) {
- return true;
- }
- }
- }
-
- return false;
- }
-
- // As a performance optimisation if the hash is known
-
- inline auto at(const key_type &key, const hash_type key_hash) const
- -> const mapped_type & {
- assert(this->hash(key) == key_hash);
-
- // Move the perfect hash condition out of the loop for extra performance
- if (this->hasher.is_perfect(key_hash)) {
- for (const auto &entry : this->data) {
- if (entry.hash == key_hash) {
- return entry.second;
- }
- }
- } else {
- for (const auto &entry : this->data) {
- if (entry.hash == key_hash && entry.first == key) {
- return entry.second;
- }
- }
- }
-
-// See https://en.cppreference.com/w/cpp/utility/unreachable
-#if defined(_MSC_VER) && !defined(__clang__)
- __assume(false);
-#else
- __builtin_unreachable();
-#endif
- }
-
- inline auto at(const key_type &key, const hash_type key_hash)
- -> mapped_type & {
- assert(this->hash(key) == key_hash);
-
- // Move the perfect hash condition out of the loop for extra performance
- if (this->hasher.is_perfect(key_hash)) {
- for (auto &entry : this->data) {
- if (entry.hash == key_hash) {
- return entry.second;
- }
- }
- } else {
- for (auto &entry : this->data) {
- if (entry.hash == key_hash && entry.first == key) {
- return entry.second;
- }
- }
- }
-
-// See https://en.cppreference.com/w/cpp/utility/unreachable
-#if defined(_MSC_VER) && !defined(__clang__)
- __assume(false);
-#else
- __builtin_unreachable();
-#endif
- }
-
- auto erase(const key_type &key, const hash_type key_hash) -> size_type {
- const auto current_size{this->size()};
-
- if (this->hasher.is_perfect(key_hash)) {
- for (auto &entry : this->data) {
- if (entry.hash == key_hash) {
- std::swap(entry, this->data.back());
- this->data.pop_back();
- return current_size - 1;
- }
- }
- } else {
- for (auto &entry : this->data) {
- if (entry.hash == key_hash && entry.first == key) {
- std::swap(entry, this->data.back());
- this->data.pop_back();
- return current_size - 1;
- }
- }
- }
-
- return current_size;
- }
-
- inline auto erase(const key_type &key) -> size_type {
- return this->erase(key, this->hash(key));
- }
-
- inline auto size() const noexcept -> size_type { return this->data.size(); }
-
- inline auto empty() const noexcept -> bool { return this->data.empty(); }
-
- inline auto clear() noexcept -> void { this->data.clear(); }
-
- auto operator!=(const FlatMap &other) const -> bool = default;
-
- auto operator==(const FlatMap &other) const -> bool {
- if (this->size() != other.size()) {
- return false;
- }
-
- for (const auto &entry : this->data) {
- const auto iterator{other.find(entry.first, entry.hash)};
- if (iterator == other.cend()) {
- return false;
- } else if (iterator->second != entry.second) {
- return false;
- }
- }
-
- return true;
- }
-
-private:
- underlying_type data;
- Hash hasher;
-};
-
-} // namespace sourcemeta::noa
-
-#endif
diff --git a/vendor/alterschema/vendor/noa/src/hash/CMakeLists.txt b/vendor/alterschema/vendor/noa/src/hash/CMakeLists.txt
deleted file mode 100644
index 28748a3d..00000000
--- a/vendor/alterschema/vendor/noa/src/hash/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-include(noa)
-
-noa_library(NAMESPACE sourcemeta PROJECT noa NAME hash FOLDER "Noa/Hash")
-
-if(NOA_INSTALL)
- noa_library_install(NAMESPACE sourcemeta PROJECT noa NAME hash)
-endif()
diff --git a/vendor/alterschema/vendor/noa/src/hash/include/sourcemeta/noa/hash.h b/vendor/alterschema/vendor/noa/src/hash/include/sourcemeta/noa/hash.h
deleted file mode 100644
index a5f2ee33..00000000
--- a/vendor/alterschema/vendor/noa/src/hash/include/sourcemeta/noa/hash.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef SOURCEMETA_NOA_HASH_H_
-#define SOURCEMETA_NOA_HASH_H_
-
-/// @defgroup hash Hash
-
-namespace sourcemeta::noa {
-
-// @ingroup hash
-template struct StandardHash {
- using hash_type = std::size_t;
- inline auto operator()(const T &value) const -> hash_type {
- return this->hasher(value);
- }
-
- inline auto is_perfect(const hash_type &) const noexcept -> bool {
- return false;
- }
-
-private:
- std::hash hasher;
-};
-
-} // namespace sourcemeta::noa
-
-#endif
diff --git a/vendor/alterschema/vendor/noa/src/regex/CMakeLists.txt b/vendor/alterschema/vendor/noa/src/regex/CMakeLists.txt
deleted file mode 100644
index 9a5c8168..00000000
--- a/vendor/alterschema/vendor/noa/src/regex/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-include(noa)
-
-noa_library(NAMESPACE sourcemeta PROJECT noa NAME regex
- FOLDER "Noa/Regex")
-
-if(NOA_INSTALL)
- noa_library_install(NAMESPACE sourcemeta PROJECT noa NAME regex)
-endif()
-
-target_link_libraries(sourcemeta_noa_regex INTERFACE Boost::regex)
diff --git a/vendor/alterschema/vendor/noa/src/regex/include/sourcemeta/noa/regex.h b/vendor/alterschema/vendor/noa/src/regex/include/sourcemeta/noa/regex.h
deleted file mode 100644
index 71569c71..00000000
--- a/vendor/alterschema/vendor/noa/src/regex/include/sourcemeta/noa/regex.h
+++ /dev/null
@@ -1,191 +0,0 @@
-#ifndef SOURCEMETA_NOA_REGEX_H_
-#define SOURCEMETA_NOA_REGEX_H_
-
-#if defined(__clang__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdocumentation"
-#pragma clang diagnostic ignored "-Wsign-conversion"
-#pragma clang diagnostic ignored "-Wshorten-64-to-32"
-#elif defined(__GNUC__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wsign-conversion"
-#pragma GCC diagnostic ignored "-Wconversion"
-#endif
-#include
-#if defined(__clang__)
-#pragma clang diagnostic pop
-#elif defined(__GNUC__)
-#pragma GCC diagnostic pop
-#endif
-
-#include // assert
-#include // std::uint8_t, std::uint64_t
-#include // std::optional
-#include // std::regex
-#include // std::stoull
-#include // std::pair
-#include // std::variant
-
-/// @defgroup regex Regex
-
-namespace sourcemeta::noa {
-
-/// @ingroup regex
-template using RegexTypeBoost = boost::basic_regex;
-
-/// @ingroup regex
-template using RegexTypePrefix = T;
-
-/// @ingroup regex
-struct RegexTypeNonEmpty {};
-
-/// @ingroup regex
-using RegexTypeRange = std::pair;
-
-/// @ingroup regex
-template using RegexTypeStd = std::basic_regex;
-
-/// @ingroup regex
-struct RegexTypeNoop {};
-
-/// @ingroup regex
-template
-using Regex =
- std::variant, RegexTypePrefix,
- RegexTypeNonEmpty, RegexTypeRange,
- RegexTypeStd, RegexTypeNoop>;
-#if !defined(DOXYGEN)
-// For fast internal dispatching. It must stay in sync with the variant above
-enum class RegexIndex : std::uint8_t {
- Boost = 0,
- Prefix,
- NonEmpty,
- Range,
- Std,
- Noop
-};
-#endif
-
-/// @ingroup regex
-///
-/// Compile a regular expression from a string. If the regular expression is
-/// invalid, no value is returned. For example:
-///
-/// ```cpp
-/// #include
-/// #include
-///
-/// const sourcemeta::noa::Regex regex{
-/// sourcemeta::noa::to_regex("^foo")};
-/// assert(regex.has_value());
-/// ```
-template
-auto to_regex(const T &pattern) -> std::optional> {
- if (pattern == ".*" || pattern == "^.*$" || pattern == "^(.*)$" ||
- pattern == "(.*)" || pattern == "[\\s\\S]*" || pattern == "^[\\s\\S]*$") {
- return RegexTypeNoop{};
- } else if (pattern == ".+" || pattern == "^.+$" || pattern == "^(.+)$" ||
- pattern == ".") {
- return RegexTypeNonEmpty{};
- }
-
- const std::regex PREFIX_REGEX{R"(^\^([a-zA-Z0-9-_/@]+)(\.\*)?)"};
- std::smatch matches_prefix;
- if (std::regex_match(pattern, matches_prefix, PREFIX_REGEX)) {
- return RegexTypePrefix{matches_prefix[1].str()};
- }
-
- const std::regex RANGE_REGEX{R"(^\^\.\{(\d+),(\d+)\}\$$)"};
- std::smatch matches_range;
- if (std::regex_match(pattern, matches_range, RANGE_REGEX)) {
- const std::uint64_t minimum{std::stoull(matches_range[1].str())};
- const std::uint64_t maximum{std::stoull(matches_range[2].str())};
- assert(minimum <= maximum);
- return RegexTypeRange{minimum, maximum};
- }
-
- RegexTypeBoost result{
- pattern,
- boost::regex::no_except |
- // See https://en.cppreference.com/w/cpp/regex/basic_regex/constants
- boost::regex::ECMAScript |
-
- // When performing matches, all marked sub-expressions (expr) are
- // treated as non-marking sub-expressions (?:expr)
- boost::regex::nosubs |
-
- // Instructs the regular expression engine to make matching faster,
- // with the potential cost of making construction slower
- boost::regex::optimize};
-
- // Returns zero if the expression contains a valid regular expression
- // See
- // https://www.boost.org/doc/libs/1_82_0/libs/regex/doc/html/boost_regex/ref/basic_regex.html
- if (result.status() == 0) {
- return result;
- }
-
- try {
- // Boost seems to sometimes be overly strict, so we still default to
- // the standard implementation
- return RegexTypeStd{
- pattern,
- // See https://en.cppreference.com/w/cpp/regex/basic_regex/constants
- std::regex::ECMAScript |
-
- // When performing matches, all marked sub-expressions (expr) are
- // treated as non-marking sub-expressions (?:expr)
- std::regex::nosubs |
-
- // Instructs the regular expression engine to make matching
- // faster, with the potential cost of making construction slower
- std::regex::optimize};
- } catch (const std::regex_error &) {
- return std::nullopt;
- }
-}
-
-/// @ingroup regex
-///
-/// Validate a string against a regular expression. For example:
-///
-/// ```cpp
-/// #include
-/// #include
-///
-/// const sourcemeta::noa::Regex regex{
-/// sourcemeta::noa::to_regex("^foo")};
-/// assert(regex.has_value());
-/// assert(sourcemeta::noa::matches(regex.value(), "foo bar"));
-/// ```
-template
-auto matches(const Regex ®ex, const T &value) -> bool {
- switch (static_cast(regex.index())) {
- case RegexIndex::Boost:
- return boost::regex_search(
- value, *std::get_if>(®ex));
- case RegexIndex::Prefix:
- return value.starts_with(*std::get_if>(®ex));
- case RegexIndex::NonEmpty:
- return !value.empty();
- case RegexIndex::Range:
- return value.size() >= std::get_if(®ex)->first &&
- value.size() <= std::get_if(®ex)->second;
- case RegexIndex::Std:
- return std::regex_search(
- value, *std::get_if>(®ex));
- case RegexIndex::Noop:
- return true;
- }
-
- // See https://en.cppreference.com/w/cpp/utility/unreachable
-#if defined(_MSC_VER) && !defined(__clang__)
- __assume(false);
-#else
- __builtin_unreachable();
-#endif
-}
-
-} // namespace sourcemeta::noa
-
-#endif
diff --git a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/cregex.hpp b/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/cregex.hpp
deleted file mode 100644
index 78012dd6..00000000
--- a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/cregex.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are 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)
- *
- */
-
- /*
- * LOCATION: see http://www.boost.org/libs/regex for most recent version.
- * FILE cregex.cpp
- * VERSION see
- * DESCRIPTION: Declares POSIX API functions
- * + boost::RegEx high level wrapper.
- */
-
-#ifndef BOOST_RE_CREGEX_HPP
-#define BOOST_RE_CREGEX_HPP
-
-#ifndef BOOST_REGEX_CONFIG_HPP
-#include
-#endif
-
-#ifdef BOOST_REGEX_CXX03
-#include
-#else
-#include
-#endif
-
-#endif /* include guard */
-
-
-
-
-
-
-
-
-
-
diff --git a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex.h b/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex.h
deleted file mode 100644
index 52af275c..00000000
--- a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2000
- * Dr John Maddock
- *
- * Use, modification and distribution are 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)
- *
- */
-
- /*
- * LOCATION: see http://www.boost.org/libs/regex for documentation.
- * FILE regex.h
- * VERSION 3.12
- * DESCRIPTION: Declares POSIX API functions
- */
-
-#ifndef BOOST_RE_REGEX_H
-#define BOOST_RE_REGEX_H
-
-#include
-
-/*
-* add using declarations to bring POSIX API functions into
-* global scope, only if this is C++ (and not C).
-*/
-#ifdef __cplusplus
-
-using boost::regoff_t;
-using boost::regex_tA;
-using boost::regmatch_t;
-using boost::REG_BASIC;
-using boost::REG_EXTENDED;
-using boost::REG_ICASE;
-using boost::REG_NOSUB;
-using boost::REG_NEWLINE;
-using boost::REG_NOSPEC;
-using boost::REG_PEND;
-using boost::REG_DUMP;
-using boost::REG_NOCOLLATE;
-using boost::REG_ESCAPE_IN_LISTS;
-using boost::REG_NEWLINE_ALT;
-using boost::REG_PERL;
-using boost::REG_AWK;
-using boost::REG_GREP;
-using boost::REG_EGREP;
-using boost::REG_ASSERT;
-using boost::REG_INVARG;
-using boost::REG_ATOI;
-using boost::REG_ITOA;
-
-using boost::REG_NOTBOL;
-using boost::REG_NOTEOL;
-using boost::REG_STARTEND;
-
-using boost::reg_comp_flags;
-using boost::reg_exec_flags;
-using boost::regcompA;
-using boost::regerrorA;
-using boost::regexecA;
-using boost::regfreeA;
-
-#ifndef BOOST_NO_WREGEX
-using boost::regcompW;
-using boost::regerrorW;
-using boost::regexecW;
-using boost::regfreeW;
-using boost::regex_tW;
-#endif
-
-using boost::REG_NOERROR;
-using boost::REG_NOMATCH;
-using boost::REG_BADPAT;
-using boost::REG_ECOLLATE;
-using boost::REG_ECTYPE;
-using boost::REG_EESCAPE;
-using boost::REG_ESUBREG;
-using boost::REG_EBRACK;
-using boost::REG_EPAREN;
-using boost::REG_EBRACE;
-using boost::REG_BADBR;
-using boost::REG_ERANGE;
-using boost::REG_ESPACE;
-using boost::REG_BADRPT;
-using boost::REG_EEND;
-using boost::REG_ESIZE;
-using boost::REG_ERPAREN;
-using boost::REG_EMPTY;
-using boost::REG_E_MEMORY;
-using boost::REG_E_UNKNOWN;
-using boost::reg_errcode_t;
-
-#endif /* __cplusplus */
-
-#endif /* BOOST_RE_REGEX_H */
-
-
-
-
diff --git a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex.hpp b/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex.hpp
deleted file mode 100644
index b0c8bf13..00000000
--- a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are 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)
- *
- */
-
- /*
- * LOCATION: see http://www.boost.org/libs/regex for documentation.
- * FILE regex.cpp
- * VERSION see
- * DESCRIPTION: Declares boost::basic_regex<> and associated
- * functions and classes. This header is the main
- * entry point for the template regex code.
- */
-
-
-/* start with C compatibility API */
-
-#ifndef BOOST_RE_REGEX_HPP
-#define BOOST_RE_REGEX_HPP
-
-#ifndef BOOST_REGEX_CONFIG_HPP
-#include
-#endif
-
-#ifdef BOOST_REGEX_CXX03
-#include
-#else
-#include
-#endif
-
-#endif // include
-
-
-
-
diff --git a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/concepts.hpp b/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/concepts.hpp
deleted file mode 100644
index 2eafac1b..00000000
--- a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/concepts.hpp
+++ /dev/null
@@ -1,1134 +0,0 @@
-/*
- *
- * Copyright (c) 2004
- * John Maddock
- *
- * Use, modification and distribution are 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)
- *
- */
-
- /*
- * LOCATION: see http://www.boost.org for most recent version.
- * FILE concepts.hpp
- * VERSION see
- * DESCRIPTION: Declares regular expression concepts.
- */
-
-#ifndef BOOST_REGEX_CONCEPTS_HPP_INCLUDED
-#define BOOST_REGEX_CONCEPTS_HPP_INCLUDED
-
-#include
-#include
-#include
-#include
-#include
-#ifndef BOOST_TEST_TR1_REGEX
-#include
-#endif
-#include
-#include
-#include
-
-#ifdef BOOST_REGEX_CXX03
-#define RW_NS boost
-#else
-#define RW_NS std
-#endif
-
-namespace boost{
-
-//
-// bitmask_archetype:
-// this can be either an integer type, an enum, or a std::bitset,
-// we use the latter as the architype as it offers the "strictest"
-// of the possible interfaces:
-//
-typedef std::bitset<512> bitmask_archetype;
-//
-// char_architype:
-// A strict model for the character type interface.
-//
-struct char_architype
-{
- // default constructable:
- char_architype();
- // copy constructable / assignable:
- char_architype(const char_architype&);
- char_architype& operator=(const char_architype&);
- // constructable from an integral value:
- char_architype(unsigned long val);
- // comparable:
- bool operator==(const char_architype&)const;
- bool operator!=(const char_architype&)const;
- bool operator<(const char_architype&)const;
- bool operator<=(const char_architype&)const;
- bool operator>=(const char_architype&)const;
- bool operator>(const char_architype&)const;
- // conversion to integral type:
- operator long()const;
-};
-inline long hash_value(char_architype val)
-{ return val; }
-//
-// char_architype can not be used with basic_string:
-//
-} // namespace boost
-namespace std{
- template<> struct char_traits
- {
- // The intent is that this template is not instantiated,
- // but this typedef gives us a chance of compilation in
- // case it is:
- typedef boost::char_architype char_type;
- };
-}
-//
-// Allocator architype:
-//
-template
-class allocator_architype
-{
-public:
- typedef T* pointer;
- typedef const T* const_pointer;
- typedef T& reference;
- typedef const T& const_reference;
- typedef T value_type;
- typedef unsigned size_type;
- typedef int difference_type;
-
- template
- struct rebind
- {
- typedef allocator_architype other;
- };
-
- pointer address(reference r){ return &r; }
- const_pointer address(const_reference r) { return &r; }
- pointer allocate(size_type n) { return static_cast(std::malloc(n)); }
- pointer allocate(size_type n, pointer) { return static_cast(std::malloc(n)); }
- void deallocate(pointer p, size_type) { std::free(p); }
- size_type max_size()const { return UINT_MAX; }
-
- allocator_architype(){}
- allocator_architype(const allocator_architype&){}
-
- template
- allocator_architype(const allocator_architype&){}
-
- void construct(pointer p, const_reference r) { new (p)T(r); }
- void destroy(pointer p) { p->~T(); }
-};
-
-template
-bool operator == (const allocator_architype&, const allocator_architype&) {return true; }
-template
-bool operator != (const allocator_architype&, const allocator_architype&) { return false; }
-
-namespace boost{
-//
-// regex_traits_architype:
-// A strict interpretation of the regular expression traits class requirements.
-//
-template
-struct regex_traits_architype
-{
-public:
- regex_traits_architype(){}
- typedef charT char_type;
- // typedef std::size_t size_type;
- typedef std::vector string_type;
- typedef copy_constructible_archetype > locale_type;
- typedef bitmask_archetype char_class_type;
-
- static std::size_t length(const char_type* ) { return 0; }
-
- charT translate(charT ) const { return charT(); }
- charT translate_nocase(charT ) const { return static_object::get(); }
-
- template
- string_type transform(ForwardIterator , ForwardIterator ) const
- { return static_object::get(); }
- template
- string_type transform_primary(ForwardIterator , ForwardIterator ) const
- { return static_object::get(); }
-
- template
- char_class_type lookup_classname(ForwardIterator , ForwardIterator ) const
- { return static_object::get(); }
- template
- string_type lookup_collatename(ForwardIterator , ForwardIterator ) const
- { return static_object::get(); }
-
- bool isctype(charT, char_class_type) const
- { return false; }
- int value(charT, int) const
- { return 0; }
-
- locale_type imbue(locale_type l)
- { return l; }
- locale_type getloc()const
- { return static_object::get(); }
-
-private:
- // this type is not copyable:
- regex_traits_architype(const regex_traits_architype&){}
- regex_traits_architype& operator=(const regex_traits_architype&){ return *this; }
-};
-
-//
-// alter this to std::tr1, to test a std implementation:
-//
-#ifndef BOOST_TEST_TR1_REGEX
-namespace global_regex_namespace = ::boost;
-#else
-namespace global_regex_namespace = ::std::tr1;
-#endif
-
-template
-struct BitmaskConcept
-{
- void constraints()
- {
- function_requires >();
- function_requires >();
-
- m_mask1 = m_mask2 | m_mask3;
- m_mask1 = m_mask2 & m_mask3;
- m_mask1 = m_mask2 ^ m_mask3;
-
- m_mask1 = ~m_mask2;
-
- m_mask1 |= m_mask2;
- m_mask1 &= m_mask2;
- m_mask1 ^= m_mask2;
- }
- Bitmask m_mask1, m_mask2, m_mask3;
-};
-
-template
-struct RegexTraitsConcept
-{
- RegexTraitsConcept();
- // required typedefs:
- typedef typename traits::char_type char_type;
- // typedef typename traits::size_type size_type;
- typedef typename traits::string_type string_type;
- typedef typename traits::locale_type locale_type;
- typedef typename traits::char_class_type char_class_type;
-
- void constraints()
- {
- //function_requires >();
- function_requires >();
- function_requires >();
- function_requires >();
- function_requires >();
- function_requires >();
-
- std::size_t n = traits::length(m_pointer);
- ignore_unused_variable_warning(n);
-
- char_type c = m_ctraits.translate(m_char);
- ignore_unused_variable_warning(c);
- c = m_ctraits.translate_nocase(m_char);
-
- //string_type::foobar bar;
- string_type s1 = m_ctraits.transform(m_pointer, m_pointer);
- ignore_unused_variable_warning(s1);
-
- string_type s2 = m_ctraits.transform_primary(m_pointer, m_pointer);
- ignore_unused_variable_warning(s2);
-
- char_class_type cc = m_ctraits.lookup_classname(m_pointer, m_pointer);
- ignore_unused_variable_warning(cc);
-
- string_type s3 = m_ctraits.lookup_collatename(m_pointer, m_pointer);
- ignore_unused_variable_warning(s3);
-
- bool b = m_ctraits.isctype(m_char, cc);
- ignore_unused_variable_warning(b);
-
- int v = m_ctraits.value(m_char, 16);
- ignore_unused_variable_warning(v);
-
- locale_type l(m_ctraits.getloc());
- m_traits.imbue(l);
- ignore_unused_variable_warning(l);
- }
- traits m_traits;
- const traits m_ctraits;
- const char_type* m_pointer;
- char_type m_char;
-private:
- RegexTraitsConcept& operator=(RegexTraitsConcept&);
-};
-
-//
-// helper class to compute what traits class a regular expression type is using:
-//
-template
-struct regex_traits_computer;
-
-template
-struct regex_traits_computer< global_regex_namespace::basic_regex >
-{
- typedef traits type;
-};
-
-//
-// BaseRegexConcept does not test anything dependent on basic_string,
-// in case our charT does not have an associated char_traits:
-//
-template
-struct BaseRegexConcept
-{
- typedef typename Regex::value_type value_type;
- //typedef typename Regex::size_type size_type;
- typedef typename Regex::flag_type flag_type;
- typedef typename Regex::locale_type locale_type;
- typedef input_iterator_archetype input_iterator_type;
-
- // derived test types:
- typedef const value_type* pointer_type;
- typedef bidirectional_iterator_archetype BidiIterator;
- typedef global_regex_namespace::sub_match sub_match_type;
- typedef global_regex_namespace::match_results > match_results_type;
- typedef global_regex_namespace::match_results match_results_default_type;
- typedef output_iterator_archetype OutIterator;
- typedef typename regex_traits_computer::type traits_type;
- typedef global_regex_namespace::regex_iterator regex_iterator_type;
- typedef global_regex_namespace::regex_token_iterator regex_token_iterator_type;
-
- void global_constraints()
- {
- //
- // test non-template components:
- //
- function_requires >();
- global_regex_namespace::regex_constants::syntax_option_type opts
- = global_regex_namespace::regex_constants::icase
- | global_regex_namespace::regex_constants::nosubs
- | global_regex_namespace::regex_constants::optimize
- | global_regex_namespace::regex_constants::collate
- | global_regex_namespace::regex_constants::ECMAScript
- | global_regex_namespace::regex_constants::basic
- | global_regex_namespace::regex_constants::extended
- | global_regex_namespace::regex_constants::awk
- | global_regex_namespace::regex_constants::grep
- | global_regex_namespace::regex_constants::egrep;
- ignore_unused_variable_warning(opts);
-
- function_requires >();
- global_regex_namespace::regex_constants::match_flag_type mopts
- = global_regex_namespace::regex_constants::match_default
- | global_regex_namespace::regex_constants::match_not_bol
- | global_regex_namespace::regex_constants::match_not_eol
- | global_regex_namespace::regex_constants::match_not_bow
- | global_regex_namespace::regex_constants::match_not_eow
- | global_regex_namespace::regex_constants::match_any
- | global_regex_namespace::regex_constants::match_not_null
- | global_regex_namespace::regex_constants::match_continuous
- | global_regex_namespace::regex_constants::match_prev_avail
- | global_regex_namespace::regex_constants::format_default
- | global_regex_namespace::regex_constants::format_sed
- | global_regex_namespace::regex_constants::format_no_copy
- | global_regex_namespace::regex_constants::format_first_only;
- ignore_unused_variable_warning(mopts);
-
- BOOST_STATIC_ASSERT((::boost::is_enum::value));
- global_regex_namespace::regex_constants::error_type e1 = global_regex_namespace::regex_constants::error_collate;
- ignore_unused_variable_warning(e1);
- e1 = global_regex_namespace::regex_constants::error_ctype;
- ignore_unused_variable_warning(e1);
- e1 = global_regex_namespace::regex_constants::error_escape;
- ignore_unused_variable_warning(e1);
- e1 = global_regex_namespace::regex_constants::error_backref;
- ignore_unused_variable_warning(e1);
- e1 = global_regex_namespace::regex_constants::error_brack;
- ignore_unused_variable_warning(e1);
- e1 = global_regex_namespace::regex_constants::error_paren;
- ignore_unused_variable_warning(e1);
- e1 = global_regex_namespace::regex_constants::error_brace;
- ignore_unused_variable_warning(e1);
- e1 = global_regex_namespace::regex_constants::error_badbrace;
- ignore_unused_variable_warning(e1);
- e1 = global_regex_namespace::regex_constants::error_range;
- ignore_unused_variable_warning(e1);
- e1 = global_regex_namespace::regex_constants::error_space;
- ignore_unused_variable_warning(e1);
- e1 = global_regex_namespace::regex_constants::error_badrepeat;
- ignore_unused_variable_warning(e1);
- e1 = global_regex_namespace::regex_constants::error_complexity;
- ignore_unused_variable_warning(e1);
- e1 = global_regex_namespace::regex_constants::error_stack;
- ignore_unused_variable_warning(e1);
-
- BOOST_STATIC_ASSERT((::boost::is_base_and_derived::value ));
- const global_regex_namespace::regex_error except(e1);
- e1 = except.code();
-
- typedef typename Regex::value_type regex_value_type;
- function_requires< RegexTraitsConcept > >();
- function_requires< BaseRegexConcept > >();
- }
- void constraints()
- {
- global_constraints();
-
- BOOST_STATIC_ASSERT((::boost::is_same< flag_type, global_regex_namespace::regex_constants::syntax_option_type>::value));
- flag_type opts
- = Regex::icase
- | Regex::nosubs
- | Regex::optimize
- | Regex::collate
- | Regex::ECMAScript
- | Regex::basic
- | Regex::extended
- | Regex::awk
- | Regex::grep
- | Regex::egrep;
- ignore_unused_variable_warning(opts);
-
- function_requires >();
- function_requires >();
-
- // Regex constructors:
- Regex e1(m_pointer);
- ignore_unused_variable_warning(e1);
- Regex e2(m_pointer, m_flags);
- ignore_unused_variable_warning(e2);
- Regex e3(m_pointer, m_size, m_flags);
- ignore_unused_variable_warning(e3);
- Regex e4(in1, in2);
- ignore_unused_variable_warning(e4);
- Regex e5(in1, in2, m_flags);
- ignore_unused_variable_warning(e5);
-
- // assign etc:
- Regex e;
- e = m_pointer;
- e = e1;
- e.assign(e1);
- e.assign(m_pointer);
- e.assign(m_pointer, m_flags);
- e.assign(m_pointer, m_size, m_flags);
- e.assign(in1, in2);
- e.assign(in1, in2, m_flags);
-
- // access:
- const Regex ce;
- typename Regex::size_type i = ce.mark_count();
- ignore_unused_variable_warning(i);
- m_flags = ce.flags();
- e.imbue(ce.getloc());
- e.swap(e1);
-
- global_regex_namespace::swap(e, e1);
-
- // sub_match:
- BOOST_STATIC_ASSERT((::boost::is_base_and_derived, sub_match_type>::value));
- typedef typename sub_match_type::value_type sub_value_type;
- typedef typename sub_match_type::difference_type sub_diff_type;
- typedef typename sub_match_type::iterator sub_iter_type;
- BOOST_STATIC_ASSERT((::boost::is_same::value));
- BOOST_STATIC_ASSERT((::boost::is_same::value));
- bool b = m_sub.matched;
- ignore_unused_variable_warning(b);
- BidiIterator bi = m_sub.first;
- ignore_unused_variable_warning(bi);
- bi = m_sub.second;
- ignore_unused_variable_warning(bi);
- sub_diff_type diff = m_sub.length();
- ignore_unused_variable_warning(diff);
- // match_results tests - some typedefs are not used, however these
- // guarante that they exist (some compilers may warn on non-usage)
- typedef typename match_results_type::value_type mr_value_type;
- typedef typename match_results_type::const_reference mr_const_reference;
- typedef typename match_results_type::reference mr_reference;
- typedef typename match_results_type::const_iterator mr_const_iterator;
- typedef typename match_results_type::iterator mr_iterator;
- typedef typename match_results_type::difference_type mr_difference_type;
- typedef typename match_results_type::size_type mr_size_type;
- typedef typename match_results_type::allocator_type mr_allocator_type;
- typedef typename match_results_type::char_type mr_char_type;
- typedef typename match_results_type::string_type mr_string_type;
-
- match_results_type m1;
- mr_allocator_type at;
- match_results_type m2(at);
- match_results_type m3(m1);
- m1 = m2;
-
- int ival = 0;
-
- mr_size_type mrs = m_cresults.size();
- ignore_unused_variable_warning(mrs);
- mrs = m_cresults.max_size();
- ignore_unused_variable_warning(mrs);
- b = m_cresults.empty();
- ignore_unused_variable_warning(b);
- mr_difference_type mrd = m_cresults.length();
- ignore_unused_variable_warning(mrd);
- mrd = m_cresults.length(ival);
- ignore_unused_variable_warning(mrd);
- mrd = m_cresults.position();
- ignore_unused_variable_warning(mrd);
- mrd = m_cresults.position(mrs);
- ignore_unused_variable_warning(mrd);
-
- mr_const_reference mrcr = m_cresults[ival];
- ignore_unused_variable_warning(mrcr);
- mr_const_reference mrcr2 = m_cresults.prefix();
- ignore_unused_variable_warning(mrcr2);
- mr_const_reference mrcr3 = m_cresults.suffix();
- ignore_unused_variable_warning(mrcr3);
- mr_const_iterator mrci = m_cresults.begin();
- ignore_unused_variable_warning(mrci);
- mrci = m_cresults.end();
- ignore_unused_variable_warning(mrci);
-
- (void) m_cresults.get_allocator();
- m_results.swap(m_results);
- global_regex_namespace::swap(m_results, m_results);
-
- // regex_match:
- b = global_regex_namespace::regex_match(m_in, m_in, m_results, e);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_match(m_in, m_in, m_results, e, m_mft);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_match(m_in, m_in, e);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_match(m_in, m_in, e, m_mft);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_match(m_pointer, m_pmatch, e);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_match(m_pointer, m_pmatch, e, m_mft);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_match(m_pointer, e);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_match(m_pointer, e, m_mft);
- ignore_unused_variable_warning(b);
- // regex_search:
- b = global_regex_namespace::regex_search(m_in, m_in, m_results, e);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_search(m_in, m_in, m_results, e, m_mft);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_search(m_in, m_in, e);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_search(m_in, m_in, e, m_mft);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_search(m_pointer, m_pmatch, e);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_search(m_pointer, m_pmatch, e, m_mft);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_search(m_pointer, e);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_search(m_pointer, e, m_mft);
- ignore_unused_variable_warning(b);
-
- // regex_iterator:
- typedef typename regex_iterator_type::regex_type rit_regex_type;
- typedef typename regex_iterator_type::value_type rit_value_type;
- typedef typename regex_iterator_type::difference_type rit_difference_type;
- typedef typename regex_iterator_type::pointer rit_pointer;
- typedef typename regex_iterator_type::reference rit_reference;
- typedef typename regex_iterator_type::iterator_category rit_iterator_category;
- BOOST_STATIC_ASSERT((::boost::is_same::value));
- BOOST_STATIC_ASSERT((::boost::is_same::value));
- BOOST_STATIC_ASSERT((::boost::is_same::value));
- BOOST_STATIC_ASSERT((::boost::is_same::value));
- BOOST_STATIC_ASSERT((::boost::is_same::value));
- BOOST_STATIC_ASSERT((::boost::is_convertible::value));
- // this takes care of most of the checks needed:
- function_requires >();
- regex_iterator_type iter1(m_in, m_in, e);
- ignore_unused_variable_warning(iter1);
- regex_iterator_type iter2(m_in, m_in, e, m_mft);
- ignore_unused_variable_warning(iter2);
-
- // regex_token_iterator:
- typedef typename regex_token_iterator_type::regex_type rtit_regex_type;
- typedef typename regex_token_iterator_type::value_type rtit_value_type;
- typedef typename regex_token_iterator_type::difference_type rtit_difference_type;
- typedef typename regex_token_iterator_type::pointer rtit_pointer;
- typedef typename regex_token_iterator_type::reference rtit_reference;
- typedef typename regex_token_iterator_type::iterator_category rtit_iterator_category;
- BOOST_STATIC_ASSERT((::boost::is_same::value));
- BOOST_STATIC_ASSERT((::boost::is_same::value));
- BOOST_STATIC_ASSERT((::boost::is_same::value));
- BOOST_STATIC_ASSERT((::boost::is_same::value));
- BOOST_STATIC_ASSERT((::boost::is_same::value));
- BOOST_STATIC_ASSERT((::boost::is_convertible::value));
- // this takes care of most of the checks needed:
- function_requires >();
- regex_token_iterator_type ti1(m_in, m_in, e);
- ignore_unused_variable_warning(ti1);
- regex_token_iterator_type ti2(m_in, m_in, e, 0);
- ignore_unused_variable_warning(ti2);
- regex_token_iterator_type ti3(m_in, m_in, e, 0, m_mft);
- ignore_unused_variable_warning(ti3);
- std::vector subs;
- regex_token_iterator_type ti4(m_in, m_in, e, subs);
- ignore_unused_variable_warning(ti4);
- regex_token_iterator_type ti5(m_in, m_in, e, subs, m_mft);
- ignore_unused_variable_warning(ti5);
- static const int i_array[3] = { 1, 2, 3, };
- regex_token_iterator_type ti6(m_in, m_in, e, i_array);
- ignore_unused_variable_warning(ti6);
- regex_token_iterator_type ti7(m_in, m_in, e, i_array, m_mft);
- ignore_unused_variable_warning(ti7);
- }
-
- pointer_type m_pointer;
- flag_type m_flags;
- std::size_t m_size;
- input_iterator_type in1, in2;
- const sub_match_type m_sub;
- const value_type m_char;
- match_results_type m_results;
- const match_results_type m_cresults;
- OutIterator m_out;
- BidiIterator m_in;
- global_regex_namespace::regex_constants::match_flag_type m_mft;
- global_regex_namespace::match_results<
- pointer_type,
- allocator_architype > >
- m_pmatch;
-
- BaseRegexConcept();
- BaseRegexConcept(const BaseRegexConcept&);
- BaseRegexConcept& operator=(const BaseRegexConcept&);
-};
-
-//
-// RegexConcept:
-// Test every interface in the std:
-//
-template
-struct RegexConcept
-{
- typedef typename Regex::value_type value_type;
- //typedef typename Regex::size_type size_type;
- typedef typename Regex::flag_type flag_type;
- typedef typename Regex::locale_type locale_type;
-
- // derived test types:
- typedef const value_type* pointer_type;
- typedef std::basic_string string_type;
- typedef boost::bidirectional_iterator_archetype BidiIterator;
- typedef global_regex_namespace::sub_match sub_match_type;
- typedef global_regex_namespace::match_results > match_results_type;
- typedef output_iterator_archetype OutIterator;
-
-
- void constraints()
- {
- function_requires >();
- // string based construct:
- Regex e1(m_string);
- ignore_unused_variable_warning(e1);
- Regex e2(m_string, m_flags);
- ignore_unused_variable_warning(e2);
-
- // assign etc:
- Regex e;
- e = m_string;
- e.assign(m_string);
- e.assign(m_string, m_flags);
-
- // sub_match:
- string_type s(m_sub);
- ignore_unused_variable_warning(s);
- s = m_sub.str();
- ignore_unused_variable_warning(s);
- int i = m_sub.compare(m_string);
- ignore_unused_variable_warning(i);
-
- int i2 = m_sub.compare(m_sub);
- ignore_unused_variable_warning(i2);
- i2 = m_sub.compare(m_pointer);
- ignore_unused_variable_warning(i2);
-
- bool b = m_sub == m_sub;
- ignore_unused_variable_warning(b);
- b = m_sub != m_sub;
- ignore_unused_variable_warning(b);
- b = m_sub <= m_sub;
- ignore_unused_variable_warning(b);
- b = m_sub <= m_sub;
- ignore_unused_variable_warning(b);
- b = m_sub > m_sub;
- ignore_unused_variable_warning(b);
- b = m_sub >= m_sub;
- ignore_unused_variable_warning(b);
-
- b = m_sub == m_pointer;
- ignore_unused_variable_warning(b);
- b = m_sub != m_pointer;
- ignore_unused_variable_warning(b);
- b = m_sub <= m_pointer;
- ignore_unused_variable_warning(b);
- b = m_sub <= m_pointer;
- ignore_unused_variable_warning(b);
- b = m_sub > m_pointer;
- ignore_unused_variable_warning(b);
- b = m_sub >= m_pointer;
- ignore_unused_variable_warning(b);
-
- b = m_pointer == m_sub;
- ignore_unused_variable_warning(b);
- b = m_pointer != m_sub;
- ignore_unused_variable_warning(b);
- b = m_pointer <= m_sub;
- ignore_unused_variable_warning(b);
- b = m_pointer <= m_sub;
- ignore_unused_variable_warning(b);
- b = m_pointer > m_sub;
- ignore_unused_variable_warning(b);
- b = m_pointer >= m_sub;
- ignore_unused_variable_warning(b);
-
- b = m_sub == m_char;
- ignore_unused_variable_warning(b);
- b = m_sub != m_char;
- ignore_unused_variable_warning(b);
- b = m_sub <= m_char;
- ignore_unused_variable_warning(b);
- b = m_sub <= m_char;
- ignore_unused_variable_warning(b);
- b = m_sub > m_char;
- ignore_unused_variable_warning(b);
- b = m_sub >= m_char;
- ignore_unused_variable_warning(b);
-
- b = m_char == m_sub;
- ignore_unused_variable_warning(b);
- b = m_char != m_sub;
- ignore_unused_variable_warning(b);
- b = m_char <= m_sub;
- ignore_unused_variable_warning(b);
- b = m_char <= m_sub;
- ignore_unused_variable_warning(b);
- b = m_char > m_sub;
- ignore_unused_variable_warning(b);
- b = m_char >= m_sub;
- ignore_unused_variable_warning(b);
-
- b = m_sub == m_string;
- ignore_unused_variable_warning(b);
- b = m_sub != m_string;
- ignore_unused_variable_warning(b);
- b = m_sub <= m_string;
- ignore_unused_variable_warning(b);
- b = m_sub <= m_string;
- ignore_unused_variable_warning(b);
- b = m_sub > m_string;
- ignore_unused_variable_warning(b);
- b = m_sub >= m_string;
- ignore_unused_variable_warning(b);
-
- b = m_string == m_sub;
- ignore_unused_variable_warning(b);
- b = m_string != m_sub;
- ignore_unused_variable_warning(b);
- b = m_string <= m_sub;
- ignore_unused_variable_warning(b);
- b = m_string <= m_sub;
- ignore_unused_variable_warning(b);
- b = m_string > m_sub;
- ignore_unused_variable_warning(b);
- b = m_string >= m_sub;
- ignore_unused_variable_warning(b);
-
- // match results:
- m_string = m_results.str();
- ignore_unused_variable_warning(m_string);
- m_string = m_results.str(0);
- ignore_unused_variable_warning(m_string);
- m_out = m_cresults.format(m_out, m_string);
- m_out = m_cresults.format(m_out, m_string, m_mft);
- m_string = m_cresults.format(m_string);
- ignore_unused_variable_warning(m_string);
- m_string = m_cresults.format(m_string, m_mft);
- ignore_unused_variable_warning(m_string);
-
- // regex_match:
- b = global_regex_namespace::regex_match(m_string, m_smatch, e);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_match(m_string, m_smatch, e, m_mft);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_match(m_string, e);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_match(m_string, e, m_mft);
- ignore_unused_variable_warning(b);
-
- // regex_search:
- b = global_regex_namespace::regex_search(m_string, m_smatch, e);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_search(m_string, m_smatch, e, m_mft);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_search(m_string, e);
- ignore_unused_variable_warning(b);
- b = global_regex_namespace::regex_search(m_string, e, m_mft);
- ignore_unused_variable_warning(b);
-
- // regex_replace:
- m_out = global_regex_namespace::regex_replace(m_out, m_in, m_in, e, m_string, m_mft);
- m_out = global_regex_namespace::regex_replace(m_out, m_in, m_in, e, m_string);
- m_string = global_regex_namespace::regex_replace(m_string, e, m_string, m_mft);
- ignore_unused_variable_warning(m_string);
- m_string = global_regex_namespace::regex_replace(m_string, e, m_string);
- ignore_unused_variable_warning(m_string);
-
- }
-
- flag_type m_flags;
- string_type m_string;
- const sub_match_type m_sub;
- match_results_type m_results;
- pointer_type m_pointer;
- value_type m_char;
- const match_results_type m_cresults;
- OutIterator m_out;
- BidiIterator m_in;
- global_regex_namespace::regex_constants::match_flag_type m_mft;
- global_regex_namespace::match_results > > m_smatch;
-
- RegexConcept();
- RegexConcept(const RegexConcept&);
- RegexConcept& operator=(const RegexConcept&);
-};
-
-#ifndef BOOST_REGEX_TEST_STD
-
-template
-struct functor1
-{
- typedef typename M::char_type char_type;
- const char_type* operator()(const M&)const
- {
- static const char_type c = static_cast(0);
- return &c;
- }
-};
-template
-struct functor1b
-{
- typedef typename M::char_type char_type;
- std::vector operator()(const M&)const
- {
- static const std::vector c;
- return c;
- }
-};
-template
-struct functor2
-{
- template
- O operator()(const M& /*m*/, O i)const
- {
- return i;
- }
-};
-template
-struct functor3
-{
- template
- O operator()(const M& /*m*/, O i, regex_constants::match_flag_type)const
- {
- return i;
- }
-};
-
-//
-// BoostRegexConcept:
-// Test every interface in the Boost implementation:
-//
-template
-struct BoostRegexConcept
-{
- typedef typename Regex::value_type value_type;
- typedef typename Regex::size_type size_type;
- typedef typename Regex::flag_type flag_type;
- typedef typename Regex::locale_type locale_type;
-
- // derived test types:
- typedef const value_type* pointer_type;
- typedef std::basic_string string_type;
- typedef typename Regex::const_iterator const_iterator;
- typedef bidirectional_iterator_archetype BidiIterator;
- typedef output_iterator_archetype OutputIterator;
- typedef global_regex_namespace::sub_match sub_match_type;
- typedef global_regex_namespace::match_results > match_results_type;
- typedef global_regex_namespace::match_results match_results_default_type;
-
- void constraints()
- {
- global_regex_namespace::regex_constants::match_flag_type mopts
- = global_regex_namespace::regex_constants::match_default
- | global_regex_namespace::regex_constants::match_not_bol
- | global_regex_namespace::regex_constants::match_not_eol
- | global_regex_namespace::regex_constants::match_not_bow
- | global_regex_namespace::regex_constants::match_not_eow
- | global_regex_namespace::regex_constants::match_any
- | global_regex_namespace::regex_constants::match_not_null
- | global_regex_namespace::regex_constants::match_continuous
- | global_regex_namespace::regex_constants::match_partial
- | global_regex_namespace::regex_constants::match_prev_avail
- | global_regex_namespace::regex_constants::format_default
- | global_regex_namespace::regex_constants::format_sed
- | global_regex_namespace::regex_constants::format_perl
- | global_regex_namespace::regex_constants::format_no_copy
- | global_regex_namespace::regex_constants::format_first_only;
-
- (void)mopts;
-
- function_requires >();
- const global_regex_namespace::regex_error except(global_regex_namespace::regex_constants::error_collate);
- std::ptrdiff_t pt = except.position();
- ignore_unused_variable_warning(pt);
- const Regex ce, ce2;
-#ifndef BOOST_NO_STD_LOCALE
- m_stream << ce;
-#endif
- unsigned i = ce.error_code();
- ignore_unused_variable_warning(i);
- pointer_type p = ce.expression();
- ignore_unused_variable_warning(p);
- int i2 = ce.compare(ce2);
- ignore_unused_variable_warning(i2);
- bool b = ce == ce2;
- ignore_unused_variable_warning(b);
- b = ce.empty();
- ignore_unused_variable_warning(b);
- b = ce != ce2;
- ignore_unused_variable_warning(b);
- b = ce < ce2;
- ignore_unused_variable_warning(b);
- b = ce > ce2;
- ignore_unused_variable_warning(b);
- b = ce <= ce2;
- ignore_unused_variable_warning(b);
- b = ce >= ce2;
- ignore_unused_variable_warning(b);
- i = ce.status();
- ignore_unused_variable_warning(i);
- size_type s = ce.max_size();
- ignore_unused_variable_warning(s);
- s = ce.size();
- ignore_unused_variable_warning(s);
- const_iterator pi = ce.begin();
- ignore_unused_variable_warning(pi);
- pi = ce.end();
- ignore_unused_variable_warning(pi);
- string_type s2 = ce.str();
- ignore_unused_variable_warning(s2);
-
- m_string = m_sub + m_sub;
- ignore_unused_variable_warning(m_string);
- m_string = m_sub + m_pointer;
- ignore_unused_variable_warning(m_string);
- m_string = m_pointer + m_sub;
- ignore_unused_variable_warning(m_string);
- m_string = m_sub + m_string;
- ignore_unused_variable_warning(m_string);
- m_string = m_string + m_sub;
- ignore_unused_variable_warning(m_string);
- m_string = m_sub + m_char;
- ignore_unused_variable_warning(m_string);
- m_string = m_char + m_sub;
- ignore_unused_variable_warning(m_string);
-
- // Named sub-expressions:
- m_sub = m_cresults[&m_char];
- ignore_unused_variable_warning(m_sub);
- m_sub = m_cresults[m_string];
- ignore_unused_variable_warning(m_sub);
- m_sub = m_cresults[""];
- ignore_unused_variable_warning(m_sub);
- m_sub = m_cresults[std::string("")];
- ignore_unused_variable_warning(m_sub);
- m_string = m_cresults.str(&m_char);
- ignore_unused_variable_warning(m_string);
- m_string = m_cresults.str(m_string);
- ignore_unused_variable_warning(m_string);
- m_string = m_cresults.str("");
- ignore_unused_variable_warning(m_string);
- m_string = m_cresults.str(std::string(""));
- ignore_unused_variable_warning(m_string);
-
- typename match_results_type::difference_type diff;
- diff = m_cresults.length(&m_char);
- ignore_unused_variable_warning(diff);
- diff = m_cresults.length(m_string);
- ignore_unused_variable_warning(diff);
- diff = m_cresults.length("");
- ignore_unused_variable_warning(diff);
- diff = m_cresults.length(std::string(""));
- ignore_unused_variable_warning(diff);
- diff = m_cresults.position(&m_char);
- ignore_unused_variable_warning(diff);
- diff = m_cresults.position(m_string);
- ignore_unused_variable_warning(diff);
- diff = m_cresults.position("");
- ignore_unused_variable_warning(diff);
- diff = m_cresults.position(std::string(""));
- ignore_unused_variable_warning(diff);
-
-#ifndef BOOST_NO_STD_LOCALE
- m_stream << m_sub;
- m_stream << m_cresults;
-#endif
- //
- // Extended formatting with a functor:
- //
- regex_constants::match_flag_type f = regex_constants::match_default;
- OutputIterator out = static_object::get();
-
- functor3 func3;
- functor2 func2;
- functor1 func1;
-
- functor3 func3b;
- functor2 func2b;
- functor1 func1b;
-
- out = regex_format(out, m_cresults, func3b, f);
- out = regex_format(out, m_cresults, func3b);
- out = regex_format(out, m_cresults, func2b, f);
- out = regex_format(out, m_cresults, func2b);
- out = regex_format(out, m_cresults, func1b, f);
- out = regex_format(out, m_cresults, func1b);
- out = regex_format(out, m_cresults, RW_NS::ref(func3b), f);
- out = regex_format(out, m_cresults, RW_NS::ref(func3b));
- out = regex_format(out, m_cresults, RW_NS::ref(func2b), f);
- out = regex_format(out, m_cresults, RW_NS::ref(func2b));
- out = regex_format(out, m_cresults, RW_NS::ref(func1b), f);
- out = regex_format(out, m_cresults, RW_NS::ref(func1b));
- out = regex_format(out, m_cresults, RW_NS::cref(func3b), f);
- out = regex_format(out, m_cresults, RW_NS::cref(func3b));
- out = regex_format(out, m_cresults, RW_NS::cref(func2b), f);
- out = regex_format(out, m_cresults, RW_NS::cref(func2b));
- out = regex_format(out, m_cresults, RW_NS::cref(func1b), f);
- out = regex_format(out, m_cresults, RW_NS::cref(func1b));
- m_string += regex_format(m_cresults, func3b, f);
- m_string += regex_format(m_cresults, func3b);
- m_string += regex_format(m_cresults, func2b, f);
- m_string += regex_format(m_cresults, func2b);
- m_string += regex_format(m_cresults, func1b, f);
- m_string += regex_format(m_cresults, func1b);
- m_string += regex_format(m_cresults, RW_NS::ref(func3b), f);
- m_string += regex_format(m_cresults, RW_NS::ref(func3b));
- m_string += regex_format(m_cresults, RW_NS::ref(func2b), f);
- m_string += regex_format(m_cresults, RW_NS::ref(func2b));
- m_string += regex_format(m_cresults, RW_NS::ref(func1b), f);
- m_string += regex_format(m_cresults, RW_NS::ref(func1b));
- m_string += regex_format(m_cresults, RW_NS::cref(func3b), f);
- m_string += regex_format(m_cresults, RW_NS::cref(func3b));
- m_string += regex_format(m_cresults, RW_NS::cref(func2b), f);
- m_string += regex_format(m_cresults, RW_NS::cref(func2b));
- m_string += regex_format(m_cresults, RW_NS::cref(func1b), f);
- m_string += regex_format(m_cresults, RW_NS::cref(func1b));
-
- out = m_cresults.format(out, func3b, f);
- out = m_cresults.format(out, func3b);
- out = m_cresults.format(out, func2b, f);
- out = m_cresults.format(out, func2b);
- out = m_cresults.format(out, func1b, f);
- out = m_cresults.format(out, func1b);
- out = m_cresults.format(out, RW_NS::ref(func3b), f);
- out = m_cresults.format(out, RW_NS::ref(func3b));
- out = m_cresults.format(out, RW_NS::ref(func2b), f);
- out = m_cresults.format(out, RW_NS::ref(func2b));
- out = m_cresults.format(out, RW_NS::ref(func1b), f);
- out = m_cresults.format(out, RW_NS::ref(func1b));
- out = m_cresults.format(out, RW_NS::cref(func3b), f);
- out = m_cresults.format(out, RW_NS::cref(func3b));
- out = m_cresults.format(out, RW_NS::cref(func2b), f);
- out = m_cresults.format(out, RW_NS::cref(func2b));
- out = m_cresults.format(out, RW_NS::cref(func1b), f);
- out = m_cresults.format(out, RW_NS::cref(func1b));
-
- m_string += m_cresults.format(func3b, f);
- m_string += m_cresults.format(func3b);
- m_string += m_cresults.format(func2b, f);
- m_string += m_cresults.format(func2b);
- m_string += m_cresults.format(func1b, f);
- m_string += m_cresults.format(func1b);
- m_string += m_cresults.format(RW_NS::ref(func3b), f);
- m_string += m_cresults.format(RW_NS::ref(func3b));
- m_string += m_cresults.format(RW_NS::ref(func2b), f);
- m_string += m_cresults.format(RW_NS::ref(func2b));
- m_string += m_cresults.format(RW_NS::ref(func1b), f);
- m_string += m_cresults.format(RW_NS::ref(func1b));
- m_string += m_cresults.format(RW_NS::cref(func3b), f);
- m_string += m_cresults.format(RW_NS::cref(func3b));
- m_string += m_cresults.format(RW_NS::cref(func2b), f);
- m_string += m_cresults.format(RW_NS::cref(func2b));
- m_string += m_cresults.format(RW_NS::cref(func1b), f);
- m_string += m_cresults.format(RW_NS::cref(func1b));
-
- out = regex_replace(out, m_in, m_in, ce, func3, f);
- out = regex_replace(out, m_in, m_in, ce, func3);
- out = regex_replace(out, m_in, m_in, ce, func2, f);
- out = regex_replace(out, m_in, m_in, ce, func2);
- out = regex_replace(out, m_in, m_in, ce, func1, f);
- out = regex_replace(out, m_in, m_in, ce, func1);
- out = regex_replace(out, m_in, m_in, ce, RW_NS::ref(func3), f);
- out = regex_replace(out, m_in, m_in, ce, RW_NS::ref(func3));
- out = regex_replace(out, m_in, m_in, ce, RW_NS::ref(func2), f);
- out = regex_replace(out, m_in, m_in, ce, RW_NS::ref(func2));
- out = regex_replace(out, m_in, m_in, ce, RW_NS::ref(func1), f);
- out = regex_replace(out, m_in, m_in, ce, RW_NS::ref(func1));
- out = regex_replace(out, m_in, m_in, ce, RW_NS::cref(func3), f);
- out = regex_replace(out, m_in, m_in, ce, RW_NS::cref(func3));
- out = regex_replace(out, m_in, m_in, ce, RW_NS::cref(func2), f);
- out = regex_replace(out, m_in, m_in, ce, RW_NS::cref(func2));
- out = regex_replace(out, m_in, m_in, ce, RW_NS::cref(func1), f);
- out = regex_replace(out, m_in, m_in, ce, RW_NS::cref(func1));
-
- functor3 > func3s;
- functor2 > func2s;
- functor1 > func1s;
- m_string += regex_replace(m_string, ce, func3s, f);
- m_string += regex_replace(m_string, ce, func3s);
- m_string += regex_replace(m_string, ce, func2s, f);
- m_string += regex_replace(m_string, ce, func2s);
- m_string += regex_replace(m_string, ce, func1s, f);
- m_string += regex_replace(m_string, ce, func1s);
- m_string += regex_replace(m_string, ce, RW_NS::ref(func3s), f);
- m_string += regex_replace(m_string, ce, RW_NS::ref(func3s));
- m_string += regex_replace(m_string, ce, RW_NS::ref(func2s), f);
- m_string += regex_replace(m_string, ce, RW_NS::ref(func2s));
- m_string += regex_replace(m_string, ce, RW_NS::ref(func1s), f);
- m_string += regex_replace(m_string, ce, RW_NS::ref(func1s));
- m_string += regex_replace(m_string, ce, RW_NS::cref(func3s), f);
- m_string += regex_replace(m_string, ce, RW_NS::cref(func3s));
- m_string += regex_replace(m_string, ce, RW_NS::cref(func2s), f);
- m_string += regex_replace(m_string, ce, RW_NS::cref(func2s));
- m_string += regex_replace(m_string, ce, RW_NS::cref(func1s), f);
- m_string += regex_replace(m_string, ce, RW_NS::cref(func1s));
- }
-
- std::basic_ostream m_stream;
- sub_match_type m_sub;
- pointer_type m_pointer;
- string_type m_string;
- const value_type m_char;
- match_results_type m_results;
- const match_results_type m_cresults;
- BidiIterator m_in;
-
- BoostRegexConcept();
- BoostRegexConcept(const BoostRegexConcept&);
- BoostRegexConcept& operator=(const BoostRegexConcept&);
-};
-
-#endif // BOOST_REGEX_TEST_STD
-
-}
-
-#endif
diff --git a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/config.hpp b/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/config.hpp
deleted file mode 100644
index bed485fa..00000000
--- a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/config.hpp
+++ /dev/null
@@ -1,480 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are 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)
- *
- */
-
- /*
- * LOCATION: see http://www.boost.org for most recent version.
- * FILE config.hpp
- * VERSION see
- * DESCRIPTION: regex extended config setup.
- */
-
-#ifndef BOOST_REGEX_CONFIG_HPP
-#define BOOST_REGEX_CONFIG_HPP
-
-#if !((__cplusplus >= 201103L) || (defined(_MSC_VER) && (_MSC_VER >= 1600)) || defined(BOOST_REGEX_CXX03))
-# define BOOST_REGEX_CXX03
-#endif
-
-#if defined(BOOST_REGEX_RECURSIVE) && !defined(BOOST_REGEX_CXX03)
-# define BOOST_REGEX_CXX03
-#endif
-
-#if defined(__has_include)
-#if !defined(BOOST_REGEX_STANDALONE) && !__has_include()
-#define BOOST_REGEX_STANDALONE
-#endif
-#endif
-
-/*
- * Borland C++ Fix/error check
- * this has to go *before* we include any std lib headers:
- */
-#if defined(__BORLANDC__) && !defined(__clang__)
-# include
-#endif
-#ifndef BOOST_REGEX_STANDALONE
-#include
-#endif
-
-/*************************************************************************
-*
-* Asserts:
-*
-*************************************************************************/
-
-#ifdef BOOST_REGEX_STANDALONE
-#include
-# define BOOST_REGEX_ASSERT(x) assert(x)
-#else
-#include
-# define BOOST_REGEX_ASSERT(x) BOOST_ASSERT(x)
-#endif
-
-/*****************************************************************************
- *
- * Include all the headers we need here:
- *
- ****************************************************************************/
-
-#ifdef __cplusplus
-
-# ifndef BOOST_REGEX_USER_CONFIG
-# define BOOST_REGEX_USER_CONFIG
-# endif
-
-# include BOOST_REGEX_USER_CONFIG
-
-#ifndef BOOST_REGEX_STANDALONE
-# include
-# include
-#endif
-
-#else
- /*
- * C build,
- * don't include because that may
- * do C++ specific things in future...
- */
-# include
-# include
-# ifdef _MSC_VER
-# define BOOST_MSVC _MSC_VER
-# endif
-#endif
-
-
-/****************************************************************************
-*
-* Legacy support:
-*
-*******************************************************************************/
-
-#if defined(BOOST_NO_STD_LOCALE) || defined(BOOST_NO_CXX11_HDR_MUTEX) || defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) \
- || defined(BOOST_NO_CXX11_HDR_ATOMIC) || defined(BOOST_NO_CXX11_ALLOCATOR) || defined(BOOST_NO_CXX11_SMART_PTR) \
- || defined(BOOST_NO_CXX11_STATIC_ASSERT) || defined(BOOST_NO_NOEXCEPT)
-#ifndef BOOST_REGEX_CXX03
-# define BOOST_REGEX_CXX03
-#endif
-#endif
-
-/*****************************************************************************
- *
- * Boilerplate regex config options:
- *
- ****************************************************************************/
-
-/* Obsolete macro, use BOOST_VERSION instead: */
-#define BOOST_RE_VERSION 500
-
-/* fix: */
-#if defined(_UNICODE) && !defined(UNICODE)
-#define UNICODE
-#endif
-
-#define BOOST_REGEX_JOIN(X, Y) BOOST_REGEX_DO_JOIN(X, Y)
-#define BOOST_REGEX_DO_JOIN(X, Y) BOOST_REGEX_DO_JOIN2(X,Y)
-#define BOOST_REGEX_DO_JOIN2(X, Y) X##Y
-
-#ifdef BOOST_FALLTHROUGH
-# define BOOST_REGEX_FALLTHROUGH BOOST_FALLTHROUGH
-#else
-
-#if defined(__clang__) && (__cplusplus >= 201103L) && defined(__has_warning)
-# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
-# define BOOST_REGEX_FALLTHROUGH [[clang::fallthrough]]
-# endif
-#endif
-#if !defined(BOOST_REGEX_FALLTHROUGH) && defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1800) && (__cplusplus >= 201703)
-# define BOOST_REGEX_FALLTHROUGH [[fallthrough]]
-#endif
-#if !defined(BOOST_REGEX_FALLTHROUGH) && defined(__GNUC__) && (__GNUC__ >= 7)
-# define BOOST_REGEX_FALLTHROUGH __attribute__((fallthrough))
-#endif
-
-#if !defined(BOOST_REGEX_FALLTHROUGH)
-# define BOOST_REGEX_FALLTHROUGH
-#endif
-#endif
-
-#ifdef BOOST_NORETURN
-# define BOOST_REGEX_NORETURN BOOST_NORETURN
-#else
-# define BOOST_REGEX_NORETURN
-#endif
-
-
-/*
-* Define a macro for the namespace that details are placed in, this includes the Boost
-* version number to avoid mismatched header and library versions:
-*/
-#define BOOST_REGEX_DETAIL_NS BOOST_REGEX_JOIN(re_detail_, BOOST_RE_VERSION)
-
-/*
- * Fix for gcc prior to 3.4: std::ctype doesn't allow
- * masks to be combined, for example:
- * std::use_facet >.is(std::ctype_base::lower|std::ctype_base::upper, L'a');
- * returns *false*.
- */
-#if defined(__GLIBCPP__) && defined(BOOST_REGEX_CXX03)
-# define BOOST_REGEX_BUGGY_CTYPE_FACET
-#endif
-
-/*
- * If there isn't good enough wide character support then there will
- * be no wide character regular expressions:
- */
-#if (defined(BOOST_NO_CWCHAR) || defined(BOOST_NO_CWCTYPE) || defined(BOOST_NO_STD_WSTRING))
-# if !defined(BOOST_NO_WREGEX)
-# define BOOST_NO_WREGEX
-# endif
-#else
-# if defined(__sgi) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
- /* STLPort on IRIX is misconfigured: does not compile
- * as a temporary fix include instead and prevent inclusion
- * of STLPort version of */
-# include
-# define __STLPORT_CWCTYPE
-# define _STLP_CWCTYPE
-# endif
-
-#if defined(__cplusplus) && defined(BOOST_REGEX_CXX03)
-# include
-#endif
-
-#endif
-
-/*
- * If Win32 support has been disabled for boost in general, then
- * it is for regex in particular:
- */
-#if defined(BOOST_DISABLE_WIN32) && !defined(BOOST_REGEX_NO_W32)
-# define BOOST_REGEX_NO_W32
-#endif
-
-/* disable our own file-iterators and mapfiles if we can't
- * support them: */
-#if defined(_WIN32)
-# if defined(BOOST_REGEX_NO_W32) || BOOST_PLAT_WINDOWS_RUNTIME
-# define BOOST_REGEX_NO_FILEITER
-# endif
-#else /* defined(_WIN32) */
-# if !defined(BOOST_HAS_DIRENT_H)
-# define BOOST_REGEX_NO_FILEITER
-# endif
-#endif
-
-/* backwards compatibitity: */
-#if defined(BOOST_RE_NO_LIB)
-# define BOOST_REGEX_NO_LIB
-#endif
-
-#if defined(__GNUC__) && !defined(_MSC_VER) && (defined(_WIN32) || defined(__CYGWIN__))
-/* gcc on win32 has problems if you include
- (sporadically generates bad code). */
-# define BOOST_REGEX_NO_W32
-#endif
-#if defined(__COMO__) && !defined(BOOST_REGEX_NO_W32) && !defined(_MSC_EXTENSIONS)
-# define BOOST_REGEX_NO_W32
-#endif
-
-#ifdef BOOST_REGEX_STANDALONE
-# if defined(_MSC_VER) && !defined(__clang__) && !defined(__GNUC__)
-# define BOOST_REGEX_MSVC _MSC_VER
-#endif
-#elif defined(BOOST_MSVC)
-# define BOOST_REGEX_MSVC BOOST_MSVC
-#endif
-
-
-/*****************************************************************************
- *
- * Set up dll import/export options:
- *
- ****************************************************************************/
-
-#if (defined(BOOST_REGEX_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)) && !defined(BOOST_REGEX_STATIC_LINK) && defined(BOOST_SYMBOL_IMPORT)
-# if defined(BOOST_REGEX_SOURCE)
-# define BOOST_REGEX_BUILD_DLL
-# define BOOST_REGEX_DECL BOOST_SYMBOL_EXPORT
-# else
-# define BOOST_REGEX_DECL BOOST_SYMBOL_IMPORT
-# endif
-#else
-# define BOOST_REGEX_DECL
-#endif
-
-#ifdef BOOST_REGEX_CXX03
-#if !defined(BOOST_REGEX_NO_LIB) && !defined(BOOST_REGEX_SOURCE) && !defined(BOOST_ALL_NO_LIB) && defined(__cplusplus)
-# define BOOST_LIB_NAME boost_regex
-# if defined(BOOST_REGEX_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)
-# define BOOST_DYN_LINK
-# endif
-# ifdef BOOST_REGEX_DIAG
-# define BOOST_LIB_DIAGNOSTIC
-# endif
-# include
-#endif
-#endif
-
-/*****************************************************************************
- *
- * Set up function call type:
- *
- ****************************************************************************/
-
-#if defined(_MSC_VER) && defined(_MSC_EXTENSIONS)
-#if defined(_DEBUG) || defined(__MSVC_RUNTIME_CHECKS) || defined(_MANAGED) || defined(BOOST_REGEX_NO_FASTCALL)
-# define BOOST_REGEX_CALL __cdecl
-#else
-# define BOOST_REGEX_CALL __fastcall
-#endif
-# define BOOST_REGEX_CCALL __cdecl
-#endif
-
-#if defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32)
-#if defined(__clang__)
-# define BOOST_REGEX_CALL __cdecl
-# define BOOST_REGEX_CCALL __cdecl
-#else
-# define BOOST_REGEX_CALL __fastcall
-# define BOOST_REGEX_CCALL __stdcall
-#endif
-#endif
-
-#ifndef BOOST_REGEX_CALL
-# define BOOST_REGEX_CALL
-#endif
-#ifndef BOOST_REGEX_CCALL
-#define BOOST_REGEX_CCALL
-#endif
-
-/*****************************************************************************
- *
- * Set up localisation model:
- *
- ****************************************************************************/
-
-/* backwards compatibility: */
-#ifdef BOOST_RE_LOCALE_C
-# define BOOST_REGEX_USE_C_LOCALE
-#endif
-
-#ifdef BOOST_RE_LOCALE_CPP
-# define BOOST_REGEX_USE_CPP_LOCALE
-#endif
-
-#if defined(__CYGWIN__)
-# define BOOST_REGEX_USE_C_LOCALE
-#endif
-
-/* use C++ locale when targeting windows store */
-#if BOOST_PLAT_WINDOWS_RUNTIME
-# define BOOST_REGEX_USE_CPP_LOCALE
-# define BOOST_REGEX_NO_WIN32_LOCALE
-#endif
-
-/* Win32 defaults to native Win32 locale: */
-#if defined(_WIN32) && \
- !defined(BOOST_REGEX_USE_WIN32_LOCALE) && \
- !defined(BOOST_REGEX_USE_C_LOCALE) && \
- !defined(BOOST_REGEX_USE_CPP_LOCALE) && \
- !defined(BOOST_REGEX_NO_W32) && \
- !defined(BOOST_REGEX_NO_WIN32_LOCALE)
-# define BOOST_REGEX_USE_WIN32_LOCALE
-#endif
-/* otherwise use C++ locale if supported: */
-#if !defined(BOOST_REGEX_USE_WIN32_LOCALE) && !defined(BOOST_REGEX_USE_C_LOCALE) && !defined(BOOST_REGEX_USE_CPP_LOCALE) && !defined(BOOST_NO_STD_LOCALE)
-# define BOOST_REGEX_USE_CPP_LOCALE
-#endif
-/* otherwise use C locale: */
-#if !defined(BOOST_REGEX_USE_WIN32_LOCALE) && !defined(BOOST_REGEX_USE_C_LOCALE) && !defined(BOOST_REGEX_USE_CPP_LOCALE)
-# define BOOST_REGEX_USE_C_LOCALE
-#endif
-
-#ifndef BOOST_REGEX_MAX_STATE_COUNT
-# define BOOST_REGEX_MAX_STATE_COUNT 100000000
-#endif
-
-
-/*****************************************************************************
- *
- * Error Handling for exception free compilers:
- *
- ****************************************************************************/
-
-#ifdef BOOST_NO_EXCEPTIONS
-/*
- * If there are no exceptions then we must report critical-errors
- * the only way we know how; by terminating.
- */
-#include
-#include
-#include
-
-# define BOOST_REGEX_NOEH_ASSERT(x)\
-if(0 == (x))\
-{\
- std::string s("Error: critical regex++ failure in: ");\
- s.append(#x);\
- std::runtime_error e(s);\
- boost::throw_exception(e);\
-}
-#else
-/*
- * With exceptions then error handling is taken care of and
- * there is no need for these checks:
- */
-# define BOOST_REGEX_NOEH_ASSERT(x)
-#endif
-
-
-/*****************************************************************************
- *
- * Stack protection under MS Windows:
- *
- ****************************************************************************/
-
-#if !defined(BOOST_REGEX_NO_W32) && !defined(BOOST_REGEX_V3)
-# if(defined(_WIN32) || defined(_WIN64) || defined(_WINCE)) \
- && !(defined(__GNUC__) || defined(__BORLANDC__) && defined(__clang__)) \
- && !(defined(__BORLANDC__) && (__BORLANDC__ >= 0x600)) \
- && !(defined(__MWERKS__) && (__MWERKS__ <= 0x3003))
-# define BOOST_REGEX_HAS_MS_STACK_GUARD
-# endif
-#elif defined(BOOST_REGEX_HAS_MS_STACK_GUARD)
-# undef BOOST_REGEX_HAS_MS_STACK_GUARD
-#endif
-
-#if defined(__cplusplus) && defined(BOOST_REGEX_HAS_MS_STACK_GUARD)
-
-namespace boost{
-namespace BOOST_REGEX_DETAIL_NS{
-
-BOOST_REGEX_DECL void BOOST_REGEX_CALL reset_stack_guard_page();
-
-}
-}
-
-#endif
-
-
-/*****************************************************************************
- *
- * Algorithm selection and configuration.
- * These options are now obsolete for C++11 and later (regex v5).
- *
- ****************************************************************************/
-
-#if !defined(BOOST_REGEX_RECURSIVE) && !defined(BOOST_REGEX_NON_RECURSIVE)
-# if defined(BOOST_REGEX_HAS_MS_STACK_GUARD) && !defined(_STLP_DEBUG) && !defined(__STL_DEBUG) && !(defined(_MSC_VER) && (_MSC_VER >= 1400)) && defined(BOOST_REGEX_CXX03)
-# define BOOST_REGEX_RECURSIVE
-# else
-# define BOOST_REGEX_NON_RECURSIVE
-# endif
-#endif
-
-#ifdef BOOST_REGEX_NON_RECURSIVE
-# ifdef BOOST_REGEX_RECURSIVE
-# error "Can't set both BOOST_REGEX_RECURSIVE and BOOST_REGEX_NON_RECURSIVE"
-# endif
-# ifndef BOOST_REGEX_BLOCKSIZE
-# define BOOST_REGEX_BLOCKSIZE 4096
-# endif
-# if BOOST_REGEX_BLOCKSIZE < 512
-# error "BOOST_REGEX_BLOCKSIZE must be at least 512"
-# endif
-# ifndef BOOST_REGEX_MAX_BLOCKS
-# define BOOST_REGEX_MAX_BLOCKS 1024
-# endif
-# ifdef BOOST_REGEX_HAS_MS_STACK_GUARD
-# undef BOOST_REGEX_HAS_MS_STACK_GUARD
-# endif
-# ifndef BOOST_REGEX_MAX_CACHE_BLOCKS
-# define BOOST_REGEX_MAX_CACHE_BLOCKS 16
-# endif
-#endif
-
-
-/*****************************************************************************
- *
- * Diagnostics:
- *
- ****************************************************************************/
-
-#ifdef BOOST_REGEX_CONFIG_INFO
-BOOST_REGEX_DECL void BOOST_REGEX_CALL print_regex_library_info();
-#endif
-
-#if defined(BOOST_REGEX_DIAG)
-# pragma message ("BOOST_REGEX_DECL" BOOST_STRINGIZE(=BOOST_REGEX_DECL))
-# pragma message ("BOOST_REGEX_CALL" BOOST_STRINGIZE(=BOOST_REGEX_CALL))
-# pragma message ("BOOST_REGEX_CCALL" BOOST_STRINGIZE(=BOOST_REGEX_CCALL))
-#ifdef BOOST_REGEX_USE_C_LOCALE
-# pragma message ("Using C locale in regex traits class")
-#elif BOOST_REGEX_USE_CPP_LOCALE
-# pragma message ("Using C++ locale in regex traits class")
-#else
-# pragma message ("Using Win32 locale in regex traits class")
-#endif
-#if defined(BOOST_REGEX_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)
-# pragma message ("Dynamic linking enabled")
-#endif
-#if defined(BOOST_REGEX_NO_LIB) || defined(BOOST_ALL_NO_LIB)
-# pragma message ("Auto-linking disabled")
-#endif
-#ifdef BOOST_REGEX_NO_EXTERNAL_TEMPLATES
-# pragma message ("Extern templates disabled")
-#endif
-
-#endif
-
-#endif
-
diff --git a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/config/borland.hpp b/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/config/borland.hpp
deleted file mode 100644
index 981113e5..00000000
--- a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/config/borland.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are 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)
- *
- */
-
- /*
- * LOCATION: see http://www.boost.org for most recent version.
- * FILE boost/regex/config/borland.hpp
- * VERSION see
- * DESCRIPTION: regex borland-specific config setup.
- */
-
-
-#if defined(__BORLANDC__) && !defined(__clang__)
-# if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551)
- // problems with std::basic_string and dll RTL:
-# if defined(_RTLDLL) && defined(_RWSTD_COMPILE_INSTANTIATE)
-# ifdef BOOST_REGEX_BUILD_DLL
-# error _RWSTD_COMPILE_INSTANTIATE must not be defined when building regex++ as a DLL
-# else
-# pragma message("Defining _RWSTD_COMPILE_INSTANTIATE when linking to the DLL version of the RTL may produce memory corruption problems in std::basic_string, as a result of separate versions of basic_string's static data in the RTL and you're exe/dll: be warned!!")
-# endif
-# endif
-# ifndef _RTLDLL
- // this is harmless for a staic link:
-# define _RWSTD_COMPILE_INSTANTIATE
-# endif
- // external templates cause problems for some reason:
-# define BOOST_REGEX_NO_EXTERNAL_TEMPLATES
-# endif
-# if (__BORLANDC__ <= 0x540) && !defined(BOOST_REGEX_NO_LIB) && !defined(_NO_VCL)
- // C++ Builder 4 and earlier, we can't tell whether we should be using
- // the VCL runtime or not, do a static link instead:
-# define BOOST_REGEX_STATIC_LINK
-# endif
- //
- // VCL support:
- // if we're building a console app then there can't be any VCL (can there?)
-# if !defined(__CONSOLE__) && !defined(_NO_VCL)
-# define BOOST_REGEX_USE_VCL
-# endif
- //
- // if this isn't Win32 then don't automatically select link
- // libraries:
- //
-# ifndef _Windows
-# ifndef BOOST_REGEX_NO_LIB
-# define BOOST_REGEX_NO_LIB
-# endif
-# ifndef BOOST_REGEX_STATIC_LINK
-# define BOOST_REGEX_STATIC_LINK
-# endif
-# endif
-
-#if __BORLANDC__ < 0x600
-//
-// string workarounds:
-//
-#include
-#undef strcmp
-#undef strcpy
-#endif
-
-#endif
-
-
diff --git a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/config/cwchar.hpp b/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/config/cwchar.hpp
deleted file mode 100644
index a55089d0..00000000
--- a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/config/cwchar.hpp
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are 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)
- *
- */
-
- /*
- * LOCATION: see http://www.boost.org for most recent version.
- * FILE boost/regex/config/cwchar.hpp
- * VERSION see
- * DESCRIPTION: regex wide character string fixes.
- */
-
-#ifndef BOOST_REGEX_CONFIG_CWCHAR_HPP
-#define BOOST_REGEX_CONFIG_CWCHAR_HPP
-
-#include
-#include
-#include
-
-#if defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
-// apparently this is required for the RW STL on Linux:
-#undef iswalnum
-#undef iswalpha
-#undef iswblank
-#undef iswcntrl
-#undef iswdigit
-#undef iswgraph
-#undef iswlower
-#undef iswprint
-#undef iswprint
-#undef iswpunct
-#undef iswspace
-#undef iswupper
-#undef iswxdigit
-#undef iswctype
-#undef towlower
-#undef towupper
-#undef towctrans
-#undef wctrans
-#undef wctype
-#endif
-
-namespace std{
-
-#ifndef BOOST_NO_STDC_NAMESPACE
-extern "C"{
-#endif
-
-#ifdef iswalnum
-inline int (iswalnum)(wint_t i)
-{ return iswalnum(i); }
-#undef iswalnum
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::iswalnum;
-#endif
-
-#ifdef iswalpha
-inline int (iswalpha)(wint_t i)
-{ return iswalpha(i); }
-#undef iswalpha
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::iswalpha;
-#endif
-
-#ifdef iswcntrl
-inline int (iswcntrl)(wint_t i)
-{ return iswcntrl(i); }
-#undef iswcntrl
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::iswcntrl;
-#endif
-
-#ifdef iswdigit
-inline int (iswdigit)(wint_t i)
-{ return iswdigit(i); }
-#undef iswdigit
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::iswdigit;
-#endif
-
-#ifdef iswgraph
-inline int (iswgraph)(wint_t i)
-{ return iswgraph(i); }
-#undef iswgraph
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::iswgraph;
-#endif
-
-#ifdef iswlower
-inline int (iswlower)(wint_t i)
-{ return iswlower(i); }
-#undef iswlower
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::iswlower;
-#endif
-
-#ifdef iswprint
-inline int (iswprint)(wint_t i)
-{ return iswprint(i); }
-#undef iswprint
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::iswprint;
-#endif
-
-#ifdef iswpunct
-inline int (iswpunct)(wint_t i)
-{ return iswpunct(i); }
-#undef iswpunct
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::iswpunct;
-#endif
-
-#ifdef iswspace
-inline int (iswspace)(wint_t i)
-{ return iswspace(i); }
-#undef iswspace
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::iswspace;
-#endif
-
-#ifdef iswupper
-inline int (iswupper)(wint_t i)
-{ return iswupper(i); }
-#undef iswupper
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::iswupper;
-#endif
-
-#ifdef iswxdigit
-inline int (iswxdigit)(wint_t i)
-{ return iswxdigit(i); }
-#undef iswxdigit
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::iswxdigit;
-#endif
-
-#ifdef towlower
-inline wint_t (towlower)(wint_t i)
-{ return towlower(i); }
-#undef towlower
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::towlower;
-#endif
-
-#ifdef towupper
-inline wint_t (towupper)(wint_t i)
-{ return towupper(i); }
-#undef towupper
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using :: towupper;
-#endif
-
-#ifdef wcscmp
-inline int (wcscmp)(const wchar_t *p1, const wchar_t *p2)
-{ return wcscmp(p1,p2); }
-#undef wcscmp
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::wcscmp;
-#endif
-
-#ifdef wcscoll
-inline int (wcscoll)(const wchar_t *p1, const wchar_t *p2)
-{ return wcscoll(p1,p2); }
-#undef wcscoll
-#elif defined(BOOST_NO_STDC_NAMESPACE) && !defined(UNDER_CE)
-using ::wcscoll;
-#endif
-
-#ifdef wcscpy
-inline wchar_t *(wcscpy)(wchar_t *p1, const wchar_t *p2)
-{ return wcscpy(p1,p2); }
-#undef wcscpy
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::wcscpy;
-#endif
-
-#ifdef wcslen
-inline size_t (wcslen)(const wchar_t *p)
-{ return wcslen(p); }
-#undef wcslen
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::wcslen;
-#endif
-
-#ifdef wcsxfrm
-size_t wcsxfrm(wchar_t *p1, const wchar_t *p2, size_t s)
-{ return wcsxfrm(p1,p2,s); }
-#undef wcsxfrm
-#elif defined(BOOST_NO_STDC_NAMESPACE)
-using ::wcsxfrm;
-#endif
-
-
-#ifndef BOOST_NO_STDC_NAMESPACE
-} // extern "C"
-#endif
-
-} // namespace std
-
-#endif
-
diff --git a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/icu.hpp b/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/icu.hpp
deleted file mode 100644
index b312612d..00000000
--- a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/icu.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- *
- * Copyright (c) 2020
- * John Maddock
- *
- * Use, modification and distribution are 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)
- *
- */
-
- /*
- * LOCATION: see http://www.boost.org for most recent version.
- * FILE icu.hpp
- * VERSION see
- * DESCRIPTION: Unicode regular expressions on top of the ICU Library.
- */
-
-#ifndef BOOST_REGEX_ICU_HPP
-#define BOOST_REGEX_ICU_HPP
-
-#include
-
-#ifdef BOOST_REGEX_CXX03
-#include
-#else
-#include
-#endif
-
-#endif
diff --git a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/mfc.hpp b/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/mfc.hpp
deleted file mode 100644
index d7806739..00000000
--- a/vendor/alterschema/vendor/noa/vendor/boost-regex/include/boost/regex/mfc.hpp
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- *
- * Copyright (c) 2004
- * John Maddock
- *
- * Use, modification and distribution are 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)
- *
- */
-
- /*
- * LOCATION: see http://www.boost.org for most recent version.
- * FILE mfc.hpp
- * VERSION see
- * DESCRIPTION: Overloads and helpers for using MFC/ATL string types with Boost.Regex.
- */
-
-#ifndef BOOST_REGEX_MFC_HPP
-#define BOOST_REGEX_MFC_HPP
-
-#include
-#include
-
-namespace boost{
-
-//
-// define the types used for TCHAR's:
-typedef basic_regex tregex;
-typedef match_results tmatch;
-typedef regex_iterator tregex_iterator;
-typedef regex_token_iterator tregex_token_iterator;
-
-// Obsolete. Remove
-#define SIMPLE_STRING_PARAM class B, bool b
-#define SIMPLE_STRING_ARG_LIST B, b
-
-//
-// define regex creation functions:
-//
-template
-inline basic_regex
-make_regex(const ATL::CSimpleStringT& s, ::boost::regex_constants::syntax_option_type f = boost::regex_constants::normal)
-{
- basic_regex result(s.GetString(), s.GetString() + s.GetLength(), f);
- return result;
-}
-//
-// regex_match overloads:
-//
-template
-inline bool regex_match(const ATL::CSimpleStringT& s,
- match_results& what,
- const basic_regex& e,
- boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
-{
- return ::boost::regex_match(s.GetString(),
- s.GetString() + s.GetLength(),
- what,
- e,
- f);
-}
-
-template
-inline bool regex_match(const ATL::CSimpleStringT& s,
- const basic_regex& e,
- boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
-{
- return ::boost::regex_match(s.GetString(),
- s.GetString() + s.GetLength(),
- e,
- f);
-}
-//
-// regex_search overloads:
-//
-template
-inline bool regex_search(const ATL::CSimpleStringT& s,
- match_results& what,
- const basic_regex& e,
- boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
-{
- return ::boost::regex_search(s.GetString(),
- s.GetString() + s.GetLength(),
- what,
- e,
- f);
-}
-
-template
-inline bool regex_search(const ATL::CSimpleStringT& s,
- const basic_regex& e,
- boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
-{
- return ::boost::regex_search(s.GetString(),
- s.GetString() + s.GetLength(),
- e,
- f);
-}
-//
-// regex_iterator creation:
-//
-template
-inline regex_iterator
-make_regex_iterator(const ATL::CSimpleStringT& s, const basic_regex& e, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
-{
- regex_iterator result(s.GetString(), s.GetString() + s.GetLength(), e, f);
- return result;
-}
-
-template
-inline regex_token_iterator
- make_regex_token_iterator(const ATL::CSimpleStringT& s, const basic_regex& e, int sub = 0, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)
-{
- regex_token_iterator