| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> |
| <title>Spirit V2.4</title> |
| <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css"> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.75.0"> |
| <link rel="home" href="../../index.html" title="Spirit 2.4.1"> |
| <link rel="up" href="../what_s_new.html" title="What's New"> |
| <link rel="prev" href="spirit_2_4_1.html" title="Spirit V2.4.1"> |
| <link rel="next" href="spirit_2_3.html" title="Spirit V2.3"> |
| </head> |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
| <table cellpadding="2" width="100%"><tr> |
| <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td> |
| <td align="center"><a href="../../../../../../index.html">Home</a></td> |
| <td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> |
| <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> |
| <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> |
| <td align="center"><a href="../../../../../../more/index.htm">More</a></td> |
| </tr></table> |
| <hr> |
| <div class="spirit-nav"> |
| <a accesskey="p" href="spirit_2_4_1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../what_s_new.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="spirit_2_3.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> |
| </div> |
| <div class="section"> |
| <div class="titlepage"><div><div><h3 class="title"> |
| <a name="spirit.what_s_new.spirit_2_4"></a><a class="link" href="spirit_2_4.html" title="Spirit V2.4">Spirit V2.4</a> |
| </h3></div></div></div> |
| <a name="spirit.what_s_new.spirit_2_4.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_3__boost_v1_43_0__to_v2_4__boost_v1_44_0_"></a><h5> |
| <a name="id780213"></a> |
| <a class="link" href="spirit_2_4.html#spirit.what_s_new.spirit_2_4.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_3__boost_v1_43_0__to_v2_4__boost_v1_44_0_">What's |
| changed in <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span> |
| from V2.3 (Boost V1.43.0) to V2.4 (Boost V1.44.0)</a> |
| </h5> |
| <a name="spirit.what_s_new.spirit_2_4.new_features"></a><h5> |
| <a name="id780235"></a> |
| <a class="link" href="spirit_2_4.html#spirit.what_s_new.spirit_2_4.new_features">New Features</a> |
| </h5> |
| <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> |
| The customization point <a class="link" href="../advanced/customize/transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)"><code class="computeroutput"><span class="identifier">transform_attribute</span></code></a> now takes |
| an additional template parameter <code class="computeroutput"><span class="identifier">Domain</span></code> |
| allowing to better specialize the customization point for either <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span></code> or <code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">domain</span></code>. |
| </li></ul></div> |
| <div class="important"><table border="0" summary="Important"> |
| <tr> |
| <td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../images/important.png"></td> |
| <th align="left">Important</th> |
| </tr> |
| <tr><td align="left" valign="top"><p> |
| This is a interface breaking change requiring to modify existing code. |
| If you have a specialization of this customization point in your code you |
| need to add the specialization for the new template parameter, i.e. either |
| <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span></code> or <code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">domain</span></code>. |
| </p></td></tr> |
| </table></div> |
| <div class="itemizedlist"><ul class="itemizedlist" type="disc"> |
| <li class="listitem"> |
| Semantic actions in <span class="emphasis"><em>Spirit.Qi</em></span> now implicitly invoke |
| the function <code class="computeroutput"><span class="identifier">pre</span></code> of the |
| customization point <a class="link" href="../advanced/customize/transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)"><code class="computeroutput"><span class="identifier">transform_attribute</span></code></a> to convert |
| the supplied attribute to the exposed attribute type, as needed. The |
| functions <code class="computeroutput"><span class="identifier">post</span></code> and <code class="computeroutput"><span class="identifier">fail</span></code> of this customization point are |
| not invoked by this component (as this would not make any sense). |
| </li> |
| <li class="listitem"> |
| Semantic actions in <span class="emphasis"><em>Spirit.Karma</em></span> now implicitly |
| invoke the function <code class="computeroutput"><span class="identifier">pre</span></code> |
| of the customization point <a class="link" href="../advanced/customize/transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)"><code class="computeroutput"><span class="identifier">transform_attribute</span></code></a> to convert |
| the supplied attribute to the consumed attribute type, as needed. |
| </li> |
| <li class="listitem"> |
| Added the <span class="emphasis"><em>Spirit.Karma</em></span> <a class="link" href="../karma/reference/directive/omit.html" title="Consume Attribute (omit[] and skip[])"><code class="computeroutput"><span class="identifier">skip</span></code></a> directive which is semantically |
| equivalent to the <span class="emphasis"><em>Spirit.Karma</em></span> <a class="link" href="../karma/reference/directive/omit.html" title="Consume Attribute (omit[] and skip[])"><code class="computeroutput"><span class="identifier">omit</span></code></a> directive except that it |
| will not execute the embedded generator. |
| </li> |
| <li class="listitem"> |
| Added debug support to <span class="emphasis"><em>Spirit.Karma</em></span> rules. |
| </li> |
| <li class="listitem"> |
| Added strict mode to <span class="emphasis"><em>Spirit.Karma</em></span>, leaving the current |
| behavior (unchanged) as relaxed mode. Added <span class="emphasis"><em>Spirit.Karma</em></span> |
| compile time directives <code class="computeroutput"><span class="identifier">strict</span><span class="special">[]</span></code> and <code class="computeroutput"><span class="identifier">relaxed</span><span class="special">[]</span></code> allowing to switch between the two. |
| </li> |
| <li class="listitem"> |
| Added <span class="emphasis"><em>Spirit.Karma</em></span> <a class="link" href="../karma/reference/directive/duplicate.html" title="Duplicate Attribute (duplicate[])"><code class="computeroutput"><span class="identifier">duplicate</span></code></a> directive which duplicates |
| the supplied attribute to all elements of an embedded generator sequence. |
| </li> |
| </ul></div> |
| <a name="spirit.what_s_new.spirit_2_4.bug_fixes"></a><h5> |
| <a name="id780517"></a> |
| <a class="link" href="spirit_2_4.html#spirit.what_s_new.spirit_2_4.bug_fixes">Bug Fixes</a> |
| </h5> |
| <div class="itemizedlist"><ul class="itemizedlist" type="disc"> |
| <li class="listitem"> |
| Components in <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span> |
| now accept one element Fusion sequences as their attributes as long as |
| the element in the Fusion sequence is compatible with the component's |
| attribute type. |
| </li> |
| <li class="listitem"> |
| The character range parser and generator components can now additionally |
| be written as <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"a"</span><span class="special">,</span> |
| <span class="string">"z"</span><span class="special">)</span></code> |
| instead of <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">'a'</span><span class="special">,</span> <span class="char">'z'</span><span class="special">)</span></code> making it consistent with the syntax |
| of the <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">'a'</span><span class="special">)</span></code> component |
| (which can be written as <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"a"</span><span class="special">)</span></code> as well). Please note that the mixed |
| syntax forms, i.e. <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">'a'</span><span class="special">,</span> |
| <span class="string">"z"</span><span class="special">)</span></code> |
| and <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"a"</span><span class="special">,</span> |
| <span class="char">'z'</span><span class="special">)</span></code>, |
| are not supported. |
| </li> |
| <li class="listitem"> |
| Fixed attribute handling in <span class="emphasis"><em>Spirit.Karma</em></span> sequences |
| when all elements of that sequence consume either the same attribute |
| type or containers of that attribute type and the passed in attribute |
| is a container of that attribute type as well. In this case using a repetitive |
| container was supported only when it was the last element of the sequence. |
| Now it is possible to have a <a class="link" href="../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])"><code class="computeroutput"><span class="identifier">repeat</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code> |
| generator at any position (well, actually you can have any repetitive |
| container at any position now, but this doesn't always make sense as |
| it normally would eat up all supplied attribute values). |
| </li> |
| <li class="listitem"> |
| Fixed debug output for variants where a variant element is an STL sequence. |
| </li> |
| <li class="listitem"> |
| Fixed a problem in multi_pass, avoiding to loose a character at end of |
| input when switching iterators. |
| </li> |
| </ul></div> |
| <a name="spirit.what_s_new.spirit_2_4.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_3__boost_v1_43_0__to_v2_4__boost_v1_44_0_"></a><h5> |
| <a name="id780753"></a> |
| <a class="link" href="spirit_2_4.html#spirit.what_s_new.spirit_2_4.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_3__boost_v1_43_0__to_v2_4__boost_v1_44_0_">What's |
| changed in <span class="emphasis"><em>Spirit.Lex</em></span> from V2.3 (Boost V1.43.0) to V2.4 |
| (Boost V1.44.0)</a> |
| </h5> |
| <a name="spirit.what_s_new.spirit_2_4.new_lexer_features"></a><h5> |
| <a name="id780771"></a> |
| <a class="link" href="spirit_2_4.html#spirit.what_s_new.spirit_2_4.new_lexer_features">New Lexer |
| Features</a> |
| </h5> |
| <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> |
| The lexer is now well integrated with the debug output generated by Qi's |
| simple_trace utility. Tokens are printed as: '<' matched sequence |
| '>'. |
| </li></ul></div> |
| <a name="spirit.what_s_new.spirit_2_4.lexer_bug_fixes"></a><h5> |
| <a name="id780795"></a> |
| <a class="link" href="spirit_2_4.html#spirit.what_s_new.spirit_2_4.lexer_bug_fixes">Lexer Bug Fixes</a> |
| </h5> |
| <div class="itemizedlist"><ul class="itemizedlist" type="disc"> |
| <li class="listitem"> |
| Fixed a problem with using lex::_val as a rvalue in lexer semantic expressions. |
| </li> |
| <li class="listitem"> |
| Token values are now available for introspection (as an iterator_range) |
| inside lexer semantic expressions as well. |
| </li> |
| </ul></div> |
| </div> |
| <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> |
| <td align="left"></td> |
| <td align="right"><div class="copyright-footer">Copyright © 2001-2010 Joel de Guzman, Hartmut Kaiser<p> |
| Distributed under the Boost Software License, Version 1.0. (See accompanying |
| file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) |
| </p> |
| </div></td> |
| </tr></table> |
| <hr> |
| <div class="spirit-nav"> |
| <a accesskey="p" href="spirit_2_4_1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../what_s_new.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="spirit_2_3.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> |
| </div> |
| </body> |
| </html> |