Skip to content

Commit

Permalink
Merge branch 'develop' into feature/check-macro-naming
Browse files Browse the repository at this point in the history
  • Loading branch information
jefftrull committed Jun 27, 2020
2 parents 5464ade + bacb94f commit b6c7d31
Show file tree
Hide file tree
Showing 94 changed files with 295 additions and 289 deletions.
24 changes: 15 additions & 9 deletions ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ TODO (known issues):

CHANGELOG

Boost V1.74:
- Fixed TRAC #10733: Hooks not called for expanding specific predefined macros
- Fixed #58: C++11 long long literals must use consistent case
- Repaired two samples and added a new one for macro naming enforcement
- Implemented C++20 changes for variadic macros, including __VA_OPT__

Boost V1.73:
- Fixed TRAC #7822: waveidl sample does not use the IDL lexer
- Fixed TRAC #9874: Turning off 'include_next' support breaks include
Expand All @@ -31,11 +37,11 @@ Boost V1.55:
- Fixed #9098: Wave driver option --c++0x invalid

Boost V1.54:
- Fixed #8478: Make Boost.wave compatible with Clang's -Wimplicit-fallthrough
- 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
- Fixed a problem with context<>::add_macro_definition which sometimes
appended a superfluous T_EOF to the macro replacement list.

Boost V1.52.0:
Expand Down Expand Up @@ -340,7 +346,7 @@ Boost V1.35.0
- Switched to Re2C V0.11.2
- Added const specifiers to some of the context member functions.
- Fixed a problem in the SLex C++ lexer (cpp_tokens example).
- Fixed a runtime problem in the Re2C generated lexers when feeded with
- Fixed a runtime problem in the Re2C generated lexers when fed with
empty input files (thanks to Leo Davis for reporting and providing a patch).
- Added the is_eoi() function to token classes, returning true if the token
has been initialized to be the end of input token (T_EOI) (thanks to Ovanes
Expand Down Expand Up @@ -397,7 +403,7 @@ Boost V1.35.0
- Fixed a bug in the pp hook expanding_function_like_macro(), where the seqend
parameter was set to the first token after the closing parenthesis instead of
pointing at it.
- Added the BOOST_WAVE_SUPPORT_THREADING allowing to explicitely control
- Added the BOOST_WAVE_SUPPORT_THREADING allowing to explicitly control
whether the Wave library is built with threading support enabled. If not
defined the build settings will be picked up from the Boost build environment
(BOOST_HAS_THREADS).
Expand Down Expand Up @@ -651,7 +657,7 @@ Sat Dec 24 13:33:53 CST 2005
- Added the possibility to configure the command keyword for the wave specific
#pragma directives. It is now possible to define a string literal via
BOOST_WAVE_PRAGMA_COMMAND, which will be recognized and all corresponding
#pragma's are dispatched to the interpret_pragma() preprocessing hook.
#pragmas are dispatched to the interpret_pragma() preprocessing hook.
The default value for BOOST_WAVE_PRAGMA_COMMAND is "wave", just to ensure
complete backward compatibility.
- Added missing #pragma warning(pop) directives.
Expand Down Expand Up @@ -1184,7 +1190,7 @@ Tue Aug 5 10:04:00 2003
on the line.
- Added the #pragma wave timer() directive to allow rough timings during
processing. This is done on top of a new callback hook for unrecognized
#pragma's, which allows to easily add new pragma commands without changing
#pragmas, which allows to easily add new pragma commands without changing
the Wave library.
- Fixed a bug in the whitespace insertion engine, which prevented the insertion
of a whitespace token in between two consecutive identifier tokens or a
Expand Down Expand Up @@ -1425,7 +1431,7 @@ Sun May 4 10:48:53 2003
- Remove one specialization of the macro expansion engine. It gets instantiated
only twice now (for the main input iterator and for list<>'s of tokens.
- Simplified the required explicit specialization of the defined_grammar
template. It has to be explicitely instantiated by providing the token type
template. It has to be explicitly instantiated by providing the token type
only (just as for the explicit instantiations of the other grammars).

Fri May 2 22:44:27 2003
Expand Down Expand Up @@ -1524,7 +1530,7 @@ Sun Mar 30 20:40:17 2003

Sun Mar 30 08:30:12 2003
- Changed the tracing format to be more readable.
- Changed the tracing #pragma's to
- Changed the tracing #pragmas to
enable tracing: #pragma wave trace(enable)
disable tracing: #pragma wave trace(disable)
or
Expand Down Expand Up @@ -1901,7 +1907,7 @@ complete rewrite of the existing code base. The main differences are:
- The preprocessing of include files isn't implemented through recursion
anymore. This follows directly from the first change. As a result of this
change the internal error handling is simplified.
- The C preprocessor iterator itself is feeded by a new unified C++ lexer
- The C preprocessor iterator itself is fed by a new unified C++ lexer
iterator. BTW, this C++ lexer iterator could be used standalone and is not
tied to the C preprocessor. There are two different C++ lexers implemented
now, which are functionally completely identical. These expose a similar
Expand Down
4 changes: 2 additions & 2 deletions doc/class_ref_ctxpolicy_depr.html
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ <h2><a name="header_synopsis"></a>Header <a href="http://svn.boost.org/trac/boos

<span class="keyword">void</span> <a href="class_reference_ctxpolicy.html#returning_from_include_file">returning_from_include_file</a>();

<span class="comment">// interpretation of #pragma's of the form </span>
<span class="comment">// interpretation of #pragmas of the form </span>
<span class="comment">// 'wave option[(value)]'</span>
<span class="keyword">template</span> &lt;<span class="keyword">typename</span> ContextT, <span class="keyword">typename</span> ContainerT&gt;
bool <a href="class_reference_ctxpolicy.html#interpret_pragma">interpret_pragma</a>(ContextT <span class="keyword">const</span> &amp;ctx, ContainerT &amp;pending,
Expand Down Expand Up @@ -264,7 +264,7 @@ <h3>Include file tracing functions</h3>
<p>The function <tt>returning_from_include_file</tt> is called whenever an
included file is about to be closed after it's processing is complete.</p>
</blockquote>
<h3>Interpretation of #pragma's</h3>
<h3>Interpretation of #pragmas</h3>
<p><strong><a name="interpret_pragma"></a>interpret_pragma</strong></p>
<pre> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ContextT, <span class="keyword">typename</span> ContainerT&gt;
bool <a href="class_reference_ctxpolicy.html#interpret_pragma">interpret_pragma</a>(ContextT <span class="keyword">const</span> &amp;ctx, ContainerT &amp;pending,
Expand Down
18 changes: 9 additions & 9 deletions doc/class_reference_context.html
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ <h2><a name="public_typedefs"></a>Public
<tbody>
<tr>
<td colspan="2" class="table_title"><b>Public
typedef's defined by the <tt>boost::wave::context</tt> class </b></td>
typedefs defined by the <tt>boost::wave::context</tt> class </b></td>
</tr>
<tr>
<td class="table_cells"><code>iterator_type</code></td>
Expand Down Expand Up @@ -185,7 +185,7 @@ <h3>Iterator interface</h3>
<blockquote>
<p>Initializes and returns the starting iterator for the
preprocessed token stream. The iterator pair given by the parameters&nbsp; <tt>[first,&nbsp;last)</tt> specifies the input sequence to preprocess. The first version of this
function uses the iinput stream as specified by the constructor.&nbsp;</p>
function uses the input stream as specified by the constructor.&nbsp;</p>
</blockquote>
<p><b><a name="iterator_interface_end" id="iterator_interface_end"></a></b><b>end</b></p>
<pre> iterator_type end() <span class="keyword">const</span>;</pre>
Expand Down Expand Up @@ -249,7 +249,7 @@ <h3>Maintain include paths</h3>
<pre> size_t get_iteration_depth() <span class="keyword">const</span>;</pre>
<blockquote>
<p>Returns the actual include iteration depth, i.e. the current
number of include levels to be poped from the include iteration
number of include levels to be popped from the include iteration
context, before the main (topmost) iteration context is reached.</p>
</blockquote>
<h3>Maintain defined macros</h3>
Expand Down Expand Up @@ -392,7 +392,7 @@ <h3>Control extended options</h3>
<li>If the <tt>support_option_insert_whitespace</tt> flag is set,&nbsp;the <tt>Wave</tt> library &nbsp;inserts
additional whitespace between tokens where the concatenated string
representation of the two tokens would form another valid C++ token.
This is very importatnt to avoid mis-interpretations of the generated
This is very important to avoid mis-interpretations of the generated
output if it is going to be processed by a C++ compiler afterwards.
&nbsp; </li>
<li>If the <tt>support_option_preserve_comments</tt> flag is set, the <tt>Wave</tt> library preserves almost
Expand All @@ -406,7 +406,7 @@ <h3>Control extended options</h3>
<li>If the <tt>support_option_convert_trigraphs</tt> flag is set, the <tt>Wave</tt> library replaces all
occurrences of trigraph characters with their non-trigraph character
sequence (i.e. <tt>'??='</tt> is replaced by <tt>'#'</tt> etc.) . By default no replacement is performed. </li>
<li>If the <tt>support_option_single_line</tt> flag is set, the <tt>Wave</tt> library will now reprot an
<li>If the <tt>support_option_single_line</tt> flag is set, the <tt>Wave</tt> library will now report an
error if the last line of the processed input is not terminated by a
new line. This flag is merely used for internal purposes by the testing
framework and will be rarely used by a user of the library.</li>
Expand All @@ -417,7 +417,7 @@ <h3>Control extended options</h3>
internal purposes and will be rarely reset by a user of the library. </li>
<li>If the <span class="keyword">support_option_emit_line_directives</span> flag is set, the <tt>Wave</tt> library will emit <span class="preprocessor">#line</span> directives in the
generated token stream, if appropriate. This flag is set by default, to
prevent the library from generating <span class="preprocessor">#line</span> directives it must be reset explicitely. </li>
prevent the library from generating <span class="preprocessor">#line</span> directives it must be reset explicitly. </li>
<li>If the <span class="keyword">support_option_include_guard_detection</span> flag is set, the <tt>Wave</tt> library will try to
automatically identify include guards during the processing of a
included file. Files which contained include guards are handled as if
Expand All @@ -435,12 +435,12 @@ <h3>Control extended options</h3>
final <span class="preprocessor">#endif</span> for
the include guard to be recognized.</p>
<p>This flag is on by default, so if you do not want the
library to automatically reconize include guards you will need to reset
this explicitely. </p>
library to automatically recognize include guards you will need to reset
this explicitly. </p>
</blockquote>
<ul>
<li>If the <tt>support_option_emit_pragma_directives</tt> flag is set, the <tt>Wave</tt> library will emit all
unknown <span class="preprocessor">#pragma</span> directives to the output. This suport option will be recognized only if
unknown <span class="preprocessor">#pragma</span> directives to the output. This support option will be recognized only if
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>
Expand Down
14 changes: 7 additions & 7 deletions doc/class_reference_ctxpolicy.html
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ <h2><b><a name="introduction"></a>Introduction</b></h2>
<ul>
<li>a preprocessor directive has been recognized, </li>
<li>a token is about to be returned from the preprocessor, </li>
<li>a macro get's defined or undefined, </li>
<li>a macro gets defined or undefined, </li>
<li>a macro has been expanded or rescanned,</li>
<li>an include file has been opened or closed, </li>
<li>a conditional expression was evaluated,</li>
Expand All @@ -74,7 +74,7 @@ <h2><a name="header_synopsis"></a>Header <a href="http://svn.boost.org/trac/boos
<span class="keyword">template</span> &lt;<span class="keyword">typename</span> ContextT, <span class="keyword">typename</span> TokenT&gt;<br> <span class="keyword">void</span> <a href="#detected_pragma_once">detected_pragma_once</a>(ContextT <span class="keyword">const</span> &amp;ctx,
TokenT <span class="keyword">const</span>&amp; pragma_token,
std::string <span class="keyword">const</span>&amp; filename);<br><br>
<span class="comment">// interpretation of #pragma's of the form </span>
<span class="comment">// interpretation of #pragmas of the form </span>
<span class="comment">// 'wave option[(value)]'</span>
<span class="keyword">template</span> &lt;<span class="keyword">typename</span> ContextT, <span class="keyword">typename</span> ContainerT&gt;<br> <span class="keyword">bool</span> <a href="class_reference_ctxpolicy.html#interpret_pragma">interpret_pragma</a>(ContextT <span class="keyword">const</span> &amp;ctx, ContainerT &amp;pending, <br> <span class="keyword">typename</span> ContextT::token_type <span class="keyword">const</span> &amp;option, <br> ContainerT <span class="keyword">const</span> &amp;values, <br> <span class="keyword">typename</span> ContextT::token_type <span class="keyword">const</span> &amp;pragma_token);<br><br>
<span class="comment">// macro definition hooks</span>
Expand Down Expand Up @@ -326,7 +326,7 @@ <h3>Include file tracing functions</h3>
(this is relative to the directory of the currently processed file or a
absolute path depending on the paths given as the include search paths).</p>
</blockquote>
<h3>Interpretation of #pragma's</h3>
<h3>Interpretation of #pragmas</h3>
<p><strong><a name="interpret_pragma"></a>interpret_pragma</strong></p>
<pre> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ContextT, <span class="keyword">typename</span> ContextT, <span class="keyword">typename</span> ContainerT&gt;<br> bool <a href="class_reference_ctxpolicy.html#interpret_pragma">interpret_pragma</a>(ContextT <span class="keyword">const</span> &amp;ctx, ContainerT &amp;pending, <br> <span class="keyword">typename</span> ContextT::token_type <span class="keyword">const</span> &amp;option, <br> ContainerT <span class="keyword">const</span> &amp;values, <br> <span class="keyword">typename</span> ContextT::token_type<span class="keyword"> const</span> &amp;pragma_token);<br>
</pre>
Expand Down Expand Up @@ -378,7 +378,7 @@ <h3>Macro definition </h3>
<p>The parameter <tt>name</tt> holds the token of the macro which definition was removed.<br>
</p>
</blockquote>
<p><strong><a name="found_warning_directive" id="found_warning_directive"></a>found_warning_drective</strong></p>
<p><strong><a name="found_warning_directive" id="found_warning_directive"></a>found_warning_directive</strong></p>
<pre> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ContextT, <span class="keyword">typename</span> ContainerT&gt;<br> <span class="keyword">bool</span> <a href="class_reference_ctxpolicy.html#found_warning_directive">found_warning_directive</a>(ContextT <span class="keyword">const</span>&amp; ctx, <br> ContainerT <span class="keyword">const</span> &amp;message);<br>
</pre>
<blockquote>
Expand All @@ -390,7 +390,7 @@ <h3>Macro definition </h3>
<p>If the return value is <tt>false</tt>, the library throws a preprocessor
exception of the type <code>warning_directive</code> (normal execution continues), if the return value is <tt>true</tt> the execution continues as if no <span class="preprocessor">#warning</span> directive has been found and the overall directive is replaced by a single newline. </p>
</blockquote>
<p><strong><a name="found_error_directive" id="found_error_directive"></a>found_error_drective</strong></p>
<p><strong><a name="found_error_directive" id="found_error_directive"></a>found_error_directive</strong></p>
<pre> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ContextT, <span class="keyword">typename</span> ContainerT&gt;<br> <span class="keyword">bool</span> <a href="class_reference_ctxpolicy.html#found_error_directive">found_error_directive</a>(ContextT <span class="keyword">const</span>&amp; ctx, <br> ContainerT <span class="keyword">const</span> &amp;message);<br>
</pre>
<blockquote>
Expand All @@ -400,8 +400,8 @@ <h3>Macro definition </h3>
<p>If the return value is <tt>false</tt>, the library throws a preprocessor
exception of the type <code>error_directive</code> (normal execution continues), if the return value is <tt>true</tt> the execution continues as if no <span class="preprocessor">#error</span> directive has been found and the overall directive is replaced by a single newline. </p>
</blockquote>
<p><strong><a name="found_line_directive" id="found_line_directive"></a>found_line_drective</strong></p>
<pre> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ContextT, <span class="keyword">typename</span> ContainerT&gt;<br> <span class="keyword">void</span> <a href="class_reference_ctxpolicy.html#found_error_directive"><strong>found_line_drective</strong></a>(ContextT <span class="keyword">const</span>&amp; ctx, <br> ContainerT <span class="keyword">const</span> &amp;arguments, <span class="keyword">unsigned int</span> line,<br> std::string <span class="keyword">const</span>&amp; filename);
<p><strong><a name="found_line_directive" id="found_line_directive"></a>found_line_directive</strong></p>
<pre> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ContextT, <span class="keyword">typename</span> ContainerT&gt;<br> <span class="keyword">void</span> <a href="class_reference_ctxpolicy.html#found_error_directive"><strong>found_line_directive</strong></a>(ContextT <span class="keyword">const</span>&amp; ctx, <br> ContainerT <span class="keyword">const</span> &amp;arguments, <span class="keyword">unsigned int</span> line,<br> std::string <span class="keyword">const</span>&amp; filename);
</pre>
<blockquote>
<p>The function <tt>found_line_directive </tt> is called whenever a <span class="preprocessor">#line </span>directive has been encountered. Note, this function was added for the Boost V1.35.0 release. </p>
Expand Down
2 changes: 1 addition & 1 deletion doc/class_reference_inptpolcy.html
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ <h3><a name="template_parameters"></a>Template Parameters</h3>
which is used to access the underlying input stream has to be derived through
a typedef as shown. The iterator pair to initialize (which is accessible as
<tt>iter_ctx.first</tt> and <tt>iter_ctx.last</tt>) has to initialized from
an abritrary iterator type, representing the actual input stream.</p>
an arbitrary iterator type, representing the actual input stream.</p>
<h3><a name="member_functions"></a>Member Functions</h3>
<p><a name="init_iterators"></a><b>init_iterators</b></p>
<pre> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Position&gt;
Expand Down
4 changes: 2 additions & 2 deletions doc/class_reference_lexer.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ <h2><a name="public_typedefs" id="public_typedefs"></a>Public Typedefs</h2>
<p>Besides the typedefs mandated for a <tt>forward_iterator</tt> by the C++ standard every lexer to be used with the <tt>Wave</tt> library should define the following typedefs: </p>
<table width="90%" border="0" align="center">
<tr>
<td colspan="2" class="table_title"><b>Public typedef's defined by the <tt>boost::wave::context</tt> class </b></td>
<td colspan="2" class="table_title"><b>Public typedefs defined by the <tt>boost::wave::context</tt> class </b></td>
</tr>
<tr>
<td width="32%" class="table_cells"><code>token_type</code></td>
Expand All @@ -82,7 +82,7 @@ <h2><a name="member_functions"></a>Member functions</h2>
<p>The second constructor should construct a lexer iterator, which may be used as a iterator traversing over the token sequence, generated by the lexer class.</p>
<p>The pair of iterators <tt>first</tt> and <tt>last</tt> should represent the input stream to be tokenized by the given lexer class. </p>
<p>The parameter <tt>pos</tt> contains the initial position information to be used for token generation.</p>
<p>The parameter <tt>language</tt> controls the reuqired mode with which the lexer should be initialised. </p>
<p>The parameter <tt>language</tt> controls the required mode with which the lexer should be initialised. </p>
</blockquote>
<table border="0">
<tr>
Expand Down
Loading

0 comments on commit b6c7d31

Please sign in to comment.