Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r53852 - in trunk/libs/spirit: doc doc/abstracts doc/html doc/html/spirit doc/html/spirit/abstracts doc/html/spirit/lex doc/html/spirit/lex/abstracts doc/html/spirit/lex/reference doc/html/spirit/lex/tutorials doc/html/spirit/qi/quick_reference test/qi
From: joel_at_[hidden]
Date: 2009-06-13 01:07:45


Author: djowel
Date: 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
New Revision: 53852
URL: http://svn.boost.org/trac/boost/changeset/53852

Log:
doc updates
Added:
   trunk/libs/spirit/doc/abstracts/syntax_diagram.qbk (contents, props changed)
   trunk/libs/spirit/doc/html/spirit/abstracts/
   trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html (contents, props changed)
Text files modified:
   trunk/libs/spirit/doc/abstracts.qbk | 7
   trunk/libs/spirit/doc/abstracts/peg.qbk | 2
   trunk/libs/spirit/doc/html/index.html | 8 +
   trunk/libs/spirit/doc/html/spirit/abstracts.html | 222 +++++++++++++++++----------------------
   trunk/libs/spirit/doc/html/spirit/acknowledgments.html | 2
   trunk/libs/spirit/doc/html/spirit/faq.html | 2
   trunk/libs/spirit/doc/html/spirit/karma.html | 2
   trunk/libs/spirit/doc/html/spirit/lex.html | 6
   trunk/libs/spirit/doc/html/spirit/lex/abstracts.html | 6
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html | 6
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html | 4
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html | 4
   trunk/libs/spirit/doc/html/spirit/lex/reference.html | 6
   trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html | 8
   trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html | 10
   trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html | 6
   trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html | 8
   trunk/libs/spirit/doc/html/spirit/qi.html | 71 ++++++------
   trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html | 2
   trunk/libs/spirit/doc/html/spirit/structure.html | 6
   trunk/libs/spirit/doc/spirit2.qbk | 8 +
   trunk/libs/spirit/test/qi/alternative.cpp | 2
   22 files changed, 192 insertions(+), 206 deletions(-)

Modified: trunk/libs/spirit/doc/abstracts.qbk
==============================================================================
--- trunk/libs/spirit/doc/abstracts.qbk (original)
+++ trunk/libs/spirit/doc/abstracts.qbk 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -6,9 +6,10 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ===============================================================================/]
 
-[/section Abstracts]
+[section Abstracts]
 
-[/include abstracts/peg.qbk]
+[include abstracts/syntax_diagram.qbk]
+[include abstracts/peg.qbk]
 [/include abstracts/parsing.qbk]
 [/include abstracts/generating.qbk]
 [/include abstracts/primitives.qbk]
@@ -22,5 +23,5 @@
 [/include abstracts/error_handling.qbk]
 [/include abstracts/parse_trees_and_asts.qbk]
 
-[/endsect]
+[endsect]
 

Modified: trunk/libs/spirit/doc/abstracts/peg.qbk
==============================================================================
--- trunk/libs/spirit/doc/abstracts/peg.qbk (original)
+++ trunk/libs/spirit/doc/abstracts/peg.qbk 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -16,7 +16,7 @@
 Like EBNF, PEG is a formal grammar for describing a formal language in
 terms of a set of rules used to recognize strings of this language.
 Unlike EBNF, PEGs have an exact interpretation. There is only one valid
-parse tree ($$$ add link to parse trees and asts $$$) for each PEG
+parse tree (see __ast__) for each PEG
 grammar.
 
 [heading Sequences]

Added: trunk/libs/spirit/doc/abstracts/syntax_diagram.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/abstracts/syntax_diagram.qbk 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -0,0 +1,64 @@
+[/==============================================================================
+ Copyright (C) 2001-2009 Joel de Guzman
+ Copyright (C) 2001-2009 Hartmut Kaiser
+
+ 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)
+===============================================================================/]
+[section Syntax Diagram]
+
+[def __sd_start_stop__ [$../images/start_stop.png]]
+[def __sd_terminals__ [$../images/terminal.png]]
+[def __sd_non_terminals__ [$../images/non-terminal.png]]
+[def __sd_sequence__ [$../images/sequence.png]]
+[def __sd_choice__ [$../images/alternative.png]]
+[def __sd_optional__ [$../images/optional.png]]
+
+In the following section, we will deal with Parsing Expression Grammars
+(PEG), a variant of Extended Backus-Naur Form (EBNF) with a different
+interpretation. It is easier to understand PEG using Syntax Diagrams.
+Syntax diagrams represent a grammar graphically. It was used extensibly
+by Niklaus Wirth [footnote Niklaus Wirth: The Programming Language
+Pascal. (July 1973)] in the "Pascal User Manual". Syntax Diagrams are
+easily understandable with programmers due to its similarity to flow
+charts. Also, the one to one mapping between the diagrams and functions
+make it ideal for representing __rd__ parsers.
+
+[heading Elements of a Syntax Diagram]
+
+All diagrams have one entry and exit point. Arrows connect all possible
+paths through the grammar from the entry point to the exit point.
+
+[:__sd_start_stop__]
+
+Terminals are represented by round boxes. Terminals are atomic and
+usually represent plain characters, strings or tokens.
+
+[:__sd_terminals__]
+
+Non-terminals are represented by boxes. Diagrams are modularized using
+named non-terminals. A complex diagram can be broken down into a set of
+non-terminals. Non-terminals also allow recursion (i.e. a non-terminal
+can call itself).
+
+[:__sd_non_terminals__]
+
+The most basic composition is the Sequence. B follows A:
+
+[:__sd_sequence__]
+
+The ordered choice, hencforth we will call alternatives. In PEG, ordered
+choice and alternatives are not quite the same. PEG allows ambiguity of
+choice where one ore more branches can succeed. In PEG, in case of
+ambiguity, the first one always wins.
+
+[:__sd_choice__]
+
+The optional (zero-or-one):
+
+[:__sd_optional__]
+
+
+[endsect]
+
+

Modified: trunk/libs/spirit/doc/html/index.html
==============================================================================
--- trunk/libs/spirit/doc/html/index.html (original)
+++ trunk/libs/spirit/doc/html/index.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -49,6 +49,12 @@
 <dt><span class="section">Introduction</span></dt>
 <dt><span class="section">Structure</span></dt>
 <dd><dl><dt><span class="section">Include</span></dt></dl></dd>
+<dt><span class="section">Abstracts</span></dt>
+<dd><dl>
+<dt><span class="section">Syntax Diagram</span></dt>
+<dt><span class="section"><a href="spirit/abstracts/parsing_expression_grammar.html">Parsing
+ Expression Grammar</a></span></dt>
+</dl></dd>
 <dt><span class="section">Qi</span></dt>
 <dd><dl>
 <dt><span class="section">Tutorials</span></dt>
@@ -464,7 +470,7 @@
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: June 07, 2009 at 05:54:33 GMT</small></p></td>
+<td align="left"><p><small>Last revised: June 13, 2009 at 05:01:54 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: trunk/libs/spirit/doc/html/spirit/abstracts.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -7,7 +7,8 @@
 <link rel="home" href="../index.html" title="Spirit 2.1">
 <link rel="up" href="../index.html" title="Spirit 2.1">
 <link rel="previous" href="structure.html" title="Structure">
-<link rel="next" href="qi.html" title="Qi">
+<link rel="next" href="abstracts/parsing_expression_grammar.html" title="Parsing
+ Expression Grammar">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,7 +21,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="structure.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="structure.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="abstracts/parsing_expression_grammar.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage">
@@ -29,148 +30,119 @@
 </h2></div></div>
 <div></div>
 </div>
-<div class="toc"><dl><dt><span class="section"><a href="abstracts.html#spirit.abstracts.parsing_expression_grammar">Parsing
- Expression Grammar</a></span></dt></dl></div>
+<div class="toc"><dl>
+<dt><span class="section">Syntax Diagram</span></dt>
+<dt><span class="section"><a href="abstracts/parsing_expression_grammar.html">Parsing
+ Expression Grammar</a></span></dt>
+</dl></div>
 <div class="section" lang="en">
 <div class="titlepage">
 <div><div><h3 class="title">
-<a name="spirit.abstracts.parsing_expression_grammar"></a><a href="abstracts.html#spirit.abstracts.parsing_expression_grammar" title="Parsing
- Expression Grammar">Parsing
- Expression Grammar</a>
+<a name="spirit.abstracts.syntax_diagram"></a>Syntax Diagram
 </h3></div></div>
 <div></div>
 </div>
 <p>
- Parsing Expression Grammars (PEG) are a derivative of Extended Backus-Naur
- Form (EBNF) with a different interpretation, designed to represent a recursive
- descent parser. A PEG can be directly represented as a recursive-descent
- parser.
- </p>
-<p>
- Like EBNF, PEG is a formal grammar for describing a formal language in terms
- of a set of rules used to recognize strings of this language. Unlike EBNF,
- PEGs have an exact interpretation. There is only one valid parse tree ($$$
- add link to parse trees and asts $$$) for each PEG grammar.
- </p>
-<a name="spirit.abstracts.parsing_expression_grammar.sequences"></a><h4>
-<a name="id414452"></a>
- Sequences
+ In the following section, we will deal with Parsing Expression Grammars (PEG),
+ a variant of Extended Backus-Naur Form (EBNF) with a different interpretation.
+ It is easier to understand PEG using Syntax Diagrams. Syntax diagrams represent
+ a grammar graphically. It was used extensibly by Niklaus Wirth
+ <sup>[<a name="id414438" href="#ftn.id414438">1</a>]</sup>
+ in the "Pascal User Manual". Syntax Diagrams are easily understandable
+ with programmers due to its similarity to flow charts. Also, the one to one
+ mapping between the diagrams and functions make it ideal for representing
+ [Recursive Descent parsers.
+ </p>
+<a name="spirit.abstracts.syntax_diagram.elements_of_a_syntax_diagram"></a><h4>
+<a name="id414455"></a>
+ <a href="abstracts.html#spirit.abstracts.syntax_diagram.elements_of_a_syntax_diagram">Elements
+ of a Syntax Diagram</a>
       </h4>
 <p>
- Sequences are represented by juxtaposition like in EBNF:
+ All diagrams have one entry and exit point. Arrows connect all possible paths
+ through the grammar from the entry point to the exit point.
       </p>
-<pre class="programlisting"><span class="identifier">a</span> <span class="identifier">b</span>
-</pre>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
 <p>
- The PEG expression above states that, in order for this to succeed, <tt class="computeroutput"><span class="identifier">a</span></tt> must follow <tt class="computeroutput"><span class="identifier">b</span></tt>.
- Here's a trivial example:
+ <span class="inlinemediaobject"><img src="../images/start_stop.png" alt="start_stop"></span>
+ </p>
+<p>
+ </p>
+</blockquote></div>
+<p>
+ Terminals are represented by round boxes. Terminals are atomic and usually
+ represent plain characters, strings or tokens.
       </p>
-<pre class="programlisting"><span class="char">'x'</span> <span class="identifier">digit</span>
-</pre>
-<p>
- which means the character <tt class="computeroutput"><span class="identifier">x</span></tt>
- must be followed by a digit.
- </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 colspan="2" align="left" valign="top"><p>
- In Spirit.Qi, we use the <tt class="computeroutput"><span class="special">&gt;&gt;</span></tt>
- for sequences since C++ does not allow juxtaposition
- </p></td></tr>
-</table></div>
-<a name="spirit.abstracts.parsing_expression_grammar.alternatives"></a><h4>
-<a name="id414570"></a>
- Alternatives
- </h4>
+<div class="blockquote"><blockquote class="blockquote">
 <p>
- Alternatives are represented in PEG using the slash:
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/terminal.png" alt="terminal"></span>
+ </p>
+<p>
+ </p>
+</blockquote></div>
+<p>
+ Non-terminals are represented by boxes. Diagrams are modularized using named
+ non-terminals. A complex diagram can be broken down into a set of non-terminals.
+ Non-terminals also allow recursion (i.e. a non-terminal can call itself).
       </p>
-<pre class="programlisting"><span class="identifier">a</span> <span class="special">/</span> <span class="identifier">b</span>
-</pre>
-<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 colspan="2" align="left" valign="top"><p>
- In Spirit.Qi, we use the <tt class="computeroutput"><span class="special">|</span></tt>
- for alternatives just as in EBNF
- </p></td></tr>
-</table></div>
-<p>
- Alternatives allow for choices. The expression above reads: try to match
- <tt class="computeroutput"><span class="identifier">a</span></tt>. If <tt class="computeroutput"><span class="identifier">a</span></tt>
- succeeds, success, if not try to match <tt class="computeroutput"><span class="identifier">b</span></tt>.
- This is a bit of a deviation from the usual EBNF interpretation where you
- simply match <tt class="computeroutput"><span class="identifier">a</span></tt> <span class="bold"><b>or</b></span> <tt class="computeroutput"><span class="identifier">b</span></tt>.
- </p>
-<p>
- PEGs allow for ambiguity in the alternatives. In the expression above, both
- <tt class="computeroutput"><span class="identifier">a</span></tt> or <tt class="computeroutput"><span class="identifier">b</span></tt>
- can both match an input string. However, only the first matching alternative
- is valid. As noted, there can only be one valid parse tree ($$$ explain more
- about this $$$).
- </p>
-<a name="spirit.abstracts.parsing_expression_grammar.loops"></a><h4>
-<a name="id414728"></a>
- Loops
- </h4>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/non-terminal.png" alt="non-terminal"></span>
+ </p>
 <p>
- Again, like EBNF, PEG uses the regular-expression Kleene star and the plus
- loops:
+ </p>
+</blockquote></div>
+<p>
+ The most basic composition is the Sequence. B follows A:
       </p>
-<pre class="programlisting"><span class="identifier">a</span><span class="special">*</span>
-<span class="identifier">b</span><span class="special">+</span>
-</pre>
-<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 colspan="2" align="left" valign="top"><p>
- Spirit.Qi uses the prefix star and plus since there is no postfix star
- or plus in C++.
- </p></td></tr>
-</table></div>
-<p>
- The first, called the Kleene star, matches zero or more of its subject <tt class="computeroutput"><span class="identifier">a</span></tt>. The second, plus, matches one ore more
- of its subject <tt class="computeroutput"><span class="identifier">a</span></tt>.
- </p>
-<p>
- Unlike EBNF, PEGs have greedy loops. It will match as much as it can until
- its subject fails to match without regard to what follows. The following
- is a classic example of a fairly common EBNF/reg-ex expression failing to
- match in PEG:
- </p>
-<pre class="programlisting"><span class="identifier">alnum</span><span class="special">*</span> <span class="identifier">digit</span>
-</pre>
-<p>
- In PEG, alnum will eat as much alpha-numeric characters as it can leaving
- nothing more left behind. Thus, the trailing digit will get nothing. Loops
- are simply implemented in recursive descent code as for/while loops making
- them extremely efficient. That is a definite advantage. On the other hand,
- those who are familiar with EBNF and regex behavior might find the behavior
- a major gotcha. PEG provides a couple of other mechanisms to circumvent this.
- We will see more of these other mechanisms shortly.
- </p>
-<a name="spirit.abstracts.parsing_expression_grammar.difference"></a><h4>
-<a name="id414849"></a>
- Difference
- </h4>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
 <p>
- In certain cases, you may want to restrict a certain expression. You can
- think of a PEG expression as a match for a potentially infinite set of strings.
- The difference operator allows you to restrict this set:
+ <span class="inlinemediaobject"><img src="../images/sequence.png" alt="sequence"></span>
+ </p>
+<p>
+ </p>
+</blockquote></div>
+<p>
+ The ordered choice, hencforth we will call alternatives. In PEG, ordered
+ choice and alternatives are not quite the same. PEG allows ambiguity of choice
+ where one ore more branches can succeed. In PEG, in case of ambiguity, the
+ first one always wins.
       </p>
-<pre class="programlisting"><span class="identifier">a</span> <span class="special">-</span> <span class="identifier">b</span>
-</pre>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
 <p>
- The expression reads: match <tt class="computeroutput"><span class="identifier">a</span></tt>
- but not <tt class="computeroutput"><span class="identifier">b</span></tt>.
+ <span class="inlinemediaobject"><img src="../images/alternative.png" alt="alternative"></span>
+ </p>
+<p>
+ </p>
+</blockquote></div>
+<p>
+ The optional (can be thought of as zero-or-one):
       </p>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
+<p>
+ <span class="inlinemediaobject"><img src="../images/optional.png" alt="optional"></span>
+ </p>
+<p>
+ </p>
+</blockquote></div>
+</div>
+<div class="footnotes">
+<br><hr width="100" align="left">
+<div class="footnote"><p><sup>[<a name="ftn.id414438" href="#id414438">1</a>] </sup>
+ Niklaus Wirth: The Programming Language Pascal. (July 1973)
+ </p></div>
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
@@ -184,7 +156,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="structure.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="structure.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="abstracts/parsing_expression_grammar.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -0,0 +1,181 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Parsing
+ Expression Grammar</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
+<link rel="up" href="../abstracts.html" title="Abstracts">
+<link rel="previous" href="../abstracts.html" title="Abstracts">
+<link rel="next" href="../qi.html" title="Qi">
+</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">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../abstracts.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../qi.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.abstracts.parsing_expression_grammar"></a><a href="parsing_expression_grammar.html" title="Parsing
+ Expression Grammar">Parsing
+ Expression Grammar</a>
+</h3></div></div>
+<div></div>
+</div>
+<p>
+ Parsing Expression Grammars (PEG) are a derivative of Extended Backus-Naur
+ Form (EBNF) with a different interpretation, designed to represent a recursive
+ descent parser. A PEG can be directly represented as a recursive-descent
+ parser.
+ </p>
+<p>
+ Like EBNF, PEG is a formal grammar for describing a formal language in terms
+ of a set of rules used to recognize strings of this language. Unlike EBNF,
+ PEGs have an exact interpretation. There is only one valid parse tree (see
+ [Abstract Syntax Tree) for each PEG grammar.
+ </p>
+<a name="spirit.abstracts.parsing_expression_grammar.sequences"></a><h4>
+<a name="id414705"></a>
+ Sequences
+ </h4>
+<p>
+ Sequences are represented by juxtaposition like in EBNF:
+ </p>
+<pre class="programlisting"><span class="identifier">a</span> <span class="identifier">b</span>
+</pre>
+<p>
+ The PEG expression above states that, in order for this to succeed, <tt class="computeroutput"><span class="identifier">a</span></tt> must follow <tt class="computeroutput"><span class="identifier">b</span></tt>.
+ Here's a trivial example:
+ </p>
+<pre class="programlisting"><span class="char">'x'</span> <span class="identifier">digit</span>
+</pre>
+<p>
+ which means the character <tt class="computeroutput"><span class="identifier">x</span></tt>
+ must be followed by a digit.
+ </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 colspan="2" align="left" valign="top"><p>
+ In Spirit.Qi, we use the <tt class="computeroutput"><span class="special">&gt;&gt;</span></tt>
+ for sequences since C++ does not allow juxtaposition
+ </p></td></tr>
+</table></div>
+<a name="spirit.abstracts.parsing_expression_grammar.alternatives"></a><h4>
+<a name="id414824"></a>
+ Alternatives
+ </h4>
+<p>
+ Alternatives are represented in PEG using the slash:
+ </p>
+<pre class="programlisting"><span class="identifier">a</span> <span class="special">/</span> <span class="identifier">b</span>
+</pre>
+<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 colspan="2" align="left" valign="top"><p>
+ In Spirit.Qi, we use the <tt class="computeroutput"><span class="special">|</span></tt>
+ for alternatives just as in EBNF
+ </p></td></tr>
+</table></div>
+<p>
+ Alternatives allow for choices. The expression above reads: try to match
+ <tt class="computeroutput"><span class="identifier">a</span></tt>. If <tt class="computeroutput"><span class="identifier">a</span></tt>
+ succeeds, success, if not try to match <tt class="computeroutput"><span class="identifier">b</span></tt>.
+ This is a bit of a deviation from the usual EBNF interpretation where you
+ simply match <tt class="computeroutput"><span class="identifier">a</span></tt> <span class="bold"><b>or</b></span> <tt class="computeroutput"><span class="identifier">b</span></tt>.
+ </p>
+<p>
+ PEGs allow for ambiguity in the alternatives. In the expression above, both
+ <tt class="computeroutput"><span class="identifier">a</span></tt> or <tt class="computeroutput"><span class="identifier">b</span></tt>
+ can both match an input string. However, only the first matching alternative
+ is valid. As noted, there can only be one valid parse tree ($$$ explain more
+ about this $$$).
+ </p>
+<a name="spirit.abstracts.parsing_expression_grammar.loops"></a><h4>
+<a name="id414981"></a>
+ Loops
+ </h4>
+<p>
+ Again, like EBNF, PEG uses the regular-expression Kleene star and the plus
+ loops:
+ </p>
+<pre class="programlisting"><span class="identifier">a</span><span class="special">*</span>
+<span class="identifier">b</span><span class="special">+</span>
+</pre>
+<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 colspan="2" align="left" valign="top"><p>
+ Spirit.Qi uses the prefix star and plus since there is no postfix star
+ or plus in C++.
+ </p></td></tr>
+</table></div>
+<p>
+ The first, called the Kleene star, matches zero or more of its subject <tt class="computeroutput"><span class="identifier">a</span></tt>. The second, plus, matches one ore more
+ of its subject <tt class="computeroutput"><span class="identifier">a</span></tt>.
+ </p>
+<p>
+ Unlike EBNF, PEGs have greedy loops. It will match as much as it can until
+ its subject fails to match without regard to what follows. The following
+ is a classic example of a fairly common EBNF/reg-ex expression failing to
+ match in PEG:
+ </p>
+<pre class="programlisting"><span class="identifier">alnum</span><span class="special">*</span> <span class="identifier">digit</span>
+</pre>
+<p>
+ In PEG, alnum will eat as much alpha-numeric characters as it can leaving
+ nothing more left behind. Thus, the trailing digit will get nothing. Loops
+ are simply implemented in recursive descent code as for/while loops making
+ them extremely efficient. That is a definite advantage. On the other hand,
+ those who are familiar with EBNF and regex behavior might find the behavior
+ a major gotcha. PEG provides a couple of other mechanisms to circumvent this.
+ We will see more of these other mechanisms shortly.
+ </p>
+<a name="spirit.abstracts.parsing_expression_grammar.difference"></a><h4>
+<a name="id415102"></a>
+ Difference
+ </h4>
+<p>
+ In certain cases, you may want to restrict a certain expression. You can
+ think of a PEG expression as a match for a potentially infinite set of strings.
+ The difference operator allows you to restrict this set:
+ </p>
+<pre class="programlisting"><span class="identifier">a</span> <span class="special">-</span> <span class="identifier">b</span>
+</pre>
+<p>
+ The expression reads: match <tt class="computeroutput"><span class="identifier">a</span></tt>
+ but not <tt class="computeroutput"><span class="identifier">b</span></tt>.
+ </p>
+</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-2009 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 http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../abstracts.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../qi.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: trunk/libs/spirit/doc/html/spirit/acknowledgments.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/acknowledgments.html (original)
+++ trunk/libs/spirit/doc/html/spirit/acknowledgments.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -50,7 +50,7 @@
       <span class="bold"><b>FIXME</b></span>: Add more people
     </p>
 <a name="spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation"></a><h3>
-<a name="id481566"></a>
+<a name="id482395"></a>
       <a href="acknowledgments.html#spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation">Acknowledgements
       from the Spirit V1 <span class="emphasis"><em>classic</em></span> Documentation</a>
     </h3>

Modified: trunk/libs/spirit/doc/html/spirit/faq.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/faq.html (original)
+++ trunk/libs/spirit/doc/html/spirit/faq.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -30,7 +30,7 @@
 <div></div>
 </div>
 <a name="spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_"></a><h3>
-<a name="id479997"></a>
+<a name="id480837"></a>
       <a href="faq.html#spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_">I'm
       very confused about the header hell in my boost/spirit directory. What's all
       this about?</a>

Modified: trunk/libs/spirit/doc/html/spirit/karma.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -1002,7 +1002,7 @@
           <span class="identifier">b</span></tt> will be <tt class="computeroutput"><span class="identifier">tuple</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;</span></tt>.
         </p>
 <div class="table">
-<a name="id455471"></a><p class="title"><b>Table 5. /Spirit.Karma/ compound generator attribute types</b></p>
+<a name="id456301"></a><p class="title"><b>Table 5. /Spirit.Karma/ compound generator attribute types</b></p>
 <table class="table" summary="/Spirit.Karma/ compound generator attribute types">
 <colgroup>
 <col>

Modified: trunk/libs/spirit/doc/html/spirit/lex.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -105,7 +105,7 @@
         </li>
 </ul></div>
 <a name="spirit.lex.lexer_introduction.why_use_a_separate_lexer_"></a><h4>
-<a name="id460390"></a>
+<a name="id461218"></a>
         <a href="lex.html#spirit.lex.lexer_introduction.why_use_a_separate_lexer_">Why
         Use a Separate Lexer?</a>
       </h4>
@@ -204,7 +204,7 @@
         grammar recognizers.
       </p>
 <a name="spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_"></a><h4>
-<a name="id460730"></a>
+<a name="id461573"></a>
         <a href="lex.html#spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_">Advantages
         of using <span class="emphasis"><em>Spirit.Lex</em></span></a>
       </h4>
@@ -253,7 +253,7 @@
         application.
       </p>
 <a name="spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_"></a><h4>
-<a name="id460900"></a>
+<a name="id461744"></a>
         <a href="lex.html#spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_">The
         Library Structure of <span class="emphasis"><em>Spirit.Lex</em></span></a>
       </h4>

Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -100,7 +100,7 @@
             of the <span class="emphasis"><em>Spirit.Lex</em></span> library.
           </p>
 <a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token"></a><h6>
-<a name="id471655"></a>
+<a name="id472498"></a>
             <a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token">The
             Anatomy of a Token</a>
           </h6>
@@ -237,7 +237,7 @@
             when it is requested for the first time.
           </p>
 <a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition"></a><h6>
-<a name="id472471"></a>
+<a name="id473319"></a>
             <a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition">The
             Physiognomy of a Token Definition</a>
           </h6>
@@ -310,7 +310,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token_class___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_"></a><h6>
-<a name="id472881"></a>
+<a name="id473729"></a>
             <a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token_class___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_">Examples
             of using lexertl_token<></a>
           </h6>

Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -30,17 +30,17 @@
 <div></div>
 </div>
 <a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions"></a><h5>
-<a name="id477209"></a>
+<a name="id478050"></a>
           <a href="lexer_states.html#spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions">Controlling
           the Lexer State from Lexer Semantic Actions</a>
         </h5>
 <a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions"></a><h5>
-<a name="id477235"></a>
+<a name="id478077"></a>
           <a href="lexer_states.html#spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions">Controlling
           the Lexer State from Parser Semantic Actions</a>
         </h5>
 <a name="spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser"></a><h5>
-<a name="id477263"></a>
+<a name="id478105"></a>
           <a href="lexer_states.html#spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser">Using
           a Lexer State for the Skip Parser</a>
         </h5>

Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -183,7 +183,7 @@
 <p>
         </p>
 <a name="spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer"></a><h5>
-<a name="id475348"></a>
+<a name="id476189"></a>
           <a href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer">Generating
           the Static Analyzer</a>
         </h5>
@@ -232,7 +232,7 @@
           the next topic (the full generated code can be viewed here).
         </p>
 <a name="spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer"></a><h5>
-<a name="id475814"></a>
+<a name="id476655"></a>
           <a href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer">Modifying
           the Dynamic Analyzer</a>
         </h5>

Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -34,12 +34,12 @@
 <div></div>
 </div>
 <a name="spirit.lex.abstracts.lexer_tokenizing._tokenize_function_the_tokenize___function"></a><h5>
-<a name="id473691"></a>
+<a name="id474539"></a>
           <a href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing._tokenize_function_the_tokenize___function">:tokenize_function
           The tokenize() function</a>
         </h5>
 <a name="spirit.lex.abstracts.lexer_tokenizing._generate_static_function_the_generate_static___function"></a><h5>
-<a name="id473719"></a>
+<a name="id474566"></a>
           <a href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing._generate_static_function_the_generate_static___function">:generate_static_function
           The generate_static() function</a>
         </h5>

Modified: trunk/libs/spirit/doc/html/spirit/lex/reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -57,7 +57,7 @@
 <div></div>
 </div>
 <div class="table">
-<a name="id477356"></a><p class="title"><b>Table 6. Regular expressions support</b></p>
+<a name="id478197"></a><p class="title"><b>Table 6. Regular expressions support</b></p>
 <table class="table" summary="Regular expressions support">
 <colgroup>
 <col>
@@ -388,7 +388,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.lex.reference.concepts.lexer.regular_expression_precedence"></a><h6>
-<a name="id479447"></a>
+<a name="id480288"></a>
             <a href="reference.html#spirit.lex.reference.concepts.lexer.regular_expression_precedence">Regular
             Expression Precedence</a>
           </h6>
@@ -407,7 +407,7 @@
             </li>
 </ul></div>
 <a name="spirit.lex.reference.concepts.lexer.macros"></a><h6>
-<a name="id479603"></a>
+<a name="id480444"></a>
             <a href="reference.html#spirit.lex.reference.concepts.lexer.macros">Macros</a>
           </h6>
 <p>

Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -30,22 +30,22 @@
 <div></div>
 </div>
 <a name="spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model"></a><h5>
-<a name="id479810"></a>
+<a name="id480650"></a>
           <a href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model">The
           lexertl_lexer Class Implementing the Dynamic Model</a>
         </h5>
 <a name="spirit.lex.reference.lexer_class.the_lexertl_actor_lexer_class_implementing_the_dynamic_model"></a><h5>
-<a name="id479836"></a>
+<a name="id480677"></a>
           <a href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_actor_lexer_class_implementing_the_dynamic_model">The
           lexertl_actor_lexer Class Implementing the Dynamic Model</a>
         </h5>
 <a name="spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model"></a><h5>
-<a name="id479863"></a>
+<a name="id480704"></a>
           <a href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model">The
           lexertl_static_lexer Class Implementing the Static Model</a>
         </h5>
 <a name="spirit.lex.reference.lexer_class.the_lexertl_static_actor_lexer_class_implementing_the_static_model"></a><h5>
-<a name="id479892"></a>
+<a name="id480733"></a>
           <a href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_static_actor_lexer_class_implementing_the_static_model">The
           lexertl_static_actor_lexer Class Implementing the Static Model</a>
         </h5>

Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -47,7 +47,7 @@
           (for the full example code see here: word_count_functor.cpp).
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.prerequisites"></a><h5>
-<a name="id461346"></a>
+<a name="id462184"></a>
           <a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.prerequisites">Prerequisites</a>
         </h5>
 <p>
@@ -86,7 +86,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.defining_tokens"></a><h5>
-<a name="id461694"></a>
+<a name="id462531"></a>
           <a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.defining_tokens">Defining
           Tokens</a>
         </h5>
@@ -141,7 +141,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work"></a><h5>
-<a name="id462142"></a>
+<a name="id462980"></a>
           <a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work">Doing
           the Useful Work</a>
         </h5>
@@ -206,7 +206,7 @@
           as well.
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together"></a><h5>
-<a name="id462840"></a>
+<a name="id463677"></a>
           <a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together">Pulling
           Everything Together</a>
         </h5>
@@ -261,7 +261,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.comparing__emphasis_spirit_lex__emphasis__with__ulink_url__http___flex_sourceforge_net___flex__ulink_"></a><h5>
-<a name="id463966"></a>
+<a name="id464804"></a>
           <a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.comparing__emphasis_spirit_lex__emphasis__with__ulink_url__http___flex_sourceforge_net___flex__ulink_">Comparing
           <span class="emphasis"><em>Spirit.Lex</em></span> with Flex</a>
         </h5>

Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -49,7 +49,7 @@
           options along the lines (for the full example code see here: word_count_lexer.cpp).
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.prerequisites"></a><h5>
-<a name="id465022"></a>
+<a name="id465859"></a>
           <a href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.prerequisites">Prerequisites</a>
         </h5>
 <p>
@@ -123,7 +123,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_"></a><h5>
-<a name="id465910"></a>
+<a name="id466749"></a>
           <a href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_">Semantic
           Actions in <span class="emphasis"><em>Spirit.Lex</em></span></a>
         </h5>
@@ -235,7 +235,7 @@
           to the internal lexer context.
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer"></a><h5>
-<a name="id467269"></a>
+<a name="id468107"></a>
           <a href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer">Associating
           Token Definitions with the Lexer</a>
         </h5>

Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -74,7 +74,7 @@
           code see here: word_count.cpp).
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.prerequisites"></a><h5>
-<a name="id467847"></a>
+<a name="id468685"></a>
           <a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.prerequisites">Prerequisites</a>
         </h5>
 <p>
@@ -124,7 +124,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.defining_tokens"></a><h5>
-<a name="id468452"></a>
+<a name="id469290"></a>
           <a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.defining_tokens">Defining
           Tokens</a>
         </h5>
@@ -179,7 +179,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers"></a><h5>
-<a name="id468923"></a>
+<a name="id469766"></a>
           <a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers">Using
           Token Definition Instances as Parsers</a>
         </h5>
@@ -335,7 +335,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together"></a><h5>
-<a name="id470258"></a>
+<a name="id471101"></a>
           <a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together">Pulling
           Everything Together</a>
         </h5>

Modified: trunk/libs/spirit/doc/html/spirit/qi.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -6,7 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
 <link rel="home" href="../index.html" title="Spirit 2.1">
 <link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="previous" href="structure.html" title="Structure">
+<link rel="previous" href="abstracts/parsing_expression_grammar.html" title="Parsing
+ Expression Grammar">
 <link rel="next" href="qi/quick_reference.html" title="Quick Reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +21,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="structure.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi/quick_reference.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="abstracts/parsing_expression_grammar.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi/quick_reference.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage">
@@ -102,7 +103,7 @@
 <div></div>
 </div>
 <a name="spirit.qi.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_"></a><h5>
-<a name="id414456"></a>
+<a name="id415218"></a>
           <a href="qi.html#spirit.qi.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_">Why
           would you want to use Spirit.Qi?</a>
         </h5>
@@ -153,7 +154,7 @@
           on how to build parsers from the simplest parser, building up as we go.
         </p>
 <a name="spirit.qi.tutorials.warming_up.trivial_example__1_parsing_a_number"></a><h5>
-<a name="id414536"></a>
+<a name="id415299"></a>
           <a href="qi.html#spirit.qi.tutorials.warming_up.trivial_example__1_parsing_a_number">Trivial
           Example #1 Parsing a number</a>
         </h5>
@@ -168,7 +169,7 @@
           parsers and consistent naming conventions help you keep from going insane!
         </p>
 <a name="spirit.qi.tutorials.warming_up.trivial_example__2_parsing_two_numbers"></a><h5>
-<a name="id414582"></a>
+<a name="id415345"></a>
           <a href="qi.html#spirit.qi.tutorials.warming_up.trivial_example__2_parsing_two_numbers">Trivial
           Example #2 Parsing two numbers</a>
         </h5>
@@ -201,7 +202,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.qi.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers"></a><h5>
-<a name="id414671"></a>
+<a name="id415433"></a>
           <a href="qi.html#spirit.qi.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers">Trivial
           Example #3 Parsing one or more numbers</a>
         </h5>
@@ -225,7 +226,7 @@
           in most places.
         </p>
 <a name="spirit.qi.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers"></a><h5>
-<a name="id414748"></a>
+<a name="id415510"></a>
           <a href="qi.html#spirit.qi.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers">Trivial
           Example #4 Parsing a comma-delimited list of numbers</a>
         </h5>
@@ -248,7 +249,7 @@
           star encloses the complete expression above.
         </p>
 <a name="spirit.qi.tutorials.warming_up.let_s_parse_"></a><h5>
-<a name="id414924"></a>
+<a name="id415686"></a>
           <a href="qi.html#spirit.qi.tutorials.warming_up.let_s_parse_">Let's Parse!</a>
         </h5>
 <p>
@@ -618,7 +619,7 @@
           The examples above can be found here: ../../example/qi/actions.cpp
         </p>
 <a name="spirit.qi.tutorials.semantic_actions.phoenix"></a><h5>
-<a name="id417351"></a>
+<a name="id418146"></a>
           <a href="qi.html#spirit.qi.tutorials.semantic_actions.phoenix">Phoenix</a>
         </h5>
 <p>
@@ -1187,7 +1188,7 @@
           </li>
 </ul></div>
 <a name="spirit.qi.tutorials.roman_numerals.symbol_table"></a><h5>
-<a name="id422369"></a>
+<a name="id423187"></a>
           <a href="qi.html#spirit.qi.tutorials.roman_numerals.symbol_table">Symbol
           Table</a>
         </h5>
@@ -1319,7 +1320,7 @@
           They are all parsers.
         </p>
 <a name="spirit.qi.tutorials.roman_numerals.rules"></a><h5>
-<a name="id423674"></a>
+<a name="id424500"></a>
           <a href="qi.html#spirit.qi.tutorials.roman_numerals.rules">Rules</a>
         </h5>
 <p>
@@ -1399,7 +1400,7 @@
 <pre class="programlisting"><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="special">*(</span><span class="char">','</span> <span class="special">&gt;&gt;</span> <span class="identifier">double_</span><span class="special">);</span>
 </pre>
 <a name="spirit.qi.tutorials.roman_numerals.grammars"></a><h5>
-<a name="id424256"></a>
+<a name="id425083"></a>
           <a href="qi.html#spirit.qi.tutorials.roman_numerals.grammars">Grammars</a>
         </h5>
 <p>
@@ -1504,7 +1505,7 @@
           </li>
 </ul></div>
 <a name="spirit.qi.tutorials.roman_numerals.let_s_parse_"></a><h5>
-<a name="id425273"></a>
+<a name="id426100"></a>
           <a href="qi.html#spirit.qi.tutorials.roman_numerals.let_s_parse_">Let's Parse!</a>
         </h5>
 <p>
@@ -1708,7 +1709,7 @@
           has a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt> attribute.
         </p>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.lexeme"></a><h5>
-<a name="id427553"></a>
+<a name="id428379"></a>
           <a href="qi.html#spirit.qi.tutorials.employee___parsing_into_structs.lexeme">Lexeme</a>
         </h5>
 <pre class="programlisting"><span class="identifier">lexeme</span><span class="special">[</span><span class="char">'"'</span> <span class="special">&gt;&gt;</span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">&gt;&gt;</span> <span class="char">'"'</span><span class="special">];</span>
@@ -1725,7 +1726,7 @@
           a double quote.
         </p>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.difference"></a><h5>
-<a name="id427709"></a>
+<a name="id428535"></a>
           <a href="qi.html#spirit.qi.tutorials.employee___parsing_into_structs.difference">Difference</a>
         </h5>
 <p>
@@ -1744,7 +1745,7 @@
           is just <tt class="computeroutput"><span class="keyword">char</span></tt>.
         </p>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.plus"></a><h5>
-<a name="id427867"></a>
+<a name="id428693"></a>
           <a href="qi.html#spirit.qi.tutorials.employee___parsing_into_structs.plus">Plus</a>
         </h5>
 <pre class="programlisting"><span class="special">+</span><span class="identifier">a</span>
@@ -1763,7 +1764,7 @@
 <pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;</span>
 </pre>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.sequence_attribute"></a><h5>
-<a name="id428053"></a>
+<a name="id428880"></a>
           <a href="qi.html#spirit.qi.tutorials.employee___parsing_into_structs.sequence_attribute">Sequence
           Attribute</a>
         </h5>
@@ -1804,7 +1805,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.attribute_collapsing"></a><h5>
-<a name="id428375"></a>
+<a name="id429202"></a>
           <a href="qi.html#spirit.qi.tutorials.employee___parsing_into_structs.attribute_collapsing">Attribute
           Collapsing</a>
         </h5>
@@ -1836,7 +1837,7 @@
 <pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;</span>
 </pre>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.auto_rules"></a><h5>
-<a name="id428724"></a>
+<a name="id429551"></a>
           <a href="qi.html#spirit.qi.tutorials.employee___parsing_into_structs.auto_rules">Auto
           Rules</a>
         </h5>
@@ -1874,7 +1875,7 @@
           directly into the rule's attribute, in-situ.
         </p>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.finally"></a><h5>
-<a name="id429168"></a>
+<a name="id429995"></a>
           <a href="qi.html#spirit.qi.tutorials.employee___parsing_into_structs.finally">Finally</a>
         </h5>
 <p>
@@ -1997,7 +1998,7 @@
           for testing purposes. "4.toyxml" has an error in it.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.first_cut"></a><h5>
-<a name="id430075"></a>
+<a name="id430902"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___asts_.first_cut">First Cut</a>
         </h5>
 <p>
@@ -2073,7 +2074,7 @@
           by the placeholder <tt class="computeroutput"><span class="identifier">_val</span></tt>).
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.alternates"></a><h5>
-<a name="id431675"></a>
+<a name="id432502"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___asts_.alternates">Alternates</a>
         </h5>
 <pre class="programlisting"><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml_node</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">node</span><span class="special">;</span>
@@ -2103,7 +2104,7 @@
 <span class="special">;</span>
 </pre>
 <a name="spirit.qi.tutorials.mini_xml___asts_.not_predicate"></a><h5>
-<a name="id432136"></a>
+<a name="id432964"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___asts_.not_predicate">Not
           Predicate</a>
         </h5>
@@ -2130,7 +2131,7 @@
           at this point.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.inherited_attribute"></a><h5>
-<a name="id432377"></a>
+<a name="id433204"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___asts_.inherited_attribute">Inherited
           Attribute</a>
         </h5>
@@ -2156,7 +2157,7 @@
           <tt class="computeroutput"><span class="identifier">_r3</span></tt>, etc. if you have more).
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.a_lazy_lit"></a><h5>
-<a name="id432656"></a>
+<a name="id433484"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___asts_.a_lazy_lit">A Lazy
           Lit</a>
         </h5>
@@ -2190,7 +2191,7 @@
           accessors, provided by Phoenix.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.how_it_all_works"></a><h5>
-<a name="id433136"></a>
+<a name="id433963"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___asts_.how_it_all_works">How
           it all works</a>
         </h5>
@@ -2237,7 +2238,7 @@
           as <tt class="computeroutput"><span class="identifier">_r1</span></tt>.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.the_structures"></a><h5>
-<a name="id433580"></a>
+<a name="id434407"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___asts_.the_structures">The
           Structures</a>
         </h5>
@@ -2270,7 +2271,7 @@
 <p>
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.of_alternates_and_variants"></a><h5>
-<a name="id433848"></a>
+<a name="id434675"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___asts_.of_alternates_and_variants">Of
           Alternates and Variants</a>
         </h5>
@@ -2297,7 +2298,7 @@
           of <tt class="computeroutput"><span class="identifier">a</span></tt> and <tt class="computeroutput"><span class="identifier">B</span></tt> is the attribute of <tt class="computeroutput"><span class="identifier">b</span></tt>.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.adapting_structs_again"></a><h5>
-<a name="id434114"></a>
+<a name="id434941"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___asts_.adapting_structs_again">Adapting
           structs again</a>
         </h5>
@@ -2323,7 +2324,7 @@
 <p>
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.one_more_take"></a><h5>
-<a name="id434312"></a>
+<a name="id435139"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___asts_.one_more_take">One
           More Take</a>
         </h5>
@@ -2392,7 +2393,7 @@
           in the <tt class="computeroutput"><span class="identifier">xml</span></tt> rule:
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.local_variables"></a><h5>
-<a name="id435556"></a>
+<a name="id436383"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___asts_.local_variables">Local
           Variables</a>
         </h5>
@@ -2458,7 +2459,7 @@
           What's new?
         </p>
 <a name="spirit.qi.tutorials.mini_xml___error_handling.readable_names"></a><h5>
-<a name="id436009"></a>
+<a name="id436836"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___error_handling.readable_names">Readable
           Names</a>
         </h5>
@@ -2477,7 +2478,7 @@
 <span class="identifier">end_tag</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"end_tag"</span><span class="special">);</span>
 </pre>
 <a name="spirit.qi.tutorials.mini_xml___error_handling.on_error"></a><h5>
-<a name="id436260"></a>
+<a name="id437087"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___error_handling.on_error">On
           Error</a>
         </h5>
@@ -2615,7 +2616,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.tutorials.mini_xml___error_handling.expectation_points"></a><h5>
-<a name="id436930"></a>
+<a name="id437758"></a>
           <a href="qi.html#spirit.qi.tutorials.mini_xml___error_handling.expectation_points">Expectation
           Points</a>
         </h5>
@@ -2671,7 +2672,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="structure.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi/quick_reference.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="abstracts/parsing_expression_grammar.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi/quick_reference.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -47,7 +47,7 @@
           <span class="identifier">b</span></tt> will be <tt class="computeroutput"><span class="identifier">tuple</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;</span></tt>.
         </p>
 <div class="table">
-<a name="id443274"></a><p class="title"><b>Table 4. compound parser attribute types</b></p>
+<a name="id444103"></a><p class="title"><b>Table 4. compound parser attribute types</b></p>
 <table class="table" summary="compound parser attribute types">
 <colgroup>
 <col>

Modified: trunk/libs/spirit/doc/html/spirit/structure.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/structure.html (original)
+++ trunk/libs/spirit/doc/html/spirit/structure.html 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -7,7 +7,7 @@
 <link rel="home" href="../index.html" title="Spirit 2.1">
 <link rel="up" href="../index.html" title="Spirit 2.1">
 <link rel="previous" href="introduction.html" title="Introduction">
-<link rel="next" href="qi.html" title="Qi">
+<link rel="next" href="abstracts.html" title="Abstracts">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="introduction.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="introduction.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="abstracts.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage">
@@ -228,7 +228,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="introduction.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="introduction.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="abstracts.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: trunk/libs/spirit/doc/spirit2.qbk
==============================================================================
--- trunk/libs/spirit/doc/spirit2.qbk (original)
+++ trunk/libs/spirit/doc/spirit2.qbk 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -100,6 +100,13 @@
 [def __class_lexertl_static_lexer__ [link spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model `lexertl_static_lexer<>`]]
 
 
+[/ References to abstracts ]
+
+[def __rd__ [Recursive Descent] [/$$$ TODO: link me $$$]
+[def __syntax_diagrams__ [link spirit.abstracts.syntax_diagrams Syntax Diagram]]
+[def __peg__ [link spirit.abstracts.parsing_expression_grammar Parsing Expression Grammar]]
+[def __ast__ [Abstract Syntax Tree] [/$$$ TODO: link me $$$]
+
 [/ Some images ]
 
 [def __note__ [$images/note.png]]
@@ -108,7 +115,6 @@
 [def __caution__ [$images/caution.png]]
 [def __danger__ [$images/alert.png]]
 
-
 [/ some templates]
 
 [/ fig[ref title label]

Modified: trunk/libs/spirit/test/qi/alternative.cpp
==============================================================================
--- trunk/libs/spirit/test/qi/alternative.cpp (original)
+++ trunk/libs/spirit/test/qi/alternative.cpp 2009-06-13 01:07:43 EDT (Sat, 13 Jun 2009)
@@ -180,7 +180,7 @@
             char_ >> char_ >> -(char_ % ','), s )) );
         BOOST_TEST(s == "ab");
 
- // test having an variant<container, ...> inside a sequence
+ // test having a variant<container, ...> inside a sequence
         s.erase();
         BOOST_TEST( (test_attr("ab",
             char_ >> char_ >> ((char_ % ',') | eps), s )) );


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