|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r72254 - in trunk/libs/spirit/doc/html: . spirit spirit/abstracts spirit/karma spirit/qi spirit/qi/reference/operator spirit/support spirit/what_s_new
From: hartmut.kaiser_at_[hidden]
Date: 2011-05-28 19:22:46
Author: hkaiser
Date: 2011-05-28 19:22:45 EDT (Sat, 28 May 2011)
New Revision: 72254
URL: http://svn.boost.org/trac/boost/changeset/72254
Log:
Spirit: updating docs for release 1.47
Text files modified:
trunk/libs/spirit/doc/html/index.html | 4 +-
trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html | 6 +-
trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html | 10 ++--
trunk/libs/spirit/doc/html/spirit/introduction.html | 4 +-
trunk/libs/spirit/doc/html/spirit/karma/s05.html | 2
trunk/libs/spirit/doc/html/spirit/preface.html | 4 +-
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html | 4 +-
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html | 4 +-
trunk/libs/spirit/doc/html/spirit/qi/s04.html | 2
trunk/libs/spirit/doc/html/spirit/support/utree.html | 73 ++++++++++++++++++++-------------------
trunk/libs/spirit/doc/html/spirit/what_s_new/spirit_2_5.html | 20 ++++++++++
11 files changed, 77 insertions(+), 56 deletions(-)
Modified: trunk/libs/spirit/doc/html/index.html
==============================================================================
--- trunk/libs/spirit/doc/html/index.html (original)
+++ trunk/libs/spirit/doc/html/index.html 2011-05-28 19:22:45 EDT (Sat, 28 May 2011)
@@ -33,7 +33,7 @@
</div></div>
<div><p class="copyright">Copyright © 2001-2011 Joel de Guzman, Hartmut Kaiser</p></div>
<div><div class="legalnotice">
-<a name="id868617"></a><p>
+<a name="id858023"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -294,7 +294,7 @@
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: April 18, 2011 at 01:05:36 GMT</small></p></td>
+<td align="left"><p><small>Last revised: May 28, 2011 at 18:27:20 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Modified: trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html 2011-05-28 19:22:45 EDT (Sat, 28 May 2011)
@@ -28,7 +28,7 @@
Expression Grammar</a>
</h3></div></div></div>
<p>
- Parsing Expression Grammars (PEG) <sup>[<a name="id888954" href="#ftn.id888954" class="footnote">6</a>]</sup> are a derivative of Extended Backus-Naur Form (EBNF) <sup>[<a name="id888966" href="#ftn.id888966" class="footnote">7</a>]</sup> with a different interpretation, designed to represent a recursive
+ Parsing Expression Grammars (PEG) <sup>[<a name="id872982" href="#ftn.id872982" class="footnote">6</a>]</sup> are a derivative of Extended Backus-Naur Form (EBNF) <sup>[<a name="id872994" href="#ftn.id872994" class="footnote">7</a>]</sup> with a different interpretation, designed to represent a recursive
descent parser. A PEG can be directly represented as a recursive-descent
parser.
</p>
@@ -189,11 +189,11 @@
</table></div>
<div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id888954" href="#id888954" class="para">6</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id872982" href="#id872982" class="para">6</a>] </sup>
Bryan Ford: Parsing Expression Grammars: A Recognition-Based Syntactic
Foundation, http://pdos.csail.mit.edu/~baford/packrat/popl04/
</p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id888966" href="#id888966" class="para">7</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id872994" href="#id872994" class="para">7</a>] </sup>
Richard E. Pattis: EBNF: A Notation to Describe Syntax, http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf
</p></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html 2011-05-28 19:22:45 EDT (Sat, 28 May 2011)
@@ -28,9 +28,9 @@
</h3></div></div></div>
<p>
In the next section, we will deal with Parsing Expression Grammars (PEG)
- <sup>[<a name="id888548" href="#ftn.id888548" class="footnote">3</a>]</sup>, a variant of Extended Backus-Naur Form (EBNF) <sup>[<a name="id888560" href="#ftn.id888560" class="footnote">4</a>]</sup> with a different interpretation. It is easier to understand PEG
+ <sup>[<a name="id872392" href="#ftn.id872392" class="footnote">3</a>]</sup>, a variant of Extended Backus-Naur Form (EBNF) <sup>[<a name="id872404" href="#ftn.id872404" class="footnote">4</a>]</sup> with a different interpretation. It is easier to understand PEG
using Syntax Diagrams. Syntax diagrams represent a grammar graphically. It
- was used extensively by Niklaus Wirth <sup>[<a name="id888572" href="#ftn.id888572" class="footnote">5</a>]</sup> in the "Pascal User Manual". Syntax Diagrams are easily
+ was used extensively by Niklaus Wirth <sup>[<a name="id872416" href="#ftn.id872416" class="footnote">5</a>]</sup> in the "Pascal User Manual". Syntax Diagrams are easily
understandable by programmers due to their similarity to flow charts. The
isomorphism of the diagrams and functions make them ideal for representing
Recursive Descent parsers which are essentially mutually recursive functions.
@@ -147,14 +147,14 @@
</p>
<div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id888548" href="#id888548" class="para">3</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id872392" href="#id872392" class="para">3</a>] </sup>
Bryan Ford: Parsing Expression Grammars: A Recognition-Based Syntactic
Foundation, http://pdos.csail.mit.edu/~baford/packrat/popl04/
</p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id888560" href="#id888560" class="para">4</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id872404" href="#id872404" class="para">4</a>] </sup>
Richard E. Pattis: EBNF: A Notation to Describe Syntax, http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf
</p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id888572" href="#id888572" class="para">5</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id872416" href="#id872416" class="para">5</a>] </sup>
Niklaus Wirth: The Programming Language Pascal. (July 1973)
</p></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/introduction.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/introduction.html (original)
+++ trunk/libs/spirit/doc/html/spirit/introduction.html 2011-05-28 19:22:45 EDT (Sat, 28 May 2011)
@@ -29,7 +29,7 @@
<p>
Boost Spirit is an object-oriented, recursive-descent parser and output generation
library for C++. It allows you to write grammars and format descriptions using
- a format similar to Extended Backus Naur Form (EBNF)<sup>[<a name="id883447" href="#ftn.id883447" class="footnote">2</a>]</sup> directly in C++. These inline grammar specifications can mix freely
+ a format similar to Extended Backus Naur Form (EBNF)<sup>[<a name="id869201" href="#ftn.id869201" class="footnote">2</a>]</sup> directly in C++. These inline grammar specifications can mix freely
with other C++ code and, thanks to the generative power of C++ templates, are
immediately executable. In retrospect, conventional compiler-compilers or parser-generators
have to perform an additional translation step from the source EBNF code to
@@ -453,7 +453,7 @@
</div>
<br class="table-break"><div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id883447" href="#id883447" class="para">2</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id869201" href="#id869201" class="para">2</a>] </sup>
<a href="http://www.cl.cam.ac.uk/%7Emgk25/iso-14977.pdf" target="_top">ISO-EBNF</a>
</p></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/s05.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/s05.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/s05.html 2011-05-28 19:22:45 EDT (Sat, 28 May 2011)
@@ -24,7 +24,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id1244598"></a>Karma Index</h3></div></div></div>
+<a name="id1234081"></a>Karma Index</h3></div></div></div>
<p><a class="link" href="s05.html#idx_id_23">A</a> <a class="link" href="s05.html#idx_id_24">B</a> <a class="link" href="s05.html#idx_id_25">C</a> <a class="link" href="s05.html#idx_id_26">D</a> <a class="link" href="s05.html#idx_id_27">E</a> <a class="link" href="s05.html#idx_id_28">F</a> <a class="link" href="s05.html#idx_id_29">G</a> <a class="link" href="s05.html#idx_id_30">H</a> <a class="link" href="s05.html#idx_id_31">I</a> <a class="link" href="s05.html#idx_id_32">K</a> <a class="link" href="s05.html#idx_id_33">L</a> <a class="link" href="s05.html#idx_id_34">M</a> <a class="link" href="s05.html#idx_id_35">N</a> <a class="link" href="s05.html#idx_id_36">O</a> <a class="link" href="s05.html#idx_id_37">P</a> <a class="link" href="s05.html#idx_id_38">Q</a> <a class="link" href="s05.html#idx_id_39">R</a> <a class="link" href="s05.html#idx_id_40">S</a> <a class="link" href="s05.html#idx_id_41">T</a> <a class="link" href="s05.html#idx_id_42">U</a> <a class="link" href="s05.html#idx_id_43">V</a> <a class="l
ink" href="s05.html#idx_id_44">W</a> <a class="link" href="s05.html#idx_id_45">X</a> <a class="link" href="s05.html#idx_id_46">_</a> </p>
<div class="variablelist"><dl>
<dt>
Modified: trunk/libs/spirit/doc/html/spirit/preface.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/preface.html (original)
+++ trunk/libs/spirit/doc/html/spirit/preface.html 2011-05-28 19:22:45 EDT (Sat, 28 May 2011)
@@ -162,7 +162,7 @@
</h4>
<p>
Just before the development of Spirit V2 began, Hartmut came across the StringTemplate library that is
- a part of the ANTLR parser framework. <sup>[<a name="id868885" href="#ftn.id868885" class="footnote">1</a>]</sup> The concepts presented in that library lead Hartmut to the next
+ a part of the ANTLR parser framework. <sup>[<a name="id858291" href="#ftn.id858291" class="footnote">1</a>]</sup> The concepts presented in that library lead Hartmut to the next
step in the evolution of Spirit. Parsing and generation are tightly connected
to a formal notation, or a grammar. The grammar describes both input and output,
and therefore, a parser library should have a grammar driven output. This duality
@@ -353,7 +353,7 @@
</p>
<div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id868885" href="#id868885" class="para">1</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id858291" href="#id858291" class="para">1</a>] </sup>
Quote from http:<span class="emphasis"><em>/www.stringtemplate.org</em></span>: It is a Java
template engine (with ports for C# and Python) for generating source code,
web pages, emails, or any other formatted text output.
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html 2011-05-28 19:22:45 EDT (Sat, 28 May 2011)
@@ -36,7 +36,7 @@
The difference operator, <code class="computeroutput"><span class="identifier">a</span>
<span class="special">-</span> <span class="identifier">b</span></code>,
is a binary operator that matches the first (LHS) operand but not the
- second (RHS). <sup>[<a name="id1040029" href="#ftn.id1040029" class="footnote">8</a>]</sup>
+ second (RHS). <sup>[<a name="id1027315" href="#ftn.id1027315" class="footnote">8</a>]</sup>
</p>
<a name="spirit.qi.reference.operator.difference.header"></a><h6>
<a name="spirit.qi.reference.operator.difference.header-heading"></a>
@@ -192,7 +192,7 @@
</p>
<div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id1040029" href="#id1040029" class="para">8</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id1027315" href="#id1027315" class="para">8</a>] </sup>
Unlike classic Spirit, with Spirit2, the expression will always fail
if the RHS is a successful match regardless if the RHS matches less
characters. For example, the rule <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"policeman"</span><span class="special">)</span> <span class="special">-</span> <span class="string">"police"</span></code> will always fail to
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html 2011-05-28 19:22:45 EDT (Sat, 28 May 2011)
@@ -180,7 +180,7 @@
<p>
</p>
<p>
- Parse a person info with name (in quotes) optional age <sup>[<a name="id1047485" href="#ftn.id1047485" class="footnote">9</a>]</sup> and optional sex, all separated by comma.
+ Parse a person info with name (in quotes) optional age <sup>[<a name="id1036547" href="#ftn.id1036547" class="footnote">9</a>]</sup> and optional sex, all separated by comma.
</p>
<p>
@@ -206,7 +206,7 @@
</p>
<div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id1047485" href="#id1047485" class="para">9</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id1036547" href="#id1036547" class="para">9</a>] </sup>
James Bond is shy about his age :-)
</p></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/s04.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/s04.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/s04.html 2011-05-28 19:22:45 EDT (Sat, 28 May 2011)
@@ -24,7 +24,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id1067873"></a>Qi Index</h3></div></div></div>
+<a name="id1054614"></a>Qi Index</h3></div></div></div>
<p><a class="link" href="s04.html#idx_id_0">A</a> <a class="link" href="s04.html#idx_id_1">B</a> <a class="link" href="s04.html#idx_id_2">C</a> <a class="link" href="s04.html#idx_id_3">D</a> <a class="link" href="s04.html#idx_id_4">E</a> <a class="link" href="s04.html#idx_id_5">F</a> <a class="link" href="s04.html#idx_id_6">G</a> <a class="link" href="s04.html#idx_id_7">H</a> <a class="link" href="s04.html#idx_id_8">I</a> <a class="link" href="s04.html#idx_id_9">K</a> <a class="link" href="s04.html#idx_id_10">L</a> <a class="link" href="s04.html#idx_id_11">M</a> <a class="link" href="s04.html#idx_id_12">N</a> <a class="link" href="s04.html#idx_id_13">O</a> <a class="link" href="s04.html#idx_id_14">P</a> <a class="link" href="s04.html#idx_id_15">Q</a> <a class="link" href="s04.html#idx_id_16">R</a> <a class="link" href="s04.html#idx_id_17">S</a> <a class="link" href="s04.html#idx_id_18">T</a> <a class="link" href="s04.html#idx_id_19">U</a> <a class="link" href="s04.html#idx_id_20">W</a> <a class="link" href=
"s04.html#idx_id_21">X</a> <a class="link" href="s04.html#idx_id_22">_</a> </p>
<div class="variablelist"><dl>
<dt>
Modified: trunk/libs/spirit/doc/html/spirit/support/utree.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/support/utree.html (original)
+++ trunk/libs/spirit/doc/html/spirit/support/utree.html 2011-05-28 19:22:45 EDT (Sat, 28 May 2011)
@@ -27,12 +27,19 @@
<a name="spirit.support.utree"></a><a class="link" href="utree.html" title="The utree data structure">The utree data structure</a>
</h3></div></div></div>
<p>
- The <code class="computeroutput"><span class="identifier">utree</span></code> data structure
- is a generic, hierarchical, and dynamic data structure that can represent
- abstract syntax trees. It's well integrated with <span class="emphasis"><em>Spirit.Qi</em></span>
- and <span class="emphasis"><em>Spirit.Karma</em></span>. It can be passed as an attribute while
- parsing almost any grammars. At the same time, it can be used as an attribute
- to generate output from.
+ <code class="computeroutput"><span class="identifier">utree</span></code> is a dynamically-typed
+ hierarchical data structure that can represent abstract syntax trees. It's
+ well integrated with <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>.
+ <code class="computeroutput"><span class="identifier">utree</span></code> can be passed as an
+ attribute to almost any grammar. <code class="computeroutput"><span class="identifier">utree</span></code>'s
+ type system is implemented through the use of a discriminated union and type
+ punning.
+ </p>
+<p>
+ <code class="computeroutput"><span class="identifier">utree</span></code> has a minimal memory
+ footprint. The data structure size is 16 bytes on a 32-bit platform, and
+ 32 bytes on 64-bit a platform (<code class="computeroutput"><span class="number">4</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">void</span><span class="special">*)</span></code>). Being
+ a container of itself, it can represent tree structures.
</p>
<p>
Each instance of an <code class="computeroutput"><span class="identifier">utree</span></code>
@@ -54,7 +61,7 @@
</span> <span class="identifier">any_type</span><span class="special">,</span> <span class="comment">// A pointer or reference to any C++ type.
</span> <span class="identifier">function_type</span><span class="special">,</span> <span class="comment">// A utree holding a stored_function<F> object,
</span> <span class="comment">// where F is an unary function object taking a
-</span> <span class="comment">// scope as it's parameter and returning a
+</span> <span class="comment">// utree as it's parameter and returning a
</span> <span class="comment">// utree.
</span>
<span class="comment">// numeric atoms
@@ -75,17 +82,6 @@
</pre>
<p>
</p>
-<div class="note"><table border="0" summary="Note">
-<tr>
-<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
-<th align="left">Note</th>
-</tr>
-<tr><td align="left" valign="top"><p>
- utree has minimal memory footprint. The data structure size is 16 bytes
- on a 32-bit platform, and 32 bytes on 64-bit a platform (<code class="computeroutput"><span class="number">4</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">void</span><span class="special">*)</span></code>).
- Being a container of itself, it can represent tree structures.
- </p></td></tr>
-</table></div>
<p>
The UTF-8 string, UTF-8 symbol, and binary data types are internally stored
either directly as the node data (small string optimization applied), or
@@ -246,19 +242,12 @@
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Iterator</span><span class="special">></span>
<span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">>);</span>
-<span class="comment">// This initializes a `function_type` node, which can store an
-</span><span class="comment">// arbitrary function or function object.
-</span><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
-<span class="identifier">utree</span><span class="special">(</span><span class="identifier">stored_function</span><span class="special"><</span><span class="identifier">F</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
-<span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">stored_function</span><span class="special"><</span><span class="identifier">F</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
-
-<span class="comment">// This initializes a `function_type` node, storing by reference
-</span><span class="comment">// instead of copying the function object.
-</span><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
-<span class="identifier">utree</span><span class="special">(</span><span class="identifier">referenced_function</span><span class="special"><</span><span class="identifier">F</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
-<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">></span>
-<span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">referenced_function</span><span class="special"><</span><span class="identifier">F</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
+<span class="comment">// This initializes a `function_type` node from a polymorphic function
+</span><span class="comment">// object pointer (takes ownership) or reference.
+</span><span class="identifier">utree</span><span class="special">(</span><span class="identifier">function_base</span> <span class="keyword">const</span><span class="special">&);</span>
+<span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">function_base</span> <span class="keyword">const</span><span class="special">&);</span>
+<span class="identifier">utree</span><span class="special">(</span><span class="identifier">function_base</span><span class="special">*);</span>
+<span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">function_base</span><span class="special">*);</span>
<span class="comment">// This initializes either a `string_type`, a `symbol_type`, or a
</span><span class="comment">// `binary_type` node (depending on the template parameter `type_`),
@@ -378,7 +367,8 @@
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">function_base</span>
<span class="special">{</span>
<span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">function_base</span><span class="special">()</span> <span class="special">{}</span>
- <span class="keyword">virtual</span> <span class="identifier">utree</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">scope</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">env</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+ <span class="keyword">virtual</span> <span class="identifier">utree</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">utree</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">env</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+ <span class="keyword">virtual</span> <span class="identifier">utree</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">utree</span><span class="special">&</span> <span class="identifier">env</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
<span class="comment">// Calling f.clone() must return a newly allocated function_base
</span> <span class="comment">// instance that is equal to f.
@@ -391,7 +381,8 @@
<span class="identifier">F</span> <span class="identifier">f</span><span class="special">;</span>
<span class="identifier">stored_function</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span> <span class="special">=</span> <span class="identifier">F</span><span class="special">());</span>
<span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">stored_function</span><span class="special">();</span>
- <span class="keyword">virtual</span> <span class="identifier">utree</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">scope</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">env</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">virtual</span> <span class="identifier">utree</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">utree</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">env</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">virtual</span> <span class="identifier">utree</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">utree</span><span class="special">&</span> <span class="identifier">env</span><span class="special">);</span>
<span class="keyword">virtual</span> <span class="identifier">function_base</span><span class="special">*</span> <span class="identifier">clone</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
<span class="special">};</span>
@@ -401,7 +392,8 @@
<span class="identifier">F</span><span class="special">&</span> <span class="identifier">f</span><span class="special">;</span>
<span class="identifier">referenced_function</span><span class="special">(</span><span class="identifier">F</span><span class="special">&</span> <span class="identifier">f</span><span class="special">);</span>
<span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">referenced_function</span><span class="special">();</span>
- <span class="keyword">virtual</span> <span class="identifier">utree</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">scope</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">env</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">virtual</span> <span class="identifier">utree</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">utree</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">env</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+ <span class="keyword">virtual</span> <span class="identifier">utree</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">utree</span><span class="special">&</span> <span class="identifier">env</span><span class="special">);</span>
<span class="keyword">virtual</span> <span class="identifier">function_base</span><span class="special">*</span> <span class="identifier">clone</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
<span class="special">};</span>
</pre>
@@ -428,7 +420,18 @@
<p>
</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">bad_type_exception</span> <span class="comment">/*: utree_exception*/</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">bad_type_exception</span> <span class="comment">/*: utree_exception*/</span><span class="special">;</span></pre>
+<p>
+ </p>
+<p>
+ The <code class="computeroutput"><span class="identifier">empty_exception</span></code> is thrown
+ whenever a precondition of a list or range utree method is violated due to
+ the list or range being empty.
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">empty_exception</span> <span class="comment">/*: utree_exception*/</span><span class="special">;</span>
</pre>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/what_s_new/spirit_2_5.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/what_s_new/spirit_2_5.html (original)
+++ trunk/libs/spirit/doc/html/spirit/what_s_new/spirit_2_5.html 2011-05-28 19:22:45 EDT (Sat, 28 May 2011)
@@ -168,11 +168,29 @@
<a class="link" href="spirit_2_5.html#spirit.what_s_new.spirit_2_5.new_features_in_lex">New Features
in Lex</a>
</h5>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
Added the possibility to specify a token id while creating a token definition
using <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">char_</span></code> and <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">string</span></code>.
Both primitives now accept a second parameter which will be interpreted
as the requested token id for any token generated from this definition.
+ </li>
+<li class="listitem">
+ Added a new token type <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">position_token</span><span class="special"><></span></code>, which is essentially plup-in
+ compatible with the existing <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">token</span><span class="special"><></span></code> class. However it additionally
+ stores the pair of iterators pointing to the underlying matched input
+ sequence as an iterator_range.
+ </li>
+</ul></div>
+<a name="spirit.what_s_new.spirit_2_5.bug_fixes_in_lex"></a><h5>
+<a name="spirit.what_s_new.spirit_2_5.bug_fixes_in_lex-heading"></a>
+ <a class="link" href="spirit_2_5.html#spirit.what_s_new.spirit_2_5.bug_fixes_in_lex">Bug Fixes in
+ Lex</a>
+ </h5>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+ Fixed a problem with associating token definitions with all states (using
+ <code class="computeroutput"><span class="string">"*"</span></code> as the state
+ name) when actions were attached to them.
</li></ul></div>
<a name="spirit.what_s_new.spirit_2_5.making_stuff_work"></a><h5>
<a name="spirit.what_s_new.spirit_2_5.making_stuff_work-heading"></a>
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk