Quickbook: Copy trunk libs into quickbook-dev branch.

[SVN r75213]
This commit is contained in:
Daniel James
2011-11-01 13:04:29 +00:00
10 changed files with 73 additions and 20 deletions
+28
View File
@@ -20,12 +20,40 @@ TODO (known issues):
CHANGELOG
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 <ios>
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
+4 -2
View File
@@ -381,7 +381,8 @@
<p>This functions allows to specify the language mode, in which
the <tt>Wave</tt> library should work. The possible
language modes are defined by the enumerated type <tt>language_support</tt>:</p>
<pre> <span class="keyword">enum</span> language_support {<br> <span class="comment">// support flags for C++98</span><br> support_normal = 0x01,<br> support_cpp = support_normal,<br><span class="comment"><br> // support flags for C99</span><br> support_option_long_long = 0x02,<br> support_option_variadics = 0x04,<br> support_c99 = support_option_variadics | support_option_long_long | 0x08,<br><span class="comment"><br> // the mask for the main language settings</span><br> support_option_mask = 0xFF80,<br><br><span class="comment"> // additional fine tuning of the general behavior</span><br> support_option_insert_whitespace = 0x0080,<br> support_option_preserve_comments = 0x0100,<br> support_option_no_character_validation = 0x0200,<br> support_option_convert_trigraphs = 0x0400,<br> support_option_single_line = 0x0800,<br> support_option_prefer_pp_numbers = 0x1000,<br> support_option_emit_line_directives = 0x2000,<br> support_option_include_guard_detection = 0x4000,<br> support_option_emit_pragma_directives = 0x8000<br> };</pre>
<pre> <span class="keyword">enum</span> language_support {<br> <span class="comment">// support flags for C++98</span><br> support_normal = 0x01,<br> support_cpp = support_normal,<br><span class="comment"><br> // support flags for C99</span><br> support_option_long_long = 0x02,<br> support_option_variadics = 0x04,<br> support_c99 = support_option_variadics | support_option_long_long | 0x08,<br><span class="comment"><br> // the mask for the main language settings</span><br> support_option_mask = 0xFFB0,<br><br><span class="comment"> // additional fine tuning of the general behavior</span>
support_option_emit_contline = 0x0040,<br> support_option_insert_whitespace = 0x0080,<br> support_option_preserve_comments = 0x0100,<br> support_option_no_character_validation = 0x0200,<br> support_option_convert_trigraphs = 0x0400,<br> support_option_single_line = 0x0800,<br> support_option_prefer_pp_numbers = 0x1000,<br> support_option_emit_line_directives = 0x2000,<br> support_option_include_guard_detection = 0x4000,<br> support_option_emit_pragma_directives = 0x8000<br> };</pre>
<p>When used with <tt>support_option_variadics</tt> the support for variadics, placemarkers and the <tt>operator&nbsp;_Pragma()</tt> is enabled in normal C++ mode. When used with the <tt>support_option_long_long</tt> the support for long long suffixes is enabled in C++ mode. </p>
<p>The <tt>support_c99</tt> switches on the C99
language support, which enables variadics, placemarkers, the <tt>operator&nbsp;_Pragma</tt> and long long suffixes by default. Additionally it disables the C++
@@ -444,6 +445,7 @@
the <tt>BOOST_WAVE_EMIT_PRAGMA_DIRECTIVES</tt> is defined
during compilation to a value not equal to zero (see <a href="compiletime_config.html">here</a> for more
information). </li>
<li>If the <tt>support_option_emit_contlines</tt> flag is set, the <tt>Wave</tt> library will emit all backslash newline sequences encountered in the input. It will generate a <tt>T_CONTLINE</tt> token for each of those character sequences. Please note that this option is supported by the custom SLex lexer module only. See the cpp_tokens example for a working example.</li>
</ul>
<p><strong> </strong>If the parameter <tt>reset_macros</tt> is true the <tt>set_language</tt> function internally
resets the list of defined macros, so please be careful not to call it
@@ -476,7 +478,7 @@
<span class="updated"></span>
<p class="copyright"><span class="updated">Last
updated:
<!-- #BeginDate format:fcAm1m -->Sunday, October 12, 2008 20:14<!-- #EndDate -->
<!-- #BeginDate format:fcAm1m -->Saturday, August 6, 2011 20:22<!-- #EndDate -->
</span> </p>
<p>&nbsp;</p>
</body>
+2 -2
View File
@@ -10,7 +10,7 @@
<tbody>
<tr>
<td width="21">&nbsp;</td>
<td width="885"><font size="6" face="Verdana, Arial, Helvetica, sans-serif"><b>Wave V2.0</b></font></td>
<td width="885"><font size="6" face="Verdana, Arial, Helvetica, sans-serif"><b>Wave V2.3</b></font></td>
<td width="96"><a href="http://www.boost.org"><img src="doc/theme/wave.gif" align="right" border="0" height="68" width="93"></a></td>
</tr>
</tbody>
@@ -100,7 +100,7 @@
http://www.boost.org/LICENSE_1_0.txt) </font> </p>
<span class="updated"></span>
<p class="copyright"><span class="updated">Last updated:
<!-- #BeginDate format:fcAm1m -->Tuesday, July 29, 2008 20:31<!-- #EndDate -->
<!-- #BeginDate format:fcAm1m -->Saturday, August 6, 2011 20:16<!-- #EndDate -->
</span></p>
</body>
</html>
+11 -6
View File
@@ -52,16 +52,20 @@ main(int argc, char *argv[])
return 1;
}
// read the file to analyse into a std::string
// read the file to analyse into a std::string
ifstream infile(argv[1]);
string teststr;
if (infile.is_open()) {
infile.unsetf(std::ios::skipws);
string line;
for (getline(infile, line); infile.good(); getline(infile, line)) {
teststr += line;
teststr += '\n';
}
#if defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
// this is known to be very slow for large files on some systems
copy (std::istream_iterator<char>(infile),
std::istream_iterator<char>(),
std::inserter(teststr, teststr.end()));
#else
teststr = std::string(std::istreambuf_iterator<char>(infile.rdbuf()),
std::istreambuf_iterator<char>());
#endif
}
else {
teststr = argv[1];
@@ -90,6 +94,7 @@ main(int argc, char *argv[])
ctx.set_language(boost::wave::support_cpp0x);
ctx.set_language(boost::wave::enable_preserve_comments(ctx.get_language()));
ctx.set_language(boost::wave::enable_prefer_pp_numbers(ctx.get_language()));
ctx.set_language(boost::wave::enable_emit_contnewlines(ctx.get_language()));
context_type::iterator_type first = ctx.begin();
context_type::iterator_type last = ctx.end();
@@ -37,7 +37,11 @@
typedef boost::wave::cpplexer::slex_token<> token_type;
template struct boost::wave::grammars::intlit_grammar_gen<token_type>;
template struct boost::wave::grammars::chlit_grammar_gen<token_type>;
#if BOOST_WAVE_WCHAR_T_SIGNEDNESS == BOOST_WAVE_WCHAR_T_AUTOSELECT || \
BOOST_WAVE_WCHAR_T_SIGNEDNESS == BOOST_WAVE_WCHAR_T_FORCE_SIGNED
template struct boost::wave::grammars::chlit_grammar_gen<int, token_type>;
#endif
template struct boost::wave::grammars::chlit_grammar_gen<unsigned int, token_type>;
#endif // #if BOOST_WAVE_SEPARATE_GRAMMAR_INSTANTIATION != 0
+7 -5
View File
@@ -382,7 +382,7 @@ lexer<IteratorT, PositionT>::init_data[INIT_DATA_SIZE] =
#endif
TOKEN_DATA(SPACE, "[ \t\v\f]+"),
// TOKEN_DATA(SPACE2, "[\\v\\f]+"),
TOKEN_DATA(CONTLINE, "\\" "\\n"),
TOKEN_DATA(CONTLINE, Q("\\") "\n"),
TOKEN_DATA(NEWLINE, NEWLINEDEF),
TOKEN_DATA(POUND_POUND, "##"),
TOKEN_DATA(POUND_POUND_ALT, Q("%:") Q("%:")),
@@ -637,8 +637,10 @@ public:
id = T_EOF; // end of input reached
string_type token_val(value.c_str());
if (T_CONTLINE != id) {
if (boost::wave::need_emit_contnewlines(language) ||
T_CONTLINE != id)
{
// The cast should avoid spurious warnings about missing case labels
// for the other token ids's.
switch (static_cast<unsigned int>(id)) {
@@ -673,7 +675,7 @@ public:
pos.get_line(), pos.get_column(), pos.get_file());
}
break;
case T_LONGINTLIT: // supported in C99 and long_long mode
if (!boost::wave::need_long_long(language)) {
// syntax error: not allowed in C++ mode
@@ -706,7 +708,7 @@ public:
at_eof = true;
token_val.clear();
break;
case T_OR_TRIGRAPH:
case T_XOR_TRIGRAPH:
case T_LEFTBRACE_TRIGRAPH:
+1 -1
View File
@@ -92,7 +92,7 @@ public:
stream << std::setw(16)
<< std::left << boost::wave::get_token_name(id) << " ("
<< "#" << token_id(ID_FROM_TOKEN(*this))
<< "#" << token_id(BASEID_FROM_TOKEN(*this))
<< ") at " << get_position().get_file() << " ("
<< std::setw(3) << std::right << get_position().get_line() << "/"
<< std::setw(2) << std::right << get_position().get_column()
@@ -37,7 +37,11 @@
typedef boost::wave::cpplexer::lex_token<> token_type;
template struct boost::wave::grammars::intlit_grammar_gen<token_type>;
template struct boost::wave::grammars::chlit_grammar_gen<token_type>;
#if BOOST_WAVE_WCHAR_T_SIGNEDNESS == BOOST_WAVE_WCHAR_T_AUTOSELECT || \
BOOST_WAVE_WCHAR_T_SIGNEDNESS == BOOST_WAVE_WCHAR_T_FORCE_SIGNED
template struct boost::wave::grammars::chlit_grammar_gen<int, token_type>;
#endif
template struct boost::wave::grammars::chlit_grammar_gen<unsigned int, token_type>;
#endif // #if BOOST_WAVE_SEPARATE_GRAMMAR_INSTANTIATION != 0
@@ -36,7 +36,11 @@
typedef lex_token<> token_type;
template struct boost::wave::grammars::intlit_grammar_gen<token_type>;
template struct boost::wave::grammars::chlit_grammar_gen<token_type>;
#if BOOST_WAVE_WCHAR_T_SIGNEDNESS == BOOST_WAVE_WCHAR_T_AUTOSELECT || \
BOOST_WAVE_WCHAR_T_SIGNEDNESS == BOOST_WAVE_WCHAR_T_FORCE_SIGNED
template struct boost::wave::grammars::chlit_grammar_gen<int, token_type>;
#endif
template struct boost::wave::grammars::chlit_grammar_gen<unsigned int, token_type>;
#endif // #if BOOST_WAVE_SEPARATE_GRAMMAR_INSTANTIATION != 0
+5 -1
View File
@@ -41,7 +41,11 @@ typedef boost::wave::cpplexer::lex_token<> token_type;
// no need to change anything below
template struct boost::wave::grammars::intlit_grammar_gen<token_type>;
template struct boost::wave::grammars::chlit_grammar_gen<token_type>;
#if BOOST_WAVE_WCHAR_T_SIGNEDNESS == BOOST_WAVE_WCHAR_T_AUTOSELECT || \
BOOST_WAVE_WCHAR_T_SIGNEDNESS == BOOST_WAVE_WCHAR_T_FORCE_SIGNED
template struct boost::wave::grammars::chlit_grammar_gen<int, token_type>;
#endif
template struct boost::wave::grammars::chlit_grammar_gen<unsigned int, token_type>;
// the suffix header occurs after all of the code
#ifdef BOOST_HAS_ABI_HEADERS