From 19fcec84d8d7d21e796c7624e521b60d28ee21ed Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:45:59 +0200 Subject: Adding upstream version 16.2.11+ds. Signed-off-by: Daniel Baumann --- src/boost/libs/wave/ChangeLog | 1967 ++++++ src/boost/libs/wave/README.md | 8 + src/boost/libs/wave/build/Jamfile.v2 | 63 + src/boost/libs/wave/index.html | 106 + src/boost/libs/wave/meta/libraries.json | 14 + src/boost/libs/wave/samples/Jamfile.v2 | 21 + .../wave/samples/advanced_hooks/advanced_hooks.cpp | 124 + .../wave/samples/advanced_hooks/advanced_hooks.hpp | 167 + .../wave/samples/advanced_hooks/build/Jamfile.v2 | 18 + .../libs/wave/samples/cpp_tokens/build/Jamfile.v2 | 38 + .../libs/wave/samples/cpp_tokens/cpp_tokens.cpp | 140 + .../libs/wave/samples/cpp_tokens/cpp_tokens.hpp | 38 + .../wave/samples/cpp_tokens/cpp_tokens_config.hpp | 55 + .../cpp_tokens/instantiate_cpp_exprgrammar.cpp | 42 + .../samples/cpp_tokens/instantiate_cpp_grammar.cpp | 45 + .../cpp_tokens/instantiate_cpp_literalgrs.cpp | 47 + .../cpp_tokens/instantiate_defined_grammar.cpp | 39 + .../samples/cpp_tokens/instantiate_slex_lexer.cpp | 47 + .../samples/cpp_tokens/slex/cpp_slex_lexer.hpp | 827 +++ .../libs/wave/samples/cpp_tokens/slex/lexer.hpp | 2932 +++++++++ .../wave/samples/cpp_tokens/slex_interface.hpp | 88 + .../libs/wave/samples/cpp_tokens/slex_iterator.hpp | 232 + .../libs/wave/samples/cpp_tokens/slex_token.hpp | 145 + .../samples/custom_directives/build/Jamfile.v2 | 18 + .../custom_directives/custom_directives.cpp | 124 + .../custom_directives/custom_directives.hpp | 86 + .../custom_directives/custom_directives.input | 8 + .../emit_custom_line_directives/build/Jamfile.v2 | 18 + .../emit_custom_line_directives.cpp | 124 + .../emit_custom_line_directives.hpp | 107 + .../libs/wave/samples/hannibal/build/Jamfile.v2 | 20 + src/boost/libs/wave/samples/hannibal/hannibal.cpp | 319 + .../samples/hannibal/translation_unit_parser.h | 1345 ++++ .../samples/hannibal/translation_unit_skipper.h | 51 + .../wave/samples/lexed_tokens/build/Jamfile.v2 | 19 + .../wave/samples/lexed_tokens/lexed_tokens.cpp | 151 + .../wave/samples/list_includes/build/Jamfile.v2 | 38 + .../list_includes/instantiate_cpp_exprgrammar.cpp | 40 + .../list_includes/instantiate_cpp_grammar.cpp | 45 + .../list_includes/instantiate_cpp_literalgrs.cpp | 47 + .../list_includes/instantiate_defined_grammar.cpp | 41 + .../list_includes/instantiate_lexertl_lexer.cpp | 44 + .../list_includes/lexertl/lexertl_lexer.hpp | 809 +++ .../list_includes/lexertl/wave_lexertl_config.hpp | 35 + .../list_includes/lexertl/wave_lexertl_tables.hpp | 6598 ++++++++++++++++++++ .../samples/list_includes/lexertl_interface.hpp | 77 + .../samples/list_includes/lexertl_iterator.hpp | 227 + .../wave/samples/list_includes/list_includes.cpp | 324 + .../wave/samples/list_includes/list_includes.hpp | 42 + .../samples/list_includes/list_includes_config.hpp | 64 + .../list_includes/list_includes_version.hpp | 20 + .../preprocess_pragma_output/build/Jamfile.v2 | 22 + .../samples/preprocess_pragma_output/example.cpp | 24 + .../preprocess_pragma_output.cpp | 115 + .../preprocess_pragma_output.hpp | 167 + .../libs/wave/samples/quick_start/build/Jamfile.v2 | 19 + .../libs/wave/samples/quick_start/quick_start.cpp | 119 + .../wave/samples/real_positions/build/Jamfile.v2 | 25 + .../real_positions/correct_token_positions.hpp | 126 + .../real_positions/instantiate_cpp_exprgrammar.cpp | 41 + .../real_positions/instantiate_cpp_grammar.cpp | 45 + .../real_positions/instantiate_cpp_literalgrs.cpp | 46 + .../real_positions/instantiate_defined_grammar.cpp | 39 + .../real_positions/instantiate_re2c_lexer.cpp | 62 + .../real_positions/instantiate_re2c_lexer_str.cpp | 61 + .../samples/real_positions/real_position_token.hpp | 218 + .../wave/samples/real_positions/real_positions.cpp | 183 + .../wave/samples/token_statistics/build/Jamfile.v2 | 36 + .../token_statistics/collect_token_statistics.hpp | 71 + .../token_statistics/instantiate_cpp_grammar.cpp | 45 + .../instantiate_defined_grammar.cpp | 42 + .../token_statistics/instantiate_xlex_lexer.cpp | 45 + .../samples/token_statistics/token_statistics.cpp | 259 + .../samples/token_statistics/token_statistics.hpp | 49 + .../token_statistics/token_statistics_version.hpp | 20 + .../samples/token_statistics/xlex/xlex_lexer.hpp | 588 ++ .../token_statistics/xlex/xpressive_lexer.hpp | 135 + .../samples/token_statistics/xlex_interface.hpp | 89 + .../samples/token_statistics/xlex_iterator.hpp | 232 + .../libs/wave/samples/waveidl/build/Jamfile.v2 | 40 + src/boost/libs/wave/samples/waveidl/idl.cpp | 537 ++ src/boost/libs/wave/samples/waveidl/idl.hpp | 45 + src/boost/libs/wave/samples/waveidl/idl_config.hpp | 65 + .../libs/wave/samples/waveidl/idl_version.hpp | 23 + .../libs/wave/samples/waveidl/idllexer/idl.inc | 3387 ++++++++++ .../libs/wave/samples/waveidl/idllexer/idl.re | 235 + .../samples/waveidl/idllexer/idl_lex_interface.hpp | 78 + .../samples/waveidl/idllexer/idl_lex_iterator.hpp | 210 + .../libs/wave/samples/waveidl/idllexer/idl_re.cpp | 86 + .../libs/wave/samples/waveidl/idllexer/idl_re.hpp | 371 ++ .../samples/waveidl/idllexer/idl_re2c_lexer.hpp | 271 + .../samples/waveidl/instantiate_cpp_grammar.cpp | 45 + .../waveidl/instantiate_defined_grammar.cpp | 42 + .../samples/waveidl/instantiate_predef_macros.cpp | 42 + .../samples/waveidl/instantiate_re2c_lexer.cpp | 50 + .../samples/waveidl/instantiate_re2c_lexer_str.cpp | 50 + src/boost/libs/wave/src/cpplexer/re2clex/aq.cpp | 236 + .../libs/wave/src/cpplexer/re2clex/cpp_re.cpp | 118 + .../libs/wave/src/instantiate_cpp_exprgrammar.cpp | 52 + .../libs/wave/src/instantiate_cpp_grammar.cpp | 56 + .../libs/wave/src/instantiate_cpp_literalgrs.cpp | 56 + .../libs/wave/src/instantiate_defined_grammar.cpp | 52 + .../libs/wave/src/instantiate_predef_macros.cpp | 52 + src/boost/libs/wave/src/instantiate_re2c_lexer.cpp | 65 + .../libs/wave/src/instantiate_re2c_lexer_str.cpp | 64 + src/boost/libs/wave/src/token_ids.cpp | 447 ++ src/boost/libs/wave/src/wave_config_constant.cpp | 48 + src/boost/libs/wave/test/Jamfile | 3 + src/boost/libs/wave/test/build/Jamfile.v2 | 177 + src/boost/libs/wave/test/testlexers/cpp_tokens.hpp | 254 + .../wave/test/testlexers/test_lexertl_lexer.cpp | 91 + .../libs/wave/test/testlexers/test_re2c_lexer.cpp | 97 + .../libs/wave/test/testlexers/test_slex_lexer.cpp | 100 + .../libs/wave/test/testlexers/test_xlex_lexer.cpp | 92 + .../libs/wave/test/testwave/cmd_line_utils.hpp | 235 + .../test/testwave/collect_hooks_information.hpp | 873 +++ src/boost/libs/wave/test/testwave/quick.cpp | 49 + .../libs/wave/test/testwave/testfiles/t_1_001.cpp | 42 + .../libs/wave/test/testwave/testfiles/t_1_002.cpp | 25 + .../libs/wave/test/testwave/testfiles/t_1_003.cpp | 60 + .../libs/wave/test/testwave/testfiles/t_1_004.cpp | 88 + .../libs/wave/test/testwave/testfiles/t_1_005.cpp | 27 + .../libs/wave/test/testwave/testfiles/t_1_006.cpp | 54 + .../libs/wave/test/testwave/testfiles/t_1_007.cpp | 55 + .../libs/wave/test/testwave/testfiles/t_1_008.cpp | 145 + .../libs/wave/test/testwave/testfiles/t_1_009.cpp | 29 + .../libs/wave/test/testwave/testfiles/t_1_010.cpp | 29 + .../libs/wave/test/testwave/testfiles/t_1_011.cpp | 32 + .../libs/wave/test/testwave/testfiles/t_1_012.cpp | 57 + .../libs/wave/test/testwave/testfiles/t_1_013.cpp | 89 + .../libs/wave/test/testwave/testfiles/t_1_014.cpp | 35 + .../libs/wave/test/testwave/testfiles/t_1_015.cpp | 25 + .../libs/wave/test/testwave/testfiles/t_1_016.cpp | 29 + .../libs/wave/test/testwave/testfiles/t_1_017.cpp | 31 + .../libs/wave/test/testwave/testfiles/t_1_018.cpp | 42 + .../libs/wave/test/testwave/testfiles/t_1_019.cpp | 42 + .../libs/wave/test/testwave/testfiles/t_1_020.cpp | 34 + .../libs/wave/test/testwave/testfiles/t_1_021.cpp | 41 + .../libs/wave/test/testwave/testfiles/t_1_022.cpp | 36 + .../libs/wave/test/testwave/testfiles/t_1_023.cpp | 33 + .../libs/wave/test/testwave/testfiles/t_1_024.cpp | 112 + .../libs/wave/test/testwave/testfiles/t_1_025.cpp | 35 + .../libs/wave/test/testwave/testfiles/t_1_026.cpp | 19 + .../libs/wave/test/testwave/testfiles/t_1_027.cpp | 41 + .../libs/wave/test/testwave/testfiles/t_1_028.cpp | 45 + .../libs/wave/test/testwave/testfiles/t_1_029.cpp | 44 + .../libs/wave/test/testwave/testfiles/t_1_030.cpp | 33 + .../libs/wave/test/testwave/testfiles/t_1_031.cpp | 27 + .../libs/wave/test/testwave/testfiles/t_1_032.cpp | 37 + .../libs/wave/test/testwave/testfiles/t_1_033.cpp | 35 + .../libs/wave/test/testwave/testfiles/t_1_034.cpp | 39 + .../libs/wave/test/testwave/testfiles/t_1_035.cpp | 49 + .../libs/wave/test/testwave/testfiles/t_1_036.cpp | 21 + .../libs/wave/test/testwave/testfiles/t_1_037.cpp | 17 + .../libs/wave/test/testwave/testfiles/t_1_038.cpp | 37 + .../libs/wave/test/testwave/testfiles/t_2_001.cpp | 32 + .../libs/wave/test/testwave/testfiles/t_2_002.cpp | 22 + .../libs/wave/test/testwave/testfiles/t_2_003.cpp | 22 + .../libs/wave/test/testwave/testfiles/t_2_004.cpp | 34 + .../libs/wave/test/testwave/testfiles/t_2_005.cpp | 17 + .../libs/wave/test/testwave/testfiles/t_2_006.cpp | 38 + .../libs/wave/test/testwave/testfiles/t_2_007.cpp | 38 + .../libs/wave/test/testwave/testfiles/t_2_008.cpp | 24 + .../libs/wave/test/testwave/testfiles/t_2_009.cpp | 56 + .../libs/wave/test/testwave/testfiles/t_2_010.cpp | 21 + .../libs/wave/test/testwave/testfiles/t_2_011.cpp | 21 + .../libs/wave/test/testwave/testfiles/t_2_012.cpp | 17 + .../libs/wave/test/testwave/testfiles/t_2_013.cpp | 19 + .../libs/wave/test/testwave/testfiles/t_2_014.cpp | 111 + .../libs/wave/test/testwave/testfiles/t_2_015.cpp | 27 + .../libs/wave/test/testwave/testfiles/t_2_016.cpp | 26 + .../libs/wave/test/testwave/testfiles/t_2_017.cpp | 36 + .../libs/wave/test/testwave/testfiles/t_2_018.cpp | 22 + .../libs/wave/test/testwave/testfiles/t_2_019.cpp | 61 + .../wave/test/testwave/testfiles/t_2_019_001.hpp | 11 + .../wave/test/testwave/testfiles/t_2_019_002.hpp | 20 + .../wave/test/testwave/testfiles/t_2_019_003.hpp | 20 + .../libs/wave/test/testwave/testfiles/t_2_020.cpp | 261 + .../libs/wave/test/testwave/testfiles/t_2_021.cpp | 50 + .../libs/wave/test/testwave/testfiles/t_2_022.cpp | 23 + .../libs/wave/test/testwave/testfiles/t_2_022.hpp | 12 + .../libs/wave/test/testwave/testfiles/t_3_001.cpp | 17 + .../libs/wave/test/testwave/testfiles/t_3_002.cpp | 50 + .../libs/wave/test/testwave/testfiles/t_3_003.cpp | 55 + .../libs/wave/test/testwave/testfiles/t_3_004.cpp | 58 + .../libs/wave/test/testwave/testfiles/t_4_001.cpp | 22 + .../libs/wave/test/testwave/testfiles/t_4_002.cpp | 28 + .../libs/wave/test/testwave/testfiles/t_4_003.cpp | 100 + .../libs/wave/test/testwave/testfiles/t_4_004.cpp | 61 + .../libs/wave/test/testwave/testfiles/t_5_001.cpp | 58 + .../libs/wave/test/testwave/testfiles/t_5_002.cpp | 76 + .../libs/wave/test/testwave/testfiles/t_5_003.cpp | 68 + .../libs/wave/test/testwave/testfiles/t_5_004.cpp | 59 + .../libs/wave/test/testwave/testfiles/t_5_005.cpp | 52 + .../libs/wave/test/testwave/testfiles/t_5_006.cpp | 53 + .../libs/wave/test/testwave/testfiles/t_5_007.cpp | 70 + .../libs/wave/test/testwave/testfiles/t_5_007.hpp | 12 + .../libs/wave/test/testwave/testfiles/t_5_008.cpp | 62 + .../libs/wave/test/testwave/testfiles/t_5_009.cpp | 57 + .../libs/wave/test/testwave/testfiles/t_5_010.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_5_011.cpp | 54 + .../libs/wave/test/testwave/testfiles/t_5_012.cpp | 74 + .../libs/wave/test/testwave/testfiles/t_5_013.cpp | 82 + .../libs/wave/test/testwave/testfiles/t_5_014.cpp | 114 + .../libs/wave/test/testwave/testfiles/t_5_015.cpp | 93 + .../libs/wave/test/testwave/testfiles/t_5_016.cpp | 79 + .../libs/wave/test/testwave/testfiles/t_5_017.cpp | 88 + .../libs/wave/test/testwave/testfiles/t_5_018.cpp | 91 + .../libs/wave/test/testwave/testfiles/t_5_019.cpp | 72 + .../libs/wave/test/testwave/testfiles/t_5_020.cpp | 64 + .../libs/wave/test/testwave/testfiles/t_5_021.cpp | 69 + .../libs/wave/test/testwave/testfiles/t_5_022.cpp | 59 + .../libs/wave/test/testwave/testfiles/t_5_023.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_5_024.cpp | 54 + .../libs/wave/test/testwave/testfiles/t_5_025.cpp | 64 + .../libs/wave/test/testwave/testfiles/t_5_026.cpp | 60 + .../libs/wave/test/testwave/testfiles/t_5_027.cpp | 70 + .../libs/wave/test/testwave/testfiles/t_5_028.cpp | 75 + .../libs/wave/test/testwave/testfiles/t_5_029.cpp | 69 + .../libs/wave/test/testwave/testfiles/t_5_030.cpp | 93 + .../libs/wave/test/testwave/testfiles/t_5_031.cpp | 78 + .../libs/wave/test/testwave/testfiles/t_5_031.hpp | 44 + .../libs/wave/test/testwave/testfiles/t_5_032.cpp | 72 + .../libs/wave/test/testwave/testfiles/t_5_033.cpp | 58 + .../libs/wave/test/testwave/testfiles/t_5_034.cpp | 61 + .../libs/wave/test/testwave/testfiles/t_5_035.cpp | 137 + .../libs/wave/test/testwave/testfiles/t_5_035.hpp | 1069 ++++ .../wave/test/testwave/testfiles/t_5_035_01.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_02.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_03.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_04.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_05.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_06.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_07.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_08.hpp | 54 + .../wave/test/testwave/testfiles/t_5_035_09.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_10.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_11.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_12.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_13.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_14.hpp | 48 + .../wave/test/testwave/testfiles/t_5_035_15.hpp | 50 + .../libs/wave/test/testwave/testfiles/t_6_001.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_002.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_003.cpp | 51 + .../libs/wave/test/testwave/testfiles/t_6_004.cpp | 51 + .../libs/wave/test/testwave/testfiles/t_6_005.cpp | 51 + .../libs/wave/test/testwave/testfiles/t_6_006.cpp | 51 + .../libs/wave/test/testwave/testfiles/t_6_007.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_008.cpp | 51 + .../libs/wave/test/testwave/testfiles/t_6_009.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_010.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_011.cpp | 49 + .../libs/wave/test/testwave/testfiles/t_6_012.cpp | 49 + .../libs/wave/test/testwave/testfiles/t_6_013.cpp | 49 + .../libs/wave/test/testwave/testfiles/t_6_014.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_015.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_016.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_017.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_018.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_019.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_020.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_021.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_022.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_023.cpp | 50 + .../libs/wave/test/testwave/testfiles/t_6_024.cpp | 50 + .../libs/wave/test/testwave/testfiles/t_6_025.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_6_026.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_6_027.cpp | 50 + .../libs/wave/test/testwave/testfiles/t_6_028.cpp | 50 + .../libs/wave/test/testwave/testfiles/t_6_029.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_029.hpp | 46 + .../libs/wave/test/testwave/testfiles/t_6_030.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_030.hpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_031.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_032.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_6_033.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_6_034.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_6_035.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_6_036.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_6_037.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_6_038.cpp | 58 + .../libs/wave/test/testwave/testfiles/t_6_039.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_040.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_041.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_042.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_043.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_044.cpp | 51 + .../libs/wave/test/testwave/testfiles/t_6_045.cpp | 51 + .../libs/wave/test/testwave/testfiles/t_6_046.cpp | 51 + .../libs/wave/test/testwave/testfiles/t_6_047.cpp | 51 + .../libs/wave/test/testwave/testfiles/t_6_048.cpp | 50 + .../libs/wave/test/testwave/testfiles/t_6_049.cpp | 56 + .../libs/wave/test/testwave/testfiles/t_6_050.cpp | 54 + .../libs/wave/test/testwave/testfiles/t_6_051.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_6_052.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_6_053.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_6_054.cpp | 47 + .../libs/wave/test/testwave/testfiles/t_6_055.cpp | 49 + .../libs/wave/test/testwave/testfiles/t_6_056.cpp | 49 + .../libs/wave/test/testwave/testfiles/t_6_057.cpp | 52 + .../libs/wave/test/testwave/testfiles/t_6_058.cpp | 52 + .../libs/wave/test/testwave/testfiles/t_6_059.cpp | 52 + .../libs/wave/test/testwave/testfiles/t_6_060.cpp | 52 + .../libs/wave/test/testwave/testfiles/t_6_061.cpp | 51 + .../libs/wave/test/testwave/testfiles/t_6_062.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_063.cpp | 54 + .../libs/wave/test/testwave/testfiles/t_6_063.hpp | 45 + .../libs/wave/test/testwave/testfiles/t_6_064.cpp | 51 + .../libs/wave/test/testwave/testfiles/t_6_065.cpp | 51 + .../libs/wave/test/testwave/testfiles/t_6_066.cpp | 49 + .../libs/wave/test/testwave/testfiles/t_6_066.hpp | 46 + .../libs/wave/test/testwave/testfiles/t_6_067.cpp | 54 + .../libs/wave/test/testwave/testfiles/t_6_067.hpp | 48 + .../libs/wave/test/testwave/testfiles/t_6_068.cpp | 46 + .../libs/wave/test/testwave/testfiles/t_6_069.cpp | 45 + .../libs/wave/test/testwave/testfiles/t_7_001.cpp | 49 + .../libs/wave/test/testwave/testfiles/t_7_002.cpp | 15 + .../libs/wave/test/testwave/testfiles/t_7_003.cpp | 13 + .../libs/wave/test/testwave/testfiles/t_7_004.cpp | 14 + .../libs/wave/test/testwave/testfiles/t_7_005.cpp | 15 + .../libs/wave/test/testwave/testfiles/t_7_006.cpp | 17 + .../libs/wave/test/testwave/testfiles/t_7_006.hpp | 10 + .../libs/wave/test/testwave/testfiles/t_9_001.cpp | 23 + .../libs/wave/test/testwave/testfiles/t_9_002.cpp | 23 + .../libs/wave/test/testwave/testfiles/t_9_003.cpp | 61 + .../libs/wave/test/testwave/testfiles/t_9_004.cpp | 28 + .../libs/wave/test/testwave/testfiles/t_9_005.cpp | 27 + .../libs/wave/test/testwave/testfiles/t_9_006.cpp | 46 + .../libs/wave/test/testwave/testfiles/t_9_007.cpp | 20 + .../libs/wave/test/testwave/testfiles/t_9_008.cpp | 16 + .../libs/wave/test/testwave/testfiles/t_9_009.cpp | 27 + .../libs/wave/test/testwave/testfiles/t_9_010.cpp | 70 + .../libs/wave/test/testwave/testfiles/t_9_011.cpp | 30 + .../libs/wave/test/testwave/testfiles/t_9_012.cpp | 25 + .../libs/wave/test/testwave/testfiles/t_9_013.cpp | 19 + .../libs/wave/test/testwave/testfiles/t_9_014.cpp | 15 + .../libs/wave/test/testwave/testfiles/t_9_015.cpp | 15 + .../libs/wave/test/testwave/testfiles/t_9_016.cpp | 42 + .../libs/wave/test/testwave/testfiles/t_9_016.hpp | 11 + .../libs/wave/test/testwave/testfiles/t_9_017.cpp | 75 + .../libs/wave/test/testwave/testfiles/t_9_018.cpp | 20 + .../libs/wave/test/testwave/testfiles/t_9_019.cpp | 21 + .../libs/wave/test/testwave/testfiles/t_9_019.hpp | 11 + .../libs/wave/test/testwave/testfiles/t_9_020.cpp | 48 + .../libs/wave/test/testwave/testfiles/t_9_021.cpp | 24 + .../libs/wave/test/testwave/testfiles/t_9_022.cpp | 18 + .../libs/wave/test/testwave/testfiles/t_9_023.cpp | 31 + .../libs/wave/test/testwave/testfiles/t_9_024.cpp | 35 + .../libs/wave/test/testwave/testfiles/t_9_025.cpp | 13 + .../libs/wave/test/testwave/testfiles/t_9_026.cpp | 14 + .../libs/wave/test/testwave/testfiles/t_9_027.cpp | 12 + .../libs/wave/test/testwave/testfiles/t_9_028.cpp | 13 + .../libs/wave/test/testwave/testfiles/test.cfg | 251 + .../file.hpp" | 10 + src/boost/libs/wave/test/testwave/testwave.cpp | 301 + src/boost/libs/wave/test/testwave/testwave_app.cpp | 1486 +++++ src/boost/libs/wave/test/testwave/testwave_app.hpp | 135 + .../libs/wave/test/testwave/testwave_app_dll.cpp | 13 + src/boost/libs/wave/test/testwave/testwave_dll.cpp | 13 + src/boost/libs/wave/tool/build/Jamfile.v2 | 73 + src/boost/libs/wave/tool/cpp.cpp | 1508 +++++ src/boost/libs/wave/tool/cpp.hpp | 42 + src/boost/libs/wave/tool/cpp_config.hpp | 63 + src/boost/libs/wave/tool/cpp_version.hpp | 25 + src/boost/libs/wave/tool/stop_watch.hpp | 84 + src/boost/libs/wave/tool/trace_macro_expansion.hpp | 1494 +++++ 367 files changed, 47293 insertions(+) create mode 100644 src/boost/libs/wave/ChangeLog create mode 100644 src/boost/libs/wave/README.md create mode 100644 src/boost/libs/wave/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/index.html create mode 100644 src/boost/libs/wave/meta/libraries.json create mode 100644 src/boost/libs/wave/samples/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/advanced_hooks/advanced_hooks.cpp create mode 100644 src/boost/libs/wave/samples/advanced_hooks/advanced_hooks.hpp create mode 100644 src/boost/libs/wave/samples/advanced_hooks/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/cpp_tokens/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/cpp_tokens/cpp_tokens.cpp create mode 100644 src/boost/libs/wave/samples/cpp_tokens/cpp_tokens.hpp create mode 100644 src/boost/libs/wave/samples/cpp_tokens/cpp_tokens_config.hpp create mode 100644 src/boost/libs/wave/samples/cpp_tokens/instantiate_cpp_exprgrammar.cpp create mode 100644 src/boost/libs/wave/samples/cpp_tokens/instantiate_cpp_grammar.cpp create mode 100644 src/boost/libs/wave/samples/cpp_tokens/instantiate_cpp_literalgrs.cpp create mode 100644 src/boost/libs/wave/samples/cpp_tokens/instantiate_defined_grammar.cpp create mode 100644 src/boost/libs/wave/samples/cpp_tokens/instantiate_slex_lexer.cpp create mode 100644 src/boost/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp create mode 100644 src/boost/libs/wave/samples/cpp_tokens/slex/lexer.hpp create mode 100644 src/boost/libs/wave/samples/cpp_tokens/slex_interface.hpp create mode 100644 src/boost/libs/wave/samples/cpp_tokens/slex_iterator.hpp create mode 100644 src/boost/libs/wave/samples/cpp_tokens/slex_token.hpp create mode 100644 src/boost/libs/wave/samples/custom_directives/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/custom_directives/custom_directives.cpp create mode 100644 src/boost/libs/wave/samples/custom_directives/custom_directives.hpp create mode 100644 src/boost/libs/wave/samples/custom_directives/custom_directives.input create mode 100644 src/boost/libs/wave/samples/emit_custom_line_directives/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/emit_custom_line_directives/emit_custom_line_directives.cpp create mode 100644 src/boost/libs/wave/samples/emit_custom_line_directives/emit_custom_line_directives.hpp create mode 100644 src/boost/libs/wave/samples/hannibal/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/hannibal/hannibal.cpp create mode 100644 src/boost/libs/wave/samples/hannibal/translation_unit_parser.h create mode 100644 src/boost/libs/wave/samples/hannibal/translation_unit_skipper.h create mode 100644 src/boost/libs/wave/samples/lexed_tokens/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/lexed_tokens/lexed_tokens.cpp create mode 100644 src/boost/libs/wave/samples/list_includes/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/list_includes/instantiate_cpp_exprgrammar.cpp create mode 100644 src/boost/libs/wave/samples/list_includes/instantiate_cpp_grammar.cpp create mode 100644 src/boost/libs/wave/samples/list_includes/instantiate_cpp_literalgrs.cpp create mode 100644 src/boost/libs/wave/samples/list_includes/instantiate_defined_grammar.cpp create mode 100644 src/boost/libs/wave/samples/list_includes/instantiate_lexertl_lexer.cpp create mode 100644 src/boost/libs/wave/samples/list_includes/lexertl/lexertl_lexer.hpp create mode 100644 src/boost/libs/wave/samples/list_includes/lexertl/wave_lexertl_config.hpp create mode 100644 src/boost/libs/wave/samples/list_includes/lexertl/wave_lexertl_tables.hpp create mode 100644 src/boost/libs/wave/samples/list_includes/lexertl_interface.hpp create mode 100644 src/boost/libs/wave/samples/list_includes/lexertl_iterator.hpp create mode 100644 src/boost/libs/wave/samples/list_includes/list_includes.cpp create mode 100644 src/boost/libs/wave/samples/list_includes/list_includes.hpp create mode 100644 src/boost/libs/wave/samples/list_includes/list_includes_config.hpp create mode 100644 src/boost/libs/wave/samples/list_includes/list_includes_version.hpp create mode 100644 src/boost/libs/wave/samples/preprocess_pragma_output/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/preprocess_pragma_output/example.cpp create mode 100644 src/boost/libs/wave/samples/preprocess_pragma_output/preprocess_pragma_output.cpp create mode 100644 src/boost/libs/wave/samples/preprocess_pragma_output/preprocess_pragma_output.hpp create mode 100644 src/boost/libs/wave/samples/quick_start/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/quick_start/quick_start.cpp create mode 100644 src/boost/libs/wave/samples/real_positions/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/real_positions/correct_token_positions.hpp create mode 100644 src/boost/libs/wave/samples/real_positions/instantiate_cpp_exprgrammar.cpp create mode 100644 src/boost/libs/wave/samples/real_positions/instantiate_cpp_grammar.cpp create mode 100644 src/boost/libs/wave/samples/real_positions/instantiate_cpp_literalgrs.cpp create mode 100644 src/boost/libs/wave/samples/real_positions/instantiate_defined_grammar.cpp create mode 100644 src/boost/libs/wave/samples/real_positions/instantiate_re2c_lexer.cpp create mode 100644 src/boost/libs/wave/samples/real_positions/instantiate_re2c_lexer_str.cpp create mode 100644 src/boost/libs/wave/samples/real_positions/real_position_token.hpp create mode 100644 src/boost/libs/wave/samples/real_positions/real_positions.cpp create mode 100644 src/boost/libs/wave/samples/token_statistics/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/token_statistics/collect_token_statistics.hpp create mode 100644 src/boost/libs/wave/samples/token_statistics/instantiate_cpp_grammar.cpp create mode 100644 src/boost/libs/wave/samples/token_statistics/instantiate_defined_grammar.cpp create mode 100644 src/boost/libs/wave/samples/token_statistics/instantiate_xlex_lexer.cpp create mode 100644 src/boost/libs/wave/samples/token_statistics/token_statistics.cpp create mode 100644 src/boost/libs/wave/samples/token_statistics/token_statistics.hpp create mode 100644 src/boost/libs/wave/samples/token_statistics/token_statistics_version.hpp create mode 100644 src/boost/libs/wave/samples/token_statistics/xlex/xlex_lexer.hpp create mode 100644 src/boost/libs/wave/samples/token_statistics/xlex/xpressive_lexer.hpp create mode 100644 src/boost/libs/wave/samples/token_statistics/xlex_interface.hpp create mode 100644 src/boost/libs/wave/samples/token_statistics/xlex_iterator.hpp create mode 100644 src/boost/libs/wave/samples/waveidl/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/samples/waveidl/idl.cpp create mode 100644 src/boost/libs/wave/samples/waveidl/idl.hpp create mode 100644 src/boost/libs/wave/samples/waveidl/idl_config.hpp create mode 100644 src/boost/libs/wave/samples/waveidl/idl_version.hpp create mode 100644 src/boost/libs/wave/samples/waveidl/idllexer/idl.inc create mode 100644 src/boost/libs/wave/samples/waveidl/idllexer/idl.re create mode 100644 src/boost/libs/wave/samples/waveidl/idllexer/idl_lex_interface.hpp create mode 100644 src/boost/libs/wave/samples/waveidl/idllexer/idl_lex_iterator.hpp create mode 100644 src/boost/libs/wave/samples/waveidl/idllexer/idl_re.cpp create mode 100644 src/boost/libs/wave/samples/waveidl/idllexer/idl_re.hpp create mode 100644 src/boost/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp create mode 100644 src/boost/libs/wave/samples/waveidl/instantiate_cpp_grammar.cpp create mode 100644 src/boost/libs/wave/samples/waveidl/instantiate_defined_grammar.cpp create mode 100644 src/boost/libs/wave/samples/waveidl/instantiate_predef_macros.cpp create mode 100644 src/boost/libs/wave/samples/waveidl/instantiate_re2c_lexer.cpp create mode 100644 src/boost/libs/wave/samples/waveidl/instantiate_re2c_lexer_str.cpp create mode 100644 src/boost/libs/wave/src/cpplexer/re2clex/aq.cpp create mode 100644 src/boost/libs/wave/src/cpplexer/re2clex/cpp_re.cpp create mode 100644 src/boost/libs/wave/src/instantiate_cpp_exprgrammar.cpp create mode 100644 src/boost/libs/wave/src/instantiate_cpp_grammar.cpp create mode 100644 src/boost/libs/wave/src/instantiate_cpp_literalgrs.cpp create mode 100644 src/boost/libs/wave/src/instantiate_defined_grammar.cpp create mode 100644 src/boost/libs/wave/src/instantiate_predef_macros.cpp create mode 100644 src/boost/libs/wave/src/instantiate_re2c_lexer.cpp create mode 100644 src/boost/libs/wave/src/instantiate_re2c_lexer_str.cpp create mode 100644 src/boost/libs/wave/src/token_ids.cpp create mode 100644 src/boost/libs/wave/src/wave_config_constant.cpp create mode 100644 src/boost/libs/wave/test/Jamfile create mode 100644 src/boost/libs/wave/test/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/test/testlexers/cpp_tokens.hpp create mode 100644 src/boost/libs/wave/test/testlexers/test_lexertl_lexer.cpp create mode 100644 src/boost/libs/wave/test/testlexers/test_re2c_lexer.cpp create mode 100644 src/boost/libs/wave/test/testlexers/test_slex_lexer.cpp create mode 100644 src/boost/libs/wave/test/testlexers/test_xlex_lexer.cpp create mode 100644 src/boost/libs/wave/test/testwave/cmd_line_utils.hpp create mode 100644 src/boost/libs/wave/test/testwave/collect_hooks_information.hpp create mode 100644 src/boost/libs/wave/test/testwave/quick.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_001.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_002.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_003.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_004.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_005.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_006.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_007.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_008.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_009.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_010.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_011.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_012.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_013.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_014.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_015.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_016.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_017.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_018.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_019.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_020.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_021.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_022.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_023.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_024.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_025.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_026.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_027.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_028.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_029.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_030.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_031.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_032.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_033.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_034.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_035.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_036.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_037.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_1_038.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_001.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_002.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_003.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_004.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_005.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_006.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_007.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_008.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_009.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_010.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_011.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_012.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_013.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_014.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_015.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_016.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_017.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_018.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_019.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_019_001.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_019_002.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_019_003.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_020.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_021.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_022.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_2_022.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_3_001.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_3_002.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_3_003.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_3_004.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_4_001.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_4_002.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_4_003.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_4_004.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_001.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_002.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_003.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_004.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_005.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_006.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_007.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_007.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_008.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_009.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_010.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_011.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_012.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_013.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_014.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_015.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_016.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_017.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_018.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_019.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_020.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_021.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_022.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_023.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_024.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_025.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_026.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_027.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_028.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_029.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_030.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_031.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_031.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_032.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_033.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_034.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_01.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_02.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_03.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_04.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_05.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_06.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_07.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_08.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_09.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_10.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_11.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_12.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_13.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_14.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_5_035_15.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_001.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_002.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_003.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_004.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_005.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_006.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_007.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_008.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_009.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_010.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_011.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_012.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_013.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_014.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_015.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_016.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_017.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_018.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_019.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_020.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_021.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_022.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_023.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_024.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_025.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_026.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_027.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_028.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_029.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_029.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_030.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_030.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_031.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_032.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_033.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_034.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_035.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_036.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_037.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_038.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_039.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_040.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_041.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_042.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_043.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_044.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_045.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_046.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_047.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_048.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_049.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_050.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_051.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_052.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_053.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_054.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_055.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_056.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_057.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_058.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_059.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_060.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_061.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_062.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_063.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_063.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_064.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_065.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_066.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_066.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_067.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_067.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_068.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_6_069.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_7_001.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_7_002.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_7_003.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_7_004.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_7_005.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_7_006.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_7_006.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_001.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_002.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_003.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_004.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_005.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_006.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_007.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_008.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_009.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_010.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_011.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_012.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_013.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_014.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_015.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_016.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_016.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_017.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_018.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_019.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_019.hpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_020.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_021.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_022.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_023.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_024.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_025.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_026.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_027.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/t_9_028.cpp create mode 100644 src/boost/libs/wave/test/testwave/testfiles/test.cfg create mode 100644 "src/boost/libs/wave/test/testwave/testfiles/utf8-test-\303\237\302\265\342\204\242\342\210\203/file.hpp" create mode 100644 src/boost/libs/wave/test/testwave/testwave.cpp create mode 100644 src/boost/libs/wave/test/testwave/testwave_app.cpp create mode 100644 src/boost/libs/wave/test/testwave/testwave_app.hpp create mode 100644 src/boost/libs/wave/test/testwave/testwave_app_dll.cpp create mode 100644 src/boost/libs/wave/test/testwave/testwave_dll.cpp create mode 100644 src/boost/libs/wave/tool/build/Jamfile.v2 create mode 100644 src/boost/libs/wave/tool/cpp.cpp create mode 100644 src/boost/libs/wave/tool/cpp.hpp create mode 100644 src/boost/libs/wave/tool/cpp_config.hpp create mode 100644 src/boost/libs/wave/tool/cpp_version.hpp create mode 100644 src/boost/libs/wave/tool/stop_watch.hpp create mode 100644 src/boost/libs/wave/tool/trace_macro_expansion.hpp (limited to 'src/boost/libs/wave') diff --git a/src/boost/libs/wave/ChangeLog b/src/boost/libs/wave/ChangeLog new file mode 100644 index 000000000..9706e5f53 --- /dev/null +++ b/src/boost/libs/wave/ChangeLog @@ -0,0 +1,1967 @@ +Boost.Wave: A Standard compliant C++ preprocessor library +http://www.boost.org/ + +Copyright (c) 2001-2013 Hartmut Kaiser. Distributed under the Boost +Software License, Version 1.0. (See accompanying file +LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +------------------------------------------------------------------------------- + +TODO (known issues): +- Fix expansion of macros, which replacement-list terminates in a partial + macro expansion. +- Try to remove the second parameter from the pp_iterator<>::force_include + function. +- Fix the trigraph backslash problem in the re2c (C/C++ and IDL) scanners, if + there is the end of the (internal) buffer just in between a '??/' and a '\n'. + +------------------------------------------------------------------------------- + +CHANGELOG + +Boost V1.73: + - Fixed TRAC #7822: waveidl sample does not use the IDL lexer + - Fixed TRAC #9874: Turning off 'include_next' support breaks include + - Fixed a typedef shadowing a class (MSVC warning 4458) - Conrad Poelman + - Updated waveidl to match recent changes in the RE2C lexer + - Samples now build cleanly + - Ensured samples and wave driver are covered by continuous integration + +Boost V1.55: + - Fixed #8848: Wave driver improperly processes 0xFFFFui64 token + - Fixed #9098: Wave driver option --c++0x invalid + +Boost V1.54: + - Fixed #8478: Make Boost.wave compatible with Clang's -Wimplicit-fallthrough + diagnostic. + +Boost V1.53: + - Fixed a problem with context<>::add_macro_definition which sometimes + appended a superfluous T_EOF to the macro replacement list. + +Boost V1.52.0: + - Added util::create_directories() wrapper to account for new behavior of + boost::filesystem::create_directories(). + - Fixed an obscure problem when preprocessing directives wouldn't be recognized + if the previous line contained nothing but an empty macro invocation + (see new test case t_9_023.cpp) + - Added a new command line option --license= to the Wave driver tool + which allows to pre-pend the content of a (license) file to every newly + created file. This option simplifies the implementation of partial + preprocessing as done on Phoenix, Fusion, etc. + - Changed the effect of the -N command line option to simply not expand + the macro by pretending it was not defined. Earlier the whole invocation + sequence was skipped, now we skip only the macro itself, which still expands + the arguments for the macro invocation. + - Fixed a couple of compilation warnings + +Boost V1.51.0 + - Fixed #7050: Invalid memory write bug in lexing_exception + - Fixed #7159: Text-lines are processed as if they were preprocessing directives + - Changed --c++0x command line option to --c++11. + +Boost V1.50.0 + - V2.3.2 + - Fixed #6758: not all members are initialized by base_iteration_context + constructor. + - Fixed #6838: Adding include file with force_include makes Wave fail to emit + #line directive + - Added support for test of --forceinclude option to testwave executable, + added test case verifying #6838 is fixed. + - Fixed #6870: build wave driver failed + +Boost V1.48.0 + - V2.3.1 + - Added the flag support_option_emit_contnewlines allowing to control whether + backslash newline sequences are emitted by the Wave library. The default is + as before: these tokens will be silently ignored (after the token positions + have been properly updated). Note: this option is supported by the SLex lexer + module only. + - Fixed #5887: flex_string.hpp needs to include + +Boost V1.47.0 +- V2.3.0 +- After preprocessing the body of any #pragma wave option() the wave tool now + concatenates all adjacent string literals into a single string literal. +- Fixed whitespace handling, added a corresponding set of test cases + (t_9_020.cpp) +- Added a new preprocessing hook: locate_include_file allowing to customize the + way include files are located. +- Added new command line option --noexpand/-N to the Wave driver allowing to + suppress macro expansion for a given macro name (works for both, object like + and function like macros). This option has to be used very carefully as it + not only leaves the whole macro invocation untouched in the generated output + but also removes this macro from consideration for Wave itself. This can + cause unexpected results if the suppressed macro would influence #ifdef's + later on. +- Fixed Wave driver to retain all macros defined on the command line in + interactive mode. +- Fixed problem #5554: wave slex parser eof without eol skips the last line. +- Added the compile time configuartion option BOOST_WAVE_WCHAR_T_SIGNEDNESS, + which can be set to BOOST_WAVE_WCHAR_T_AUTOSELECT, BOOST_WAVE_WCHAR_T_FORCE_SIGNED, + or BOOST_WAVE_WCHAR_T_FORCE_UNSIGNED), it defaults to autoßselect. +- Fixed a problem in teh wave driver tool related to #pragma option(output). + If wave was invoked in rapid succession this erroneously appended to an + existing file instead of overwriting that file. +- Fixed #5569: slex CONTLINE token works only for LF line endings + +Boost V1.46.0 +- V2.2.0 +- Added recognition of C++0x keywords to Re2C lexers. +- Added --c++0x command line option to Wave to enabling the recognition of + C++0x keywords, converting those to C++0x tokens. +- Adapted all of the library to play well with Boost.Filesystem V3 (which is + the default from now on). +- Added support for extended character and string literals, added test case + (which required to add C++0x support to the test application). +- Added proper predefined macros fro --c++0x mode. __cplusplus is currently + defined to 201101L, but this will change when the Standard is finalized. +- Fixed a problem with object like macros, which when being adjacent to a + parenthesis, caused the parenthesis to disappear when the macro expansion + was suppressed by the expanding_object_like_macro() hook function. +- Fixed a bug in pragma option(preserve), missing to set to preserve=1 if + after the previous value was preserve=2. +- Changed the --preserve option of the wave tool to interprete the integer + argument in a slightly different way: + 0: no whitespace is preserved, + 1: only begin of line whitespace is preserved, + 2: only begin of line whitespace and comments are preserved, + 3: all whitespace is preserved + The #pragma wave option(preserve) now supports these arguments: + [0|1|2|3|push|pop]. + +Boost V1.45.0 +- V2.1.0 +- Token pasting is well formed only as long as the formed token(s) are + pp_tokens as defined by the C++0x Standard. Until now, Wave allowed for + non-pp_tokens to be formed in --variadics mode. +- Fixed a problem, which prevented reporting /##/ in a macro definition as + invalid token pasting. +- Fixed problem preventing the skipped_token hook to be called for 'inactive' + conditional preprocessing directive tokens. Improved overall consistency in + reporting skipped tokens to the hooks function when processing conditional + preprocessing directives. Added a new test case verifying the skipped_token + hook gets called reproducibly (t_2_020.cpp). +- Fixed a problem with the pp hooks 'expanding_object_like_macro' and + 'expanding_function_like_macro', which when returning true were stopping all + preprocessing instead of just inhibiting the expansion of the macro. +- Fixed a duplicated call to the pp hook skipped_token for preprocessing + directives inside inactive conditional branches. +- Changing exception handling to fix clang++ regression errors. +- Replaced assert() with BOOST_ASSERT to pacify the Boost inspect tool. + +Boost V1.44.0 +- V2.0.6 +- Added information about the file type to iteration context. This can be + either main_file, system_header, or user_header depending whether the handled + file is the main file to preprocess, a include file opened from `#include <>`, + or a include file opened from `#include ""`. +- Added support for new Boost visibility macros. Properly exported all + exceptions, etc. + +Boost V1.43.0 +- V2.0.5 +- Fixed the wave driver application to strip leading and trailing whitespace + from macro names specified on the command line using -U. +- Fixed line number counting for lines containing nothing but whitespace + followed by a C++ comment if the next line is a pp directive. +- Fixed emitting of a #line directive after returned from an include file. +- A couple of fixes allowing to properly report the current line number in + #line directives for different whitespace preserve modes (see --preserve/-p). +- Added new preprocessing hook: emit_line_directive, allowing to customize the + format of the generated #line directive. +- Changed --line/-l command line option of the wave driver application to + accept 0, 1, and 2 as options. The option values 0 and 1 behave as before + (disable/enable the generation of #line directives), while the option value 2 + will generate the #line directive using the relative filename (instead of the + absolute filename emitted from option 1). The default option is value 1. +- Added new example: emit_custom_line_directives, demonstrating the use of the + new preprocessing hook. +- Added new preprocessing hook: found_unknown_directive, which is being invoked + whenever an unknown preprocessor directive (i.e. '#' followed by some + identifier) is detected. It allows to interpret the directive and to provide + some replacement text. +- Added new example: custom_directives demonstrating the usage of the new + preprocessing hook. +- Fixed #4113: cpp_lexer does not handle qualified backslashes correctly. +- Fixed #3106: wave on VS2010 beta compiler generates error. + +Boost V1.42.0 +- V2.0.4 +- Fixed Wave for latest changes in multi_pass iterator. + +Boost V1.41.0 +- V2.0.3 +- Switched to Re2C V0.13.5 +- Fixed --list_includes/-l command line option of the wave driver tool to + correctly indent the generated list of included files. +- Finally fixed all remaining examples. Everything seems to work fine now. +- Specifying a custom token type now works as expected. The new lexer interface + introduced in V2.0 broke this part. +- Removed old code related to pre Boost V1.31 (related to V1 of iterator + library). +- Added a new commandline option --macrocounts/-c to the Wave driver application + which lists all macro invocation counts to an optionally specified file + (default is cout). +- Fixed compilation problems caused by recent changes to the multi_pass iterator + from Spirit V2.1. +- Added the new preprocessing hooks detected_pragma_once() and + detected_include_guard() which are getting called whenever either a #pragma + once has been detected or if the include guard heuristics detected an + include guard for a particular include file. +- Added a new command line option to the wave driver tool: --listguards/-g + allowing to trace all include files which are either contain a #pragma once + or contain include guards. +- Started to elminate g++ struct aliasing warnings (more to fix, mostly in + flex_string). + +Boost V1.40.0 +- V2.0.2 +- Fixed a long standing race condition inhibiting to use Wave in multi threaded + environments. +- Incorporated the changes from latest version of the flex_string class (#2946). +- Fixed another race condition triggering problems using Wave in multi-threaded + environments. + +Boost V1.39.0 +- V2.0.1 +- Fixed Wave to compile with BOOST_FILESYSTEM_NO_DEPRECATED defined (i.e. the + library doesn't use the deprecated filesystem interface anymore). + +Boost V1.37.0 +- Updated examples to reflect the recent changes in the used multi_pass + iterator. +- Fixed documentation links still pointing to the old Boost CVS (thanks to + Jürgen Hunold for providing the patch). + +Boost V1.36.0 +- Wave Version 2.0 is a new major release introducing some breaking API changes, + preventing it to be used with Boost versions earlier than V1.36.0. The API + and hook interface have been streamlined for more consistency. See the + documentation for more details. + +- Added an additional template parameter to the context object, allowing to + specify any possibly derived type. This change propagates to the preprocessing + hooks, which now get passed the most derived context type as its first + argument allowing to access protected members in the original context type. + This fixes ticket #1752. +- Fixed a problem during parsing of #pragma wave directive, where the value + sequence contained a closing parenthesis. This caused a premature end of the + pragma value parsing. +- Fixed handling of support_option_single_line, which was ignored under certain + circumstances. +- Fixed ticket #1766: Wrong evaluation of conditional preprocessor directives + with predefined macros __FILE__, __LINE__ and __INCLUDE_LEVEL__. This bug + triggered an error in constructs like #ifndef __FILE__. Thanks to Daniel + Wadehn for reporting and supplying a patch. Added corresponding regression + test: t_2_018.cpp. +- Fixed a bug which reported a valid macro redefinition as invalid if the macro + replacement text referred to a second or higher parameter of this macro. +- Fixed a problem in the wave tool to allow two errors to occur while + preprocessing two consecutive tokens. +- Adjusted Spirit header includes to point to conform to the new directory + structure, removed support for Spirit versions earlier than V1.7. +- Started to migrate to new multi_pass iterators from Spirit V2.0. + +Boost V1.35.0 +- Wave Version 1.3 +- Changed the return value of the 'evaluated_conditional_expression()' pp hook + to 'bool' allowing to force Wave to re-evaluate the current conditional + expression. This was suggested by Felipe Magno de Almeida. +- Added a wave::context object as first parameter to all pp hook functions. + This is an interface compatibility breaking change. The new pp-hooks can be + disabled by defining the BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS + compile time constant to something not equal to zero. By default this + constant will be defined to zero for Boost V1.35.0 and newer, switching to + the new interface by default. +- Added optional support for the import keyword (needed for the C++ module + proposal). The identifier import will be recognized as a keyword, if + the compile time constant BOOST_WAVE_SUPPORT_IMPORT_KEYWORD is defined to + something not equal zero. +- Added new preprocessing hook functions: found_error_directive() and + found_warning_directive() to be called when #error/#warning directives are + encountered. This was suggested by Andreas Sæbjørnsen. +- Added a new sample to Wave: hannibal, a partial C++ parser implementation + initially written by Danny Havenith (http://havenith-verlinden.nl/hannibal/) + who agreed to add this here. Thanks! +- Added new preprocessing hook function: found_line_directive() to be called + when a #line directive is encountered. This was suggested by Andreas + Sæbjørnsen. +- Improved command line handling for the wave applet. +- Incorporated latest bug fixes for the Hannibal sample provided by Danny + Havenith. +- Added loading of a wave.cfg file from anywhere up the filesystem hierarchy + starting from the main input file for the wave driver applet up to the + root of the file system. +- Added support_option_emit_pragma_directive to allow to control at runtime, + whether unknown #pragma directives should be emitted or not. To maintain + compatibility with earlier versions this option is by default on if the + compile time constant BOOST_WAVE_EMIT_PRAGMA_DIRECTIVES was defined to + be not equal to zero and it is off otherwise. +- Enabled XML serialization support. +- Added the throw_exception preprocessing hook, which gets called for every + occurring error (whenever an exception would have been thrown). The default + of this new hook function is to throw the corresponding exception, which + reproduces the old behavior. +- Implemented a new preprocessing hook: generated_token(), which get's called + whenever a token is about to be returned form the library. This function may + be used to alter the token before it gets returned to the calling + application. +- Added a new sample 'real_positions' demonstrating the new generated_token() + preprocessing hook and showing how to use Wave with a new token type without + using a new lexer type. +- Factored out the pure lex_input_interface to simplify writing different lexer + types for Wave. +- Added the token_statistics sample showing how to use Xpressive to build a + lexer for Wave. +- Changed the list_includes sample to use a lexer which is based on the lexertl + library written by Ben Hanson (http://www.benhanson.net/lexertl.html). +- Added a new support_option: insert_whitespace, allowing to switch off + whitespace insertion which is normally (by default) in place to disambiugate + C++ tokens, which would otherwise form different tokens in the output. +- Added a new commandline option to the Wave applet: --disambiguate, allowing + to control whitespace insertion. The default value for this option is + --disambiguate=1, resembling the previous behaviour. Specifying the option + --disambiguate=0 allows to suppress whitespace insertion alltogether. +- Added pragma option values push and pop to the line, preserve and output + options allowing to store and restore the current option. The syntax is: + #pragma wave options(