diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2017-09-13 11:05:34 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2017-09-13 11:06:28 +0900 |
commit | 34bd32e225e2a8a94104489b31c42e5801cc1f4a (patch) | |
tree | d021b579a0c190354819974e1eaf0baa54b551f3 /doc/html/metaparse | |
parent | f763a99a501650eff2c60288aa6f10ef916d769e (diff) | |
download | boost-34bd32e225e2a8a94104489b31c42e5801cc1f4a.tar.gz boost-34bd32e225e2a8a94104489b31c42e5801cc1f4a.tar.bz2 boost-34bd32e225e2a8a94104489b31c42e5801cc1f4a.zip |
Imported Upstream version 1.63.0upstream/1.63.0
Change-Id: Iac85556a04b7e58d63ba636dedb0986e3555714a
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'doc/html/metaparse')
-rw-r--r-- | doc/html/metaparse/getting_started_with_boost_metap.html | 13 | ||||
-rw-r--r-- | doc/html/metaparse/performance.html | 231 | ||||
-rw-r--r-- | doc/html/metaparse/preface.html | 2 | ||||
-rw-r--r-- | doc/html/metaparse/reference.html | 215 | ||||
-rw-r--r-- | doc/html/metaparse/related_publications_and_blogs.html | 4 | ||||
-rw-r--r-- | doc/html/metaparse/the_design_of_the_library.html | 24 | ||||
-rw-r--r-- | doc/html/metaparse/user_manual.html | 2 | ||||
-rw-r--r-- | doc/html/metaparse/versioning.html | 2 |
8 files changed, 312 insertions, 181 deletions
diff --git a/doc/html/metaparse/getting_started_with_boost_metap.html b/doc/html/metaparse/getting_started_with_boost_metap.html index d9a9da8893..1069921544 100644 --- a/doc/html/metaparse/getting_started_with_boost_metap.html +++ b/doc/html/metaparse/getting_started_with_boost_metap.html @@ -6,7 +6,7 @@ <link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> <link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> -<link rel="up" href="../metaparse.html" title="Chapter 22. Boost.Metaparse"> +<link rel="up" href="../metaparse.html" title="Chapter 24. Boost.Metaparse"> <link rel="prev" href="preface.html" title="Preface"> <link rel="next" href="user_manual.html" title="User manual"> </head> @@ -86,10 +86,9 @@ text into a type. These types can later be processed by further template metaprograms. While you are working on your parsers, you'll probably want to look at the result of parsing a test input. This tutorial assumes that - you can use <a href="https://github.com/sabel83/metashell" target="_top">Metashell</a>. - Since the <a href="http://abel.web.elte.hu/shell/metashell.html" target="_top">online - demo</a> makes the Boost headers available, you can use that in the - tutorial as well. + you can use <a href="http://metashell.org" target="_top">Metashell</a>. Since + the <a href="http://metashell.org/about/demo" target="_top">online demo</a> makes + the Boost headers available, you can use that in the tutorial as well. </p> <p> If you install Metashell on your computer, make sure that you have the @@ -611,8 +610,8 @@ <p> What you get might look strange to you. It is a <code class="computeroutput"><span class="identifier">vector</span></code> from [Boost.MPL]( http://boost.org/libs/mpl). What you can see in the shell - is the way this vector is represented. Metashell offers [pretty printing]( - https://github.com/sabel83/metashell#data-structures-of-boostmpl) for <a href="http://boost.org/libs/mpl" target="_top">Boost.MPL</a> containers: + is the way this vector is represented. Metashell offers [pretty printing](metashell.org/manual/getting_started#data-structures-of-boostmpl) + for <a href="http://boost.org/libs/mpl" target="_top">Boost.MPL</a> containers: </p> <pre class="programlisting"><span class="special">></span> <span class="special">#</span><span class="identifier">include</span> <span class="special"><</span><span class="identifier">metashell</span><span class="special">/</span><span class="identifier">formatter</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> </pre> diff --git a/doc/html/metaparse/performance.html b/doc/html/metaparse/performance.html index 5d267a3bb3..c519dd30fd 100644 --- a/doc/html/metaparse/performance.html +++ b/doc/html/metaparse/performance.html @@ -6,7 +6,7 @@ <link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> <link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> -<link rel="up" href="../metaparse.html" title="Chapter 22. Boost.Metaparse"> +<link rel="up" href="../metaparse.html" title="Chapter 24. Boost.Metaparse"> <link rel="prev" href="versioning.html" title="Versioning"> <link rel="next" href="the_design_of_the_library.html" title="The design of the library"> </head> @@ -27,20 +27,88 @@ <div class="titlepage"><div><div><h2 class="title" style="clear: both"> <a name="metaparse.performance"></a><a class="link" href="performance.html" title="Performance">Performance</a> </h2></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="performance.html#metaparse.performance.benchmarks_of_boost_metaparse_st">Benchmarks + of BOOST_METAPARSE_STRING</a></span></dt> +<dt><span class="section"><a href="performance.html#metaparse.performance.measuring_printf">Measuring printf</a></span></dt> +<dt><span class="section"><a href="performance.html#metaparse.performance.further_measurements">Further measurements</a></span></dt> +</dl></div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="metaparse.performance.benchmarks_of_boost_metaparse_st"></a><a name="BOOST_METAPARSE_STRING_benchmark"></a><a class="link" href="performance.html#metaparse.performance.benchmarks_of_boost_metaparse_st" title="Benchmarks of BOOST_METAPARSE_STRING">Benchmarks + of BOOST_METAPARSE_STRING</a> +</h3></div></div></div> +<div class="toc"><dl class="toc"> +<dt><span class="section"><a href="performance.html#metaparse.performance.benchmarks_of_boost_metaparse_st.increasing_string_length">Increasing + string length</a></span></dt> +<dt><span class="section"><a href="performance.html#metaparse.performance.benchmarks_of_boost_metaparse_st.increasing_number_of_strings">Increasing + number of strings</a></span></dt> +<dt><span class="section"><a href="performance.html#metaparse.performance.benchmarks_of_boost_metaparse_st.increasing_string_length_limit">Increasing + string length limit</a></span></dt> +</dl></div> +<p> + Measurements related to the performance of the <a class="link" href="reference.html#BOOST_METAPARSE_STRING"><code class="computeroutput"><span class="identifier">BOOST_METAPARSE_STRING</span></code></a> macro. + </p> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="metaparse.performance.benchmarks_of_boost_metaparse_st.increasing_string_length"></a><a class="link" href="performance.html#metaparse.performance.benchmarks_of_boost_metaparse_st.increasing_string_length" title="Increasing string length">Increasing + string length</a> +</h4></div></div></div> <p> - Parsers work at compile-time, thus their performance affects compilation speed. - This section shows measurements of compilation time using Metaparse. The measurements - were done on a Linux laptop with an 1.6 GHz Atom processor and 1 GB memory. - The measurements were done using GCC 4.6.1 with <code class="computeroutput"><span class="special">-</span><span class="identifier">std</span><span class="special">=</span><span class="identifier">c</span><span class="special">++</span><span class="number">0</span><span class="identifier">x</span></code> - and no optimisation. Compilation speed was measured using the <code class="computeroutput"><span class="identifier">time</span></code> utility. - </p> + 128 strings with increasing length. Measured on a Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty + host with 16 GB memory. Compiler used: gcc 4.8.5. + </p> +<p> + <span class="inlinemediaobject"><img src="../images/metaparse/length128_gcc_4.8.5.png" width="100%"></span> + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="metaparse.performance.benchmarks_of_boost_metaparse_st.increasing_number_of_strings"></a><a class="link" href="performance.html#metaparse.performance.benchmarks_of_boost_metaparse_st.increasing_number_of_strings" title="Increasing number of strings">Increasing + number of strings</a> +</h4></div></div></div> <p> - To measure a non-trivial parser, the <code class="computeroutput"><span class="identifier">printf</span></code> - example program were used for measurements. Here is a list of the <code class="computeroutput"><span class="identifier">printf</span></code> calls and their compilation speed - (<code class="computeroutput"><span class="identifier">user</span></code> output of <code class="computeroutput"><span class="identifier">time</span></code>): - </p> + Increasing number of strings with 64 length. Measured on a Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty + host with 16 GB memory. Compiler used: gcc 4.8.5. + </p> +<p> + <span class="inlinemediaobject"><img src="../images/metaparse/number_gcc_4.8.5.png" width="100%"></span> + </p> +</div> +<div class="section"> +<div class="titlepage"><div><div><h4 class="title"> +<a name="metaparse.performance.benchmarks_of_boost_metaparse_st.increasing_string_length_limit"></a><a class="link" href="performance.html#metaparse.performance.benchmarks_of_boost_metaparse_st.increasing_string_length_limit" title="Increasing string length limit">Increasing + string length limit</a> +</h4></div></div></div> +<p> + 100 one character long strings with increasing maximum length. Measured + on a Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty host with + 16 GB memory. Compiler used: gcc 4.8.5. + </p> +<p> + <span class="inlinemediaobject"><img src="../images/metaparse/max_length_gcc_4.8.5.png" width="100%"></span> + </p> +</div> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="metaparse.performance.measuring_printf"></a><a class="link" href="performance.html#metaparse.performance.measuring_printf" title="Measuring printf">Measuring printf</a> +</h3></div></div></div> +<p> + Parsers work at compile-time, thus their performance affects compilation + speed. This section shows measurements of compilation time using Metaparse. + The measurements were done on a Linux laptop with an 1.6 GHz Atom processor + and 1 GB memory. The measurements were done using GCC 4.6.1 with <code class="computeroutput"><span class="special">-</span><span class="identifier">std</span><span class="special">=</span><span class="identifier">c</span><span class="special">++</span><span class="number">0</span><span class="identifier">x</span></code> and no optimisation. Compilation speed + was measured using the <code class="computeroutput"><span class="identifier">time</span></code> + utility. + </p> +<p> + To measure a non-trivial parser, the <code class="computeroutput"><span class="identifier">printf</span></code> + example program were used for measurements. Here is a list of the <code class="computeroutput"><span class="identifier">printf</span></code> calls and their compilation speed + (<code class="computeroutput"><span class="identifier">user</span></code> output of <code class="computeroutput"><span class="identifier">time</span></code>): + </p> <div class="table"> -<a name="metaparse.performance.printf_compilation_speed"></a><p class="title"><b>Table 22.1. Printf compilation speed</b></p> +<a name="metaparse.performance.measuring_printf.printf_compilation_speed"></a><p class="title"><b>Table 24.1. Printf compilation speed</b></p> <div class="table-contents"><table class="table" summary="Printf compilation speed"> <colgroup> <col> @@ -48,103 +116,110 @@ </colgroup> <thead><tr> <th> - <p> - type-safe <code class="computeroutput"><span class="identifier">printf</span></code> - call - </p> - </th> + <p> + type-safe <code class="computeroutput"><span class="identifier">printf</span></code> + call + </p> + </th> <th> - <p> - Compilation speed (s) - </p> - </th> + <p> + Compilation speed (s) + </p> + </th> </tr></thead> <tbody> <tr> <td> - <p> - No compile-time parsing (just the includes and an empty <code class="computeroutput"><span class="identifier">main</span></code>) - </p> - </td> + <p> + No compile-time parsing (just the includes and an empty <code class="computeroutput"><span class="identifier">main</span></code>) + </p> + </td> <td> - <p> - 3.51 - </p> - </td> + <p> + 3.51 + </p> + </td> </tr> <tr> <td> - <p> - <code class="computeroutput"><span class="identifier">printf</span><span class="special"><</span><span class="identifier">BOOST_METAPARSE_STRING</span><span class="special">(</span><span class="string">"%f"</span><span class="special">)>(</span><span class="number">1.0</span><span class="special">)</span></code> - </p> - </td> + <p> + <code class="computeroutput"><span class="identifier">printf</span><span class="special"><</span><span class="identifier">BOOST_METAPARSE_STRING</span><span class="special">(</span><span class="string">"%f"</span><span class="special">)>(</span><span class="number">1.0</span><span class="special">)</span></code> + </p> + </td> <td> - <p> - 4.95 - </p> - </td> + <p> + 4.95 + </p> + </td> </tr> <tr> <td> - <p> - <code class="computeroutput"><span class="identifier">printf</span><span class="special"><</span><span class="identifier">BOOST_METAPARSE_STRING</span><span class="special">(</span><span class="string">"%f%f"</span><span class="special">)>(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">)</span></code> - </p> - </td> + <p> + <code class="computeroutput"><span class="identifier">printf</span><span class="special"><</span><span class="identifier">BOOST_METAPARSE_STRING</span><span class="special">(</span><span class="string">"%f%f"</span><span class="special">)>(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">)</span></code> + </p> + </td> <td> - <p> - 5.26 - </p> - </td> + <p> + 5.26 + </p> + </td> </tr> <tr> <td> - <p> - <code class="computeroutput"><span class="identifier">printf</span><span class="special"><</span><span class="identifier">BOOST_METAPARSE_STRING</span><span class="special">(</span><span class="string">"%f%f%f"</span><span class="special">)>(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">,</span> <span class="number">3.0</span><span class="special">)</span></code> - </p> - </td> + <p> + <code class="computeroutput"><span class="identifier">printf</span><span class="special"><</span><span class="identifier">BOOST_METAPARSE_STRING</span><span class="special">(</span><span class="string">"%f%f%f"</span><span class="special">)>(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">,</span> <span class="number">3.0</span><span class="special">)</span></code> + </p> + </td> <td> - <p> - 5.50 - </p> - </td> + <p> + 5.50 + </p> + </td> </tr> <tr> <td> - <p> - <code class="computeroutput"><span class="identifier">printf</span><span class="special"><</span><span class="identifier">BOOST_METAPARSE_STRING</span><span class="special">(</span><span class="string">"%f%f%f%f"</span><span class="special">)>(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">,</span> <span class="number">3.0</span><span class="special">,</span> <span class="number">4.0</span><span class="special">)</span></code> - </p> - </td> + <p> + <code class="computeroutput"><span class="identifier">printf</span><span class="special"><</span><span class="identifier">BOOST_METAPARSE_STRING</span><span class="special">(</span><span class="string">"%f%f%f%f"</span><span class="special">)>(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">,</span> <span class="number">3.0</span><span class="special">,</span> <span class="number">4.0</span><span class="special">)</span></code> + </p> + </td> <td> - <p> - 5.82 - </p> - </td> + <p> + 5.82 + </p> + </td> </tr> <tr> <td> - <p> - <code class="computeroutput"><span class="identifier">printf</span><span class="special"><</span><span class="identifier">BOOST_METAPARSE_STRING</span><span class="special">(</span><span class="string">"%f%f%f%f%f"</span><span class="special">)>(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">,</span> <span class="number">3.0</span><span class="special">,</span> <span class="number">4.0</span><span class="special">,</span> <span class="number">5.0</span><span class="special">)</span></code> - </p> - </td> + <p> + <code class="computeroutput"><span class="identifier">printf</span><span class="special"><</span><span class="identifier">BOOST_METAPARSE_STRING</span><span class="special">(</span><span class="string">"%f%f%f%f%f"</span><span class="special">)>(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">,</span> <span class="number">3.0</span><span class="special">,</span> <span class="number">4.0</span><span class="special">,</span> <span class="number">5.0</span><span class="special">)</span></code> + </p> + </td> <td> - <p> - 6.07 - </p> - </td> + <p> + 6.07 + </p> + </td> </tr> </tbody> </table></div> </div> -<br class="table-break"><p> - Further measurements can be found in the following paper: - </p> +<br class="table-break"> +</div> +<div class="section"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="metaparse.performance.further_measurements"></a><a class="link" href="performance.html#metaparse.performance.further_measurements" title="Further measurements">Further measurements</a> +</h3></div></div></div> +<p> + Further measurements can be found in the following paper: + </p> <p> - Zoltán Porkoláb, Ábel Sinkovics: <br> <span class="bold"><strong>Domain-specific - Language Integration with Compile-time Parser Generator Library</strong></span> - <br> In Eelco Visser, Jaakko Järvi, editors, Proceedings of the ninth international - conference on Generative programming and component engineering (GPCE 2010). - ACM, October 2010, pp. 137-146. - </p> + Zoltán Porkoláb, Ábel Sinkovics: <br> <span class="bold"><strong>Domain-specific + Language Integration with Compile-time Parser Generator Library</strong></span> + <br> In Eelco Visser, Jaakko Järvi, editors, Proceedings of the ninth + international conference on Generative programming and component engineering + (GPCE 2010). ACM, October 2010, pp. 137-146. + </p> +</div> </div> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <td align="left"></td> diff --git a/doc/html/metaparse/preface.html b/doc/html/metaparse/preface.html index bf38fcd8b4..6c0d0e4dbc 100644 --- a/doc/html/metaparse/preface.html +++ b/doc/html/metaparse/preface.html @@ -6,7 +6,7 @@ <link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> <link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> -<link rel="up" href="../metaparse.html" title="Chapter 22. Boost.Metaparse"> +<link rel="up" href="../metaparse.html" title="Chapter 24. Boost.Metaparse"> <link rel="prev" href="related_publications_and_blogs.html" title="Related publications and blogs"> <link rel="next" href="getting_started_with_boost_metap.html" title="Getting started with Boost.Metaparse"> </head> diff --git a/doc/html/metaparse/reference.html b/doc/html/metaparse/reference.html index 0e6f16a98e..a620ce23e2 100644 --- a/doc/html/metaparse/reference.html +++ b/doc/html/metaparse/reference.html @@ -6,9 +6,9 @@ <link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> <link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> -<link rel="up" href="../metaparse.html" title="Chapter 22. Boost.Metaparse"> +<link rel="up" href="../metaparse.html" title="Chapter 24. Boost.Metaparse"> <link rel="prev" href="the_design_of_the_library.html" title="The design of the library"> -<link rel="next" href="../move.html" title="Chapter 23. Boost.Move"> +<link rel="next" href="../move.html" title="Chapter 25. Boost.Move"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table cellpadding="2" width="100%"><tr> @@ -763,7 +763,7 @@ value</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.accept.arguments"></a><p class="title"><b>Table 22.2. Arguments</b></p> +<a name="metaparse.reference.alphabetical.accept.arguments"></a><p class="title"><b>Table 24.2. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -925,7 +925,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.accept_when.arguments"></a><p class="title"><b>Table 22.3. Arguments</b></p> +<a name="metaparse.reference.alphabetical.accept_when.arguments"></a><p class="title"><b>Table 24.3. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -1162,7 +1162,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.always_c.arguments"></a><p class="title"><b>Table 22.4. Arguments</b></p> +<a name="metaparse.reference.alphabetical.always_c.arguments"></a><p class="title"><b>Table 24.4. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -1287,7 +1287,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.always.arguments"></a><p class="title"><b>Table 22.5. Arguments</b></p> +<a name="metaparse.reference.alphabetical.always.arguments"></a><p class="title"><b>Table 24.5. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -1413,7 +1413,7 @@ This is a macro. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.boost_metaparse_define_error.arguments"></a><p class="title"><b>Table 22.6. Arguments</b></p> +<a name="metaparse.reference.alphabetical.boost_metaparse_define_error.arguments"></a><p class="title"><b>Table 24.6. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -1545,7 +1545,7 @@ This is a macro. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.boost_metaparse_string.arguments"></a><p class="title"><b>Table 22.7. Arguments</b></p> +<a name="metaparse.reference.alphabetical.boost_metaparse_string.arguments"></a><p class="title"><b>Table 24.7. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -1597,6 +1597,21 @@ header defines the <code class="computeroutput"><span class="identifier">BOOST_METAPARSE_V1_CONFIG_NO_BOOST_METAPARSE_STRING</span></code> macro. Defining this macro before including the header disables the <code class="computeroutput"><span class="identifier">BOOST_METAPARSE_STRING</span></code> macro. </p> +<p> + The upper limit for the maximum length, which can be used is 2048. The + implementation of the <code class="computeroutput"><span class="identifier">BOOST_METAPARSE_STRING</span></code> + macro is generated using <code class="computeroutput"><span class="identifier">tools</span><span class="special">/</span><span class="identifier">string_headers</span><span class="special">.</span><span class="identifier">py</span></code> and + can be regenerated to extend this upper limit. Note that for Oracle Developer + Studio the string length limit is 127. + </p> +<p> + Metaparse supports changing the string length limit within a compilation + unit. To change the length limit, redefine the <code class="computeroutput"><span class="identifier">BOOST_METAPARSE_LIMIT_STRING_SIZE</span></code> + macro. + </p> +<p> + You can find benchmarks of this macro <a class="link" href="performance.html#BOOST_METAPARSE_STRING_benchmark">here</a>. + </p> <h2> <a name="metaparse.reference.alphabetical.boost_metaparse_string.h2"></a> <span class="phrase"><a name="metaparse.reference.alphabetical.boost_metaparse_string.header"></a></span><a class="link" href="reference.html#metaparse.reference.alphabetical.boost_metaparse_string.header">Header</a> @@ -1622,7 +1637,8 @@ <a name="metaparse.reference.alphabetical.boost_metaparse_string.h4"></a> <span class="phrase"><a name="metaparse.reference.alphabetical.boost_metaparse_string.example"></a></span><a class="link" href="reference.html#metaparse.reference.alphabetical.boost_metaparse_string.example">Example</a> </h2> -<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">metaparse</span><span class="special">/</span><span class="identifier">string</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> +<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_METAPARSE_LIMIT_STRING_SIZE</span> <span class="number">8</span> +<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">metaparse</span><span class="special">/</span><span class="identifier">string</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">type_traits</span><span class="special">></span> @@ -1638,6 +1654,20 @@ <span class="special">>::</span><span class="identifier">type</span><span class="special">::</span><span class="identifier">value</span><span class="special">,</span> <span class="string">"The type generated by the macro should be identical to the hand-crafted one."</span> <span class="special">);</span> + +<span class="preprocessor">#undef</span> <span class="identifier">BOOST_METAPARSE_LIMIT_STRING_SIZE</span> +<span class="preprocessor">#define</span> <span class="identifier">BOOST_METAPARSE_LIMIT_STRING_SIZE</span> <span class="number">32</span> + +<span class="keyword">static_assert</span><span class="special">(</span> + <span class="identifier">std</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span> + <span class="identifier">string</span><span class="special"><</span> + <span class="char">'A'</span><span class="special">,</span> <span class="char">' '</span><span class="special">,</span> <span class="char">'l'</span><span class="special">,</span> <span class="char">'o'</span><span class="special">,</span> <span class="char">'n'</span><span class="special">,</span> <span class="char">'g'</span><span class="special">,</span> <span class="char">'e'</span><span class="special">,</span> <span class="char">'r'</span><span class="special">,</span> + <span class="char">' '</span><span class="special">,</span> <span class="char">'s'</span><span class="special">,</span> <span class="char">'t'</span><span class="special">,</span> <span class="char">'r'</span><span class="special">,</span> <span class="char">'i'</span><span class="special">,</span> <span class="char">'n'</span><span class="special">,</span> <span class="char">'g'</span> + <span class="special">>,</span> + <span class="identifier">BOOST_METAPARSE_STRING</span><span class="special">(</span><span class="string">"A longer string"</span><span class="special">)</span> + <span class="special">>::</span><span class="identifier">type</span><span class="special">::</span><span class="identifier">value</span><span class="special">,</span> + <span class="string">"The type generated by the macro should be identical to the hand-crafted one."</span> +<span class="special">);</span> </pre> </div> <div class="section"> @@ -1726,7 +1756,7 @@ This is a <a class="link" href="reference.html#metafunction">template metafunction</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.build_parser.arguments"></a><p class="title"><b>Table 22.8. Arguments</b></p> +<a name="metaparse.reference.alphabetical.build_parser.arguments"></a><p class="title"><b>Table 24.8. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -1783,7 +1813,7 @@ <span class="special">};</span> </pre> <div class="table"> -<a name="metaparse.reference.alphabetical.build_parser.arguments0"></a><p class="title"><b>Table 22.9. Arguments</b></p> +<a name="metaparse.reference.alphabetical.build_parser.arguments0"></a><p class="title"><b>Table 24.9. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -1869,7 +1899,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.change_error_message.arguments"></a><p class="title"><b>Table 22.10. Arguments</b></p> +<a name="metaparse.reference.alphabetical.change_error_message.arguments"></a><p class="title"><b>Table 24.10. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -2060,7 +2090,7 @@ This is a template class. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.debug_parsing_error.arguments"></a><p class="title"><b>Table 22.11. Arguments</b></p> +<a name="metaparse.reference.alphabetical.debug_parsing_error.arguments"></a><p class="title"><b>Table 24.11. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -2299,7 +2329,7 @@ value as argument. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.digit_to_int_c.arguments"></a><p class="title"><b>Table 22.12. Arguments</b></p> +<a name="metaparse.reference.alphabetical.digit_to_int_c.arguments"></a><p class="title"><b>Table 24.12. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -2409,7 +2439,7 @@ that supports <a class="link" href="reference.html#currying">currying</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.digit_to_int.arguments"></a><p class="title"><b>Table 22.13. Arguments</b></p> +<a name="metaparse.reference.alphabetical.digit_to_int.arguments"></a><p class="title"><b>Table 24.13. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -2593,7 +2623,7 @@ This is a <a class="link" href="reference.html#parser">parser</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.empty.arguments"></a><p class="title"><b>Table 22.14. Arguments</b></p> +<a name="metaparse.reference.alphabetical.empty.arguments"></a><p class="title"><b>Table 24.14. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -2733,7 +2763,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.entire_input.arguments"></a><p class="title"><b>Table 22.15. Arguments</b></p> +<a name="metaparse.reference.alphabetical.entire_input.arguments"></a><p class="title"><b>Table 24.15. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -2866,7 +2896,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.except.arguments"></a><p class="title"><b>Table 22.16. Arguments</b></p> +<a name="metaparse.reference.alphabetical.except.arguments"></a><p class="title"><b>Table 24.16. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -3053,7 +3083,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.fail_at_first_char_expected.arguments"></a><p class="title"><b>Table 22.17. Arguments</b></p> +<a name="metaparse.reference.alphabetical.fail_at_first_char_expected.arguments"></a><p class="title"><b>Table 24.17. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -3195,7 +3225,7 @@ This is a <a class="link" href="reference.html#parser">parser</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.fail.arguments"></a><p class="title"><b>Table 22.18. Arguments</b></p> +<a name="metaparse.reference.alphabetical.fail.arguments"></a><p class="title"><b>Table 24.18. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -3330,7 +3360,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.first_of.arguments"></a><p class="title"><b>Table 22.19. Arguments</b></p> +<a name="metaparse.reference.alphabetical.first_of.arguments"></a><p class="title"><b>Table 24.19. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -3440,7 +3470,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.foldl1.arguments"></a><p class="title"><b>Table 22.20. Arguments</b></p> +<a name="metaparse.reference.alphabetical.foldl1.arguments"></a><p class="title"><b>Table 24.20. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -3586,7 +3616,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.foldl_reject_incomplete.arguments"></a><p class="title"><b>Table 22.21. Arguments</b></p> +<a name="metaparse.reference.alphabetical.foldl_reject_incomplete.arguments"></a><p class="title"><b>Table 24.21. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -3755,7 +3785,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.foldl_reject_incomplete1.arguments"></a><p class="title"><b>Table 22.22. Arguments</b></p> +<a name="metaparse.reference.alphabetical.foldl_reject_incomplete1.arguments"></a><p class="title"><b>Table 24.22. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -3917,7 +3947,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.foldl_reject_incomplete_start_wi.arguments"></a><p class="title"><b>Table 22.23. Arguments</b></p> +<a name="metaparse.reference.alphabetical.foldl_reject_incomplete_start_wi.arguments"></a><p class="title"><b>Table 24.23. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -4093,7 +4123,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.foldl_start_with_parser.arguments"></a><p class="title"><b>Table 22.24. Arguments</b></p> +<a name="metaparse.reference.alphabetical.foldl_start_with_parser.arguments"></a><p class="title"><b>Table 24.24. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -4272,7 +4302,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.foldl.arguments"></a><p class="title"><b>Table 22.25. Arguments</b></p> +<a name="metaparse.reference.alphabetical.foldl.arguments"></a><p class="title"><b>Table 24.25. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -4448,7 +4478,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.foldr1.arguments"></a><p class="title"><b>Table 22.26. Arguments</b></p> +<a name="metaparse.reference.alphabetical.foldr1.arguments"></a><p class="title"><b>Table 24.26. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -4594,7 +4624,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.foldr_reject_incomplete.arguments"></a><p class="title"><b>Table 22.27. Arguments</b></p> +<a name="metaparse.reference.alphabetical.foldr_reject_incomplete.arguments"></a><p class="title"><b>Table 24.27. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -4769,7 +4799,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.foldr_reject_incomplete1.arguments"></a><p class="title"><b>Table 22.28. Arguments</b></p> +<a name="metaparse.reference.alphabetical.foldr_reject_incomplete1.arguments"></a><p class="title"><b>Table 24.28. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -4931,7 +4961,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.foldr_start_with_parser.arguments"></a><p class="title"><b>Table 22.29. Arguments</b></p> +<a name="metaparse.reference.alphabetical.foldr_start_with_parser.arguments"></a><p class="title"><b>Table 24.29. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -5120,7 +5150,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.foldr.arguments"></a><p class="title"><b>Table 22.30. Arguments</b></p> +<a name="metaparse.reference.alphabetical.foldr.arguments"></a><p class="title"><b>Table 24.30. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -5301,7 +5331,7 @@ This is a <a class="link" href="reference.html#lazy_metafunction">lazy template metafunction</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.get_col.arguments"></a><p class="title"><b>Table 22.31. Arguments</b></p> +<a name="metaparse.reference.alphabetical.get_col.arguments"></a><p class="title"><b>Table 24.31. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -5413,7 +5443,7 @@ This is a <a class="link" href="reference.html#lazy_metafunction">lazy template metafunction</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.get_line.arguments"></a><p class="title"><b>Table 22.32. Arguments</b></p> +<a name="metaparse.reference.alphabetical.get_line.arguments"></a><p class="title"><b>Table 24.32. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -5525,7 +5555,7 @@ This is a <a class="link" href="reference.html#lazy_metafunction">lazy template metafunction</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.get_message.arguments"></a><p class="title"><b>Table 22.33. Arguments</b></p> +<a name="metaparse.reference.alphabetical.get_message.arguments"></a><p class="title"><b>Table 24.33. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -5619,7 +5649,7 @@ This is a <a class="link" href="reference.html#lazy_metafunction">lazy template metafunction</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.get_position.arguments"></a><p class="title"><b>Table 22.34. Arguments</b></p> +<a name="metaparse.reference.alphabetical.get_position.arguments"></a><p class="title"><b>Table 24.34. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -5726,7 +5756,7 @@ This is a <a class="link" href="reference.html#lazy_metafunction">lazy template metafunction</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.get_prev_char.arguments"></a><p class="title"><b>Table 22.35. Arguments</b></p> +<a name="metaparse.reference.alphabetical.get_prev_char.arguments"></a><p class="title"><b>Table 24.35. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -5840,7 +5870,7 @@ This is a <a class="link" href="reference.html#lazy_metafunction">lazy template metafunction</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.get_remaining.arguments"></a><p class="title"><b>Table 22.36. Arguments</b></p> +<a name="metaparse.reference.alphabetical.get_remaining.arguments"></a><p class="title"><b>Table 24.36. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -5946,7 +5976,7 @@ This is a <a class="link" href="reference.html#lazy_metafunction">lazy template metafunction</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.get_result.arguments"></a><p class="title"><b>Table 22.37. Arguments</b></p> +<a name="metaparse.reference.alphabetical.get_result.arguments"></a><p class="title"><b>Table 24.37. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -6136,6 +6166,11 @@ the <code class="computeroutput"><span class="identifier">grammar</span></code> template. This is optional, the default value is <code class="computeroutput"><span class="identifier">S</span></code>. </p> +<p> + Note that the current implementation "inlines" the referenced + symbols while parsing the grammar and recursion is not supported because + of this. + </p> <h2> <a name="metaparse.reference.alphabetical.grammar.h2"></a> <span class="phrase"><a name="metaparse.reference.alphabetical.grammar.header"></a></span><a class="link" href="reference.html#metaparse.reference.alphabetical.grammar.header">Header</a> @@ -6218,7 +6253,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.if.arguments"></a><p class="title"><b>Table 22.38. Arguments</b></p> +<a name="metaparse.reference.alphabetical.if.arguments"></a><p class="title"><b>Table 24.38. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -6357,7 +6392,7 @@ This is a <a class="link" href="reference.html#parsing_error_message">parsing error message</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.index_out_of_range.arguments"></a><p class="title"><b>Table 22.39. Arguments</b></p> +<a name="metaparse.reference.alphabetical.index_out_of_range.arguments"></a><p class="title"><b>Table 24.39. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -6456,7 +6491,7 @@ This is a <a class="link" href="reference.html#metafunction_class">template metafunction class</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.in_range_c.arguments"></a><p class="title"><b>Table 22.40. Arguments</b></p> +<a name="metaparse.reference.alphabetical.in_range_c.arguments"></a><p class="title"><b>Table 24.40. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -6614,7 +6649,7 @@ <a class="link" href="reference.html#currying">currying</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.in_range.arguments"></a><p class="title"><b>Table 22.41. Arguments</b></p> +<a name="metaparse.reference.alphabetical.in_range.arguments"></a><p class="title"><b>Table 24.41. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -6861,7 +6896,7 @@ value as argument. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.int_to_digit_c.arguments"></a><p class="title"><b>Table 22.42. Arguments</b></p> +<a name="metaparse.reference.alphabetical.int_to_digit_c.arguments"></a><p class="title"><b>Table 24.42. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -6965,7 +7000,7 @@ that supports <a class="link" href="reference.html#currying">currying</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.int_to_digit.arguments"></a><p class="title"><b>Table 22.43. Arguments</b></p> +<a name="metaparse.reference.alphabetical.int_to_digit.arguments"></a><p class="title"><b>Table 24.43. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -7076,7 +7111,7 @@ that supports <a class="link" href="reference.html#currying">currying</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.is_digit.arguments"></a><p class="title"><b>Table 22.44. Arguments</b></p> +<a name="metaparse.reference.alphabetical.is_digit.arguments"></a><p class="title"><b>Table 24.44. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -7192,7 +7227,7 @@ that supports <a class="link" href="reference.html#currying">currying</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.is_error.arguments"></a><p class="title"><b>Table 22.45. Arguments</b></p> +<a name="metaparse.reference.alphabetical.is_error.arguments"></a><p class="title"><b>Table 24.45. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -7319,7 +7354,7 @@ that supports <a class="link" href="reference.html#currying">currying</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.is_lcase_letter.arguments"></a><p class="title"><b>Table 22.46. Arguments</b></p> +<a name="metaparse.reference.alphabetical.is_lcase_letter.arguments"></a><p class="title"><b>Table 24.46. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -7438,7 +7473,7 @@ that supports <a class="link" href="reference.html#currying">currying</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.is_letter.arguments"></a><p class="title"><b>Table 22.47. Arguments</b></p> +<a name="metaparse.reference.alphabetical.is_letter.arguments"></a><p class="title"><b>Table 24.47. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -7563,7 +7598,7 @@ that supports <a class="link" href="reference.html#currying">currying</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.is_ucase_letter.arguments"></a><p class="title"><b>Table 22.48. Arguments</b></p> +<a name="metaparse.reference.alphabetical.is_ucase_letter.arguments"></a><p class="title"><b>Table 24.48. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -7683,7 +7718,7 @@ value as argument. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.is_whitespace_c.arguments"></a><p class="title"><b>Table 22.49. Arguments</b></p> +<a name="metaparse.reference.alphabetical.is_whitespace_c.arguments"></a><p class="title"><b>Table 24.49. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -7796,7 +7831,7 @@ that supports <a class="link" href="reference.html#currying">currying</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.is_whitespace.arguments"></a><p class="title"><b>Table 22.50. Arguments</b></p> +<a name="metaparse.reference.alphabetical.is_whitespace.arguments"></a><p class="title"><b>Table 24.50. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -7907,7 +7942,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.iterate_c.arguments"></a><p class="title"><b>Table 22.51. Arguments</b></p> +<a name="metaparse.reference.alphabetical.iterate_c.arguments"></a><p class="title"><b>Table 24.51. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -8057,7 +8092,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.iterate.arguments"></a><p class="title"><b>Table 22.52. Arguments</b></p> +<a name="metaparse.reference.alphabetical.iterate.arguments"></a><p class="title"><b>Table 24.52. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -8214,7 +8249,7 @@ This is a <a class="link" href="reference.html#parser">parser</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.keyword.arguments"></a><p class="title"><b>Table 22.53. Arguments</b></p> +<a name="metaparse.reference.alphabetical.keyword.arguments"></a><p class="title"><b>Table 24.53. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -8337,7 +8372,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.last_of.arguments"></a><p class="title"><b>Table 22.54. Arguments</b></p> +<a name="metaparse.reference.alphabetical.last_of.arguments"></a><p class="title"><b>Table 24.54. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -8621,7 +8656,7 @@ This is a <a class="link" href="reference.html#parser">parser</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.lit_c.arguments"></a><p class="title"><b>Table 22.55. Arguments</b></p> +<a name="metaparse.reference.alphabetical.lit_c.arguments"></a><p class="title"><b>Table 24.55. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -8728,7 +8763,7 @@ This is a <a class="link" href="reference.html#parsing_error_message">parsing error message</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.literal_expected.arguments"></a><p class="title"><b>Table 22.56. Arguments</b></p> +<a name="metaparse.reference.alphabetical.literal_expected.arguments"></a><p class="title"><b>Table 24.56. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -8791,7 +8826,7 @@ This is a <a class="link" href="reference.html#parser">parser</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.lit.arguments"></a><p class="title"><b>Table 22.57. Arguments</b></p> +<a name="metaparse.reference.alphabetical.lit.arguments"></a><p class="title"><b>Table 24.57. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -8908,7 +8943,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.look_ahead.arguments"></a><p class="title"><b>Table 22.58. Arguments</b></p> +<a name="metaparse.reference.alphabetical.look_ahead.arguments"></a><p class="title"><b>Table 24.58. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -9159,7 +9194,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.middle_of.arguments"></a><p class="title"><b>Table 22.59. Arguments</b></p> +<a name="metaparse.reference.alphabetical.middle_of.arguments"></a><p class="title"><b>Table 24.59. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -9307,7 +9342,7 @@ This is a <a class="link" href="reference.html#lazy_metafunction">lazy template metafunction</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.next_char.arguments"></a><p class="title"><b>Table 22.60. Arguments</b></p> +<a name="metaparse.reference.alphabetical.next_char.arguments"></a><p class="title"><b>Table 24.60. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -9483,7 +9518,7 @@ This is a <a class="link" href="reference.html#lazy_metafunction">lazy template metafunction</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.next_line.arguments"></a><p class="title"><b>Table 22.61. Arguments</b></p> +<a name="metaparse.reference.alphabetical.next_line.arguments"></a><p class="title"><b>Table 24.61. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -9689,7 +9724,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.nth_of_c.arguments"></a><p class="title"><b>Table 22.62. Arguments</b></p> +<a name="metaparse.reference.alphabetical.nth_of_c.arguments"></a><p class="title"><b>Table 24.62. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -9831,7 +9866,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.nth_of.arguments"></a><p class="title"><b>Table 22.63. Arguments</b></p> +<a name="metaparse.reference.alphabetical.nth_of.arguments"></a><p class="title"><b>Table 24.63. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -10006,7 +10041,7 @@ This is a <a class="link" href="reference.html#parser">parser</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.one_char_except_c.arguments"></a><p class="title"><b>Table 22.64. Arguments</b></p> +<a name="metaparse.reference.alphabetical.one_char_except_c.arguments"></a><p class="title"><b>Table 24.64. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -10132,7 +10167,7 @@ This is a <a class="link" href="reference.html#parser">parser</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.one_char_except.arguments"></a><p class="title"><b>Table 22.65. Arguments</b></p> +<a name="metaparse.reference.alphabetical.one_char_except.arguments"></a><p class="title"><b>Table 24.65. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -10355,7 +10390,7 @@ This is a <a class="link" href="reference.html#parser">parser</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.one_of_c.arguments"></a><p class="title"><b>Table 22.66. Arguments</b></p> +<a name="metaparse.reference.alphabetical.one_of_c.arguments"></a><p class="title"><b>Table 24.66. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -10464,7 +10499,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.one_of.arguments"></a><p class="title"><b>Table 22.67. Arguments</b></p> +<a name="metaparse.reference.alphabetical.one_of.arguments"></a><p class="title"><b>Table 24.67. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -10590,7 +10625,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.optional.arguments"></a><p class="title"><b>Table 22.68. Arguments</b></p> +<a name="metaparse.reference.alphabetical.optional.arguments"></a><p class="title"><b>Table 24.68. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -10846,7 +10881,7 @@ This is a <a class="link" href="reference.html#parser">parser</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.range_c.arguments"></a><p class="title"><b>Table 22.69. Arguments</b></p> +<a name="metaparse.reference.alphabetical.range_c.arguments"></a><p class="title"><b>Table 24.69. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -10970,7 +11005,7 @@ This is a <a class="link" href="reference.html#parser">parser</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.range.arguments"></a><p class="title"><b>Table 22.70. Arguments</b></p> +<a name="metaparse.reference.alphabetical.range.arguments"></a><p class="title"><b>Table 24.70. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -11095,7 +11130,7 @@ value</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.reject.arguments"></a><p class="title"><b>Table 22.71. Arguments</b></p> +<a name="metaparse.reference.alphabetical.reject.arguments"></a><p class="title"><b>Table 24.71. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -11213,7 +11248,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.repeated1.arguments"></a><p class="title"><b>Table 22.72. Arguments</b></p> +<a name="metaparse.reference.alphabetical.repeated1.arguments"></a><p class="title"><b>Table 24.72. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -11333,7 +11368,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.repeated_reject_incomplete1.arguments"></a><p class="title"><b>Table 22.73. Arguments</b></p> +<a name="metaparse.reference.alphabetical.repeated_reject_incomplete1.arguments"></a><p class="title"><b>Table 24.73. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -11463,7 +11498,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.repeated_reject_incomplete.arguments"></a><p class="title"><b>Table 22.74. Arguments</b></p> +<a name="metaparse.reference.alphabetical.repeated_reject_incomplete.arguments"></a><p class="title"><b>Table 24.74. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -11601,7 +11636,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.repeated_one_of1.arguments"></a><p class="title"><b>Table 22.75. Arguments</b></p> +<a name="metaparse.reference.alphabetical.repeated_one_of1.arguments"></a><p class="title"><b>Table 24.75. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -11730,7 +11765,7 @@ <span class="keyword">struct</span> <span class="identifier">repeated_one_of1</span><span class="special">;</span> </pre> <div class="table"> -<a name="metaparse.reference.alphabetical.repeated_one_of.arguments"></a><p class="title"><b>Table 22.76. Arguments</b></p> +<a name="metaparse.reference.alphabetical.repeated_one_of.arguments"></a><p class="title"><b>Table 24.76. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -11867,7 +11902,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.repeated.arguments"></a><p class="title"><b>Table 22.77. Arguments</b></p> +<a name="metaparse.reference.alphabetical.repeated.arguments"></a><p class="title"><b>Table 24.77. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -12005,7 +12040,7 @@ This is a <a class="link" href="reference.html#parser">parser</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.return.arguments"></a><p class="title"><b>Table 22.78. Arguments</b></p> +<a name="metaparse.reference.alphabetical.return.arguments"></a><p class="title"><b>Table 24.78. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -12123,7 +12158,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.sequence.arguments"></a><p class="title"><b>Table 22.79. Arguments</b></p> +<a name="metaparse.reference.alphabetical.sequence.arguments"></a><p class="title"><b>Table 24.79. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -12260,7 +12295,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.sequence_apply.arguments"></a><p class="title"><b>Table 22.80. Arguments</b></p> +<a name="metaparse.reference.alphabetical.sequence_apply.arguments"></a><p class="title"><b>Table 24.80. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -12407,7 +12442,7 @@ value</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.source_position.arguments"></a><p class="title"><b>Table 22.81. Arguments</b></p> +<a name="metaparse.reference.alphabetical.source_position.arguments"></a><p class="title"><b>Table 24.81. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -12761,7 +12796,7 @@ value</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.string.arguments"></a><p class="title"><b>Table 22.82. Arguments</b></p> +<a name="metaparse.reference.alphabetical.string.arguments"></a><p class="title"><b>Table 24.82. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -12895,7 +12930,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.token.arguments"></a><p class="title"><b>Table 22.83. Arguments</b></p> +<a name="metaparse.reference.alphabetical.token.arguments"></a><p class="title"><b>Table 24.83. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -13017,7 +13052,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.transform_error_message.arguments"></a><p class="title"><b>Table 22.84. Arguments</b></p> +<a name="metaparse.reference.alphabetical.transform_error_message.arguments"></a><p class="title"><b>Table 24.84. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -13176,7 +13211,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.transform_error.arguments"></a><p class="title"><b>Table 22.85. Arguments</b></p> +<a name="metaparse.reference.alphabetical.transform_error.arguments"></a><p class="title"><b>Table 24.85. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -13339,7 +13374,7 @@ This is a <a class="link" href="reference.html#parser_combinator">parser combinator</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.transform.arguments"></a><p class="title"><b>Table 22.86. Arguments</b></p> +<a name="metaparse.reference.alphabetical.transform.arguments"></a><p class="title"><b>Table 24.86. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -13540,7 +13575,7 @@ This is a <a class="link" href="reference.html#lazy_metafunction">lazy template metafunction</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.unless_error.arguments"></a><p class="title"><b>Table 22.87. Arguments</b></p> +<a name="metaparse.reference.alphabetical.unless_error.arguments"></a><p class="title"><b>Table 24.87. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> @@ -13680,7 +13715,7 @@ This is a <a class="link" href="reference.html#parsing_error_message">parsing error message</a>. </p> <div class="table"> -<a name="metaparse.reference.alphabetical.unpaired.arguments"></a><p class="title"><b>Table 22.88. Arguments</b></p> +<a name="metaparse.reference.alphabetical.unpaired.arguments"></a><p class="title"><b>Table 24.88. Arguments</b></p> <div class="table-contents"><table class="table" summary="Arguments"> <colgroup> <col> diff --git a/doc/html/metaparse/related_publications_and_blogs.html b/doc/html/metaparse/related_publications_and_blogs.html index 957fa938af..b34689cf6d 100644 --- a/doc/html/metaparse/related_publications_and_blogs.html +++ b/doc/html/metaparse/related_publications_and_blogs.html @@ -6,8 +6,8 @@ <link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> <link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> -<link rel="up" href="../metaparse.html" title="Chapter 22. Boost.Metaparse"> -<link rel="prev" href="../metaparse.html" title="Chapter 22. Boost.Metaparse"> +<link rel="up" href="../metaparse.html" title="Chapter 24. Boost.Metaparse"> +<link rel="prev" href="../metaparse.html" title="Chapter 24. Boost.Metaparse"> <link rel="next" href="preface.html" title="Preface"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> diff --git a/doc/html/metaparse/the_design_of_the_library.html b/doc/html/metaparse/the_design_of_the_library.html index da1ce2e305..96f7952ada 100644 --- a/doc/html/metaparse/the_design_of_the_library.html +++ b/doc/html/metaparse/the_design_of_the_library.html @@ -6,7 +6,7 @@ <link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> <link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> -<link rel="up" href="../metaparse.html" title="Chapter 22. Boost.Metaparse"> +<link rel="up" href="../metaparse.html" title="Chapter 24. Boost.Metaparse"> <link rel="prev" href="performance.html" title="Performance"> <link rel="next" href="reference.html" title="Reference"> </head> @@ -99,6 +99,28 @@ intermediate containers, that are (usually) processed sequentially after that. </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> + <span class="bold"><strong>Why external code generator for <code class="computeroutput"><span class="identifier">BOOST_METAPARSE_STRING</span></code>?</strong></span> + </li></ul></div> +<p> + To be able to support longer strings. It generates code using macros to reduce + the size of the header files (the reducion is multiples of MBs). + </p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> + <span class="bold"><strong>Why defining a custom version of Boost.Preprocessor + macros?</strong></span> + </li></ul></div> +<p> + There are two reasons for the library defining its own set of preprocessor + metaprogramming macros: to have control over the upper limit of iteration + steps and to be able to clean the macros up once they have done their job + (and avoid polluting the macros of the users). + </p> +<p> + Note that these macros live in the <code class="computeroutput"><span class="identifier">impl</span></code> + directory, which means that they are an implementation detail of the library + and should be used internally only. + </p> </div> </div> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> diff --git a/doc/html/metaparse/user_manual.html b/doc/html/metaparse/user_manual.html index db41ffbeea..ae8f0b6a91 100644 --- a/doc/html/metaparse/user_manual.html +++ b/doc/html/metaparse/user_manual.html @@ -6,7 +6,7 @@ <link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> <link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> -<link rel="up" href="../metaparse.html" title="Chapter 22. Boost.Metaparse"> +<link rel="up" href="../metaparse.html" title="Chapter 24. Boost.Metaparse"> <link rel="prev" href="getting_started_with_boost_metap.html" title="Getting started with Boost.Metaparse"> <link rel="next" href="versioning.html" title="Versioning"> </head> diff --git a/doc/html/metaparse/versioning.html b/doc/html/metaparse/versioning.html index f87612c7e9..5a87b22feb 100644 --- a/doc/html/metaparse/versioning.html +++ b/doc/html/metaparse/versioning.html @@ -6,7 +6,7 @@ <link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> <link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> -<link rel="up" href="../metaparse.html" title="Chapter 22. Boost.Metaparse"> +<link rel="up" href="../metaparse.html" title="Chapter 24. Boost.Metaparse"> <link rel="prev" href="user_manual.html" title="User manual"> <link rel="next" href="performance.html" title="Performance"> </head> |