Changeset 54630


Ignore:
Timestamp:
Jul 4, 2009, 3:14:23 AM (9 years ago)
Author:
Joel de Guzman
Message:

updates

Location:
trunk/libs/spirit
Files:
16 added
77 edited

Legend:

Unmodified
Added
Removed
  • trunk/libs/spirit/doc/html/index.html

    r54368 r54630  
    44<title>Spirit 2.1</title>
    55<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="index.html" title="Spirit 2.1">
    88<link rel="next" href="spirit/preface.html" title="Preface">
    99</head>
     
    3434<div><p class="copyright">Copyright © 2001-2009 Joel
    3535      de Guzman, Hartmut Kaiser</p></div>
    36 <div><div class="legalnotice">
    37 <a name="id2593886"></a><p>
     36<div><div class="legalnotice"><p>
    3837        Distributed under the Boost Software License, Version 1.0. (See accompanying
    3938        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
    40       </p>
    41 </div></div>
     39      </p></div></div>
    4240</div>
     41<div></div>
    4342<hr>
    4443</div>
     
    8887<dt><span class="section"><a href="spirit/qi/quick_reference/compound_attribute_rules.html">Compound
    8988        Attribute Rules</a></span></dt>
    90 <dt><span class="section"><a href="spirit/qi/quick_reference/lazy_arguments.html">Lazy Arguments</a></span></dt>
    9189<dt><span class="section"><a href="spirit/qi/quick_reference/non_terminals.html">Non-terminals</a></span></dt>
    9290<dt><span class="section"><a href="spirit/qi/quick_reference/semantic_actions.html">Semantic
    9391        Actions</a></span></dt>
    9492<dt><span class="section"><a href="spirit/qi/quick_reference/phoenix.html">Phoenix</a></span></dt>
     93</dl></dd>
     94<dt><span class="section"><a href="spirit/qi/reference.html">Reference</a></span></dt>
     95<dd><dl>
     96<dt><span class="section"><a href="spirit/qi/reference/concepts.html">Concepts</a></span></dt>
     97<dt><span class="section"><a href="spirit/qi/reference/basics.html">Basics</a></span></dt>
     98<dt><span class="section"><a href="spirit/qi/reference/string.html">String</a></span></dt>
    9599</dl></dd>
    96100</dl></dd>
     
    163167</dl>
    164168</div>
     169<p>
     170    Character Encoding Namespace
     171  </p>
    165172</div>
    166173<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
    167 <td align="left"><p><small>Last revised: June 26, 2009 at 07:01:45 GMT</small></p></td>
     174<td align="left"><p><small>Last revised: July 04, 2009 at 03:01:52 GMT</small></p></td>
    168175<td align="right"><div class="copyright-footer"></div></td>
    169176</tr></table>
  • trunk/libs/spirit/doc/html/spirit/abstracts.html

    r54361 r54630  
    44<title>Abstracts</title>
    55<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../index.html" title="Spirit 2.1">
    88<link rel="up" href="../index.html" title="Spirit 2.1">
    9 <link rel="prev" href="structure/include.html" title="Include">
     9<link rel="previous" href="structure/include.html" title="Include">
    1010<link rel="next" href="abstracts/syntax_diagram.html" title="Syntax Diagram">
    1111</head>
     
    2424</div>
    2525<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
    27 <a name="spirit.abstracts"></a><a class="link" href="abstracts.html" title="Abstracts">Abstracts</a>
    28 </h2></div></div></div>
     26<div class="titlepage">
     27<div><div><h2 class="title" style="clear: both">
     28<a name="spirit.abstracts"></a><a href="abstracts.html" title="Abstracts">Abstracts</a>
     29</h2></div></div>
     30<div></div>
     31</div>
    2932<div class="toc"><dl>
    3033<dt><span class="section"><a href="abstracts/syntax_diagram.html">Syntax Diagram</a></span></dt>
  • trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html

    r54368 r54630  
    22<head>
    33<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    4 <title>Parsing Expression Grammar</title>
     4<title>Parsing
     5      Expression Grammar</title>
    56<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../index.html" title="Spirit 2.1">
     7<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     8<link rel="home" href="../../index.html" title="Spirit 2.1">
    89<link rel="up" href="../abstracts.html" title="Abstracts">
    9 <link rel="prev" href="syntax_diagram.html" title="Syntax Diagram">
    10 <link rel="next" href="../qi.html" title="Qi">
     10<link rel="previous" href="syntax_diagram.html" title="Syntax Diagram">
     11<link rel="next" href="../qi.html" title=" Qi">
    1112</head>
    1213<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
     
    2425</div>
    2526<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h3 class="title">
    27 <a name="spirit.abstracts.parsing_expression_grammar"></a><a class="link" href="parsing_expression_grammar.html" title="Parsing Expression Grammar">Parsing
     27<div class="titlepage">
     28<div><div><h3 class="title">
     29<a name="spirit.abstracts.parsing_expression_grammar"></a><a href="parsing_expression_grammar.html" title="Parsing
     30      Expression Grammar">Parsing
    2831      Expression Grammar</a>
    29 </h3></div></div></div>
     32</h3></div></div>
     33<div></div>
     34</div>
    3035<p>
    3136        Parsing Expression Grammars (PEG) are a derivative of Extended Backus-Naur
     
    4045        [Abstract Syntax Tree) for each PEG grammar.
    4146      </p>
    42 <a name="spirit.abstracts.parsing_expression_grammar.sequences"></a><h5>
    43 <a name="id2609010"></a>
    44         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.sequences">Sequences</a>
    45       </h5>
     47<a name="spirit.abstracts.parsing_expression_grammar.sequences"></a><h4>
     48<a name="id414838"></a>
     49        <a href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.sequences">Sequences</a>
     50      </h4>
    4651<p>
    4752        Sequences are represented by juxtaposition like in EBNF:
     
    5055</pre>
    5156<p>
    52         The PEG expression above states that, in order for this to succeed, <code class="computeroutput"><span class="identifier">a</span></code> must follow <code class="computeroutput"><span class="identifier">b</span></code>.
     57        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>.
    5358        Here's the syntax diagram:
    5459      </p>
     
    5762          </p>
    5863<p>
    59             <span class="inlinemediaobject"><img src="../../../../images/sequence.png" alt="sequence"></span>
     64            <span class="inlinemediaobject"><img src="../../images/sequence.png" alt="sequence"></span>
    6065          </p>
    6166<p>
     
    6873</pre>
    6974<p>
    70         which means the character <code class="computeroutput"><span class="identifier">x</span></code>
     75        which means the character <tt class="computeroutput"><span class="identifier">x</span></tt>
    7176        must be followed by a digit.
    7277      </p>
     
    7681<th align="left">Note</th>
    7782</tr>
    78 <tr><td align="left" valign="top"><p>
    79           In Spirit.Qi, we use the <code class="computeroutput"><span class="special">&gt;&gt;</span></code>
     83<tr><td colspan="2" align="left" valign="top"><p>
     84          In Spirit.Qi, we use the <tt class="computeroutput"><span class="special">&gt;&gt;</span></tt>
    8085          for sequences since C++ does not allow juxtaposition
    8186        </p></td></tr>
    8287</table></div>
    83 <a name="spirit.abstracts.parsing_expression_grammar.alternatives"></a><h5>
    84 <a name="id2609146"></a>
    85         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.alternatives">Alternatives</a>
    86       </h5>
     88<a name="spirit.abstracts.parsing_expression_grammar.alternatives"></a><h4>
     89<a name="id414988"></a>
     90        <a href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.alternatives">Alternatives</a>
     91      </h4>
    8792<p>
    8893        Alternatives are represented in PEG using the slash:
     
    95100<th align="left">Note</th>
    96101</tr>
    97 <tr><td align="left" valign="top"><p>
    98           In Spirit.Qi, we use the <code class="computeroutput"><span class="special">|</span></code>
     102<tr><td colspan="2" align="left" valign="top"><p>
     103          In Spirit.Qi, we use the <tt class="computeroutput"><span class="special">|</span></tt>
    99104          for alternatives just as in EBNF
    100105        </p></td></tr>
     
    102107<p>
    103108        Alternatives allow for choices. The expression above reads: try to match
    104         <code class="computeroutput"><span class="identifier">a</span></code>. If <code class="computeroutput"><span class="identifier">a</span></code>
    105         succeeds, success, if not try to match <code class="computeroutput"><span class="identifier">b</span></code>.
     109        <tt class="computeroutput"><span class="identifier">a</span></tt>. If <tt class="computeroutput"><span class="identifier">a</span></tt>
     110        succeeds, success, if not try to match <tt class="computeroutput"><span class="identifier">b</span></tt>.
    106111        This is a bit of a deviation from the usual EBNF interpretation where you
    107         simply match <code class="computeroutput"><span class="identifier">a</span></code> <span class="bold"><strong>or</strong></span> <code class="computeroutput"><span class="identifier">b</span></code>.
     112        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>.
    108113        Here's the syntax diagram:
    109114      </p>
     
    112117          </p>
    113118<p>
    114             <span class="inlinemediaobject"><img src="../../../../images/alternative.png" alt="alternative"></span>
     119            <span class="inlinemediaobject"><img src="../../images/alternative.png" alt="alternative"></span>
    115120          </p>
    116121<p>
     
    119124<p>
    120125        PEGs allow for ambiguity in the alternatives. In the expression above, both
    121         <code class="computeroutput"><span class="identifier">a</span></code> or <code class="computeroutput"><span class="identifier">b</span></code>
     126        <tt class="computeroutput"><span class="identifier">a</span></tt> or <tt class="computeroutput"><span class="identifier">b</span></tt>
    122127        can both match an input string. However, only the first matching alternative
    123128        is valid. As noted, there can only be one valid parse tree ($$$ explain more
    124129        about this $$$).
    125130      </p>
    126 <a name="spirit.abstracts.parsing_expression_grammar.loops"></a><h5>
    127 <a name="id2609316"></a>
    128         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.loops">Loops</a>
    129       </h5>
     131<a name="spirit.abstracts.parsing_expression_grammar.loops"></a><h4>
     132<a name="id415173"></a>
     133        <a href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.loops">Loops</a>
     134      </h4>
    130135<p>
    131136        Again, like EBNF, PEG uses the regular-expression Kleene star and the plus
     
    140145<th align="left">Note</th>
    141146</tr>
    142 <tr><td align="left" valign="top"><p>
     147<tr><td colspan="2" align="left" valign="top"><p>
    143148          Spirit.Qi uses the prefix star and plus since there is no postfix star
    144149          or plus in C++.
     
    152157          </p>
    153158<p>
    154             <span class="inlinemediaobject"><img src="../../../../images/kleene.png" alt="kleene"></span>
    155           </p>
    156 <p>
    157         </p>
    158 </blockquote></div>
    159 <div class="blockquote"><blockquote class="blockquote">
    160 <p>
    161           </p>
    162 <p>
    163             <span class="inlinemediaobject"><img src="../../../../images/plus.png" alt="plus"></span>
    164           </p>
    165 <p>
    166         </p>
    167 </blockquote></div>
    168 <p>
    169         The first, called the Kleene star, matches zero or more of its subject <code class="computeroutput"><span class="identifier">a</span></code>. The second, plus, matches one ore more
    170         of its subject <code class="computeroutput"><span class="identifier">a</span></code>.
     159            <span class="inlinemediaobject"><img src="../../images/kleene.png" alt="kleene"></span>
     160          </p>
     161<p>
     162        </p>
     163</blockquote></div>
     164<div class="blockquote"><blockquote class="blockquote">
     165<p>
     166          </p>
     167<p>
     168            <span class="inlinemediaobject"><img src="../../images/plus.png" alt="plus"></span>
     169          </p>
     170<p>
     171        </p>
     172</blockquote></div>
     173<p>
     174        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
     175        of its subject <tt class="computeroutput"><span class="identifier">a</span></tt>.
    171176      </p>
    172177<p>
     
    187192        We will see more of these other mechanisms shortly.
    188193      </p>
    189 <a name="spirit.abstracts.parsing_expression_grammar.difference"></a><h5>
    190 <a name="id2609485"></a>
    191         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.difference">Difference</a>
    192       </h5>
     194<a name="spirit.abstracts.parsing_expression_grammar.difference"></a><h4>
     195<a name="id415350"></a>
     196        <a href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.difference">Difference</a>
     197      </h4>
    193198<p>
    194199        In certain cases, you may want to restrict a certain expression. You can
     
    199204</pre>
    200205<p>
    201         The expression reads: match <code class="computeroutput"><span class="identifier">a</span></code>
    202         but not <code class="computeroutput"><span class="identifier">b</span></code>.
     206        The expression reads: match <tt class="computeroutput"><span class="identifier">a</span></tt>
     207        but not <tt class="computeroutput"><span class="identifier">b</span></tt>.
    203208      </p>
    204209</div>
  • trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html

    r54368 r54630  
    44<title>Syntax Diagram</title>
    55<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../../index.html" title="Spirit 2.1">
    88<link rel="up" href="../abstracts.html" title="Abstracts">
    9 <link rel="prev" href="../abstracts.html" title="Abstracts">
    10 <link rel="next" href="parsing_expression_grammar.html" title="Parsing Expression Grammar">
     9<link rel="previous" href="../abstracts.html" title="Abstracts">
     10<link rel="next" href="parsing_expression_grammar.html" title="Parsing
     11      Expression Grammar">
    1112</head>
    1213<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
     
    2425</div>
    2526<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h3 class="title">
    27 <a name="spirit.abstracts.syntax_diagram"></a><a class="link" href="syntax_diagram.html" title="Syntax Diagram">Syntax Diagram</a>
    28 </h3></div></div></div>
     27<div class="titlepage">
     28<div><div><h3 class="title">
     29<a name="spirit.abstracts.syntax_diagram"></a><a href="syntax_diagram.html" title="Syntax Diagram">Syntax Diagram</a>
     30</h3></div></div>
     31<div></div>
     32</div>
    2933<p>
    3034        In the next section, we will deal with Parsing Expression Grammars (PEG),
     
    3236        It is easier to understand PEG using Syntax Diagrams. Syntax diagrams represent
    3337        a grammar graphically. It was used extensibly by Niklaus Wirth
    34         <sup>[<a name="id2608548" href="#ftn.id2608548" class="footnote">1</a>]</sup>
     38        <sup>[<a name="id414334" href="#ftn.id414334">2</a>]</sup>
    3539        in the "Pascal User Manual". Syntax Diagrams are easily understandable
    3640        with programmers due to its similarity to flow charts. The isomorphism of
     
    3842        parsers which are essentially mutually recursive functions.
    3943      </p>
    40 <a name="spirit.abstracts.syntax_diagram.elements"></a><h5>
    41 <a name="id2608569"></a>
    42         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.elements">Elements</a>
    43       </h5>
     44<a name="spirit.abstracts.syntax_diagram.elements"></a><h4>
     45<a name="id414357"></a>
     46        <a href="syntax_diagram.html#spirit.abstracts.syntax_diagram.elements">Elements</a>
     47      </h4>
    4448<p>
    4549        All diagrams have one entry and exit point. Arrows connect all possible paths
     
    5054          </p>
    5155<p>
    52             <span class="inlinemediaobject"><img src="../../../../images/start_stop.png" alt="start_stop"></span>
     56            <span class="inlinemediaobject"><img src="../../images/start_stop.png" alt="start_stop"></span>
    5357          </p>
    5458<p>
     
    6367          </p>
    6468<p>
    65             <span class="inlinemediaobject"><img src="../../../../images/terminal.png" alt="terminal"></span>
     69            <span class="inlinemediaobject"><img src="../../images/terminal.png" alt="terminal"></span>
    6670          </p>
    6771<p>
     
    7781          </p>
    7882<p>
    79             <span class="inlinemediaobject"><img src="../../../../images/non-terminal.png" alt="non-terminal"></span>
    80           </p>
    81 <p>
    82         </p>
    83 </blockquote></div>
    84 <a name="spirit.abstracts.syntax_diagram.constructs"></a><h5>
    85 <a name="id2608676"></a>
    86         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.constructs">Constructs</a>
    87       </h5>
     83            <span class="inlinemediaobject"><img src="../../images/non-terminal.png" alt="non-terminal"></span>
     84          </p>
     85<p>
     86        </p>
     87</blockquote></div>
     88<a name="spirit.abstracts.syntax_diagram.constructs"></a><h4>
     89<a name="id414478"></a>
     90        <a href="syntax_diagram.html#spirit.abstracts.syntax_diagram.constructs">Constructs</a>
     91      </h4>
    8892<p>
    8993        The most basic composition is the Sequence. B follows A:
     
    9397          </p>
    9498<p>
    95             <span class="inlinemediaobject"><img src="../../../../images/sequence.png" alt="sequence"></span>
     99            <span class="inlinemediaobject"><img src="../../images/sequence.png" alt="sequence"></span>
    96100          </p>
    97101<p>
     
    108112          </p>
    109113<p>
    110             <span class="inlinemediaobject"><img src="../../../../images/alternative.png" alt="alternative"></span>
     114            <span class="inlinemediaobject"><img src="../../images/alternative.png" alt="alternative"></span>
    111115          </p>
    112116<p>
     
    120124          </p>
    121125<p>
    122             <span class="inlinemediaobject"><img src="../../../../images/optional.png" alt="optional"></span>
     126            <span class="inlinemediaobject"><img src="../../images/optional.png" alt="optional"></span>
    123127          </p>
    124128<p>
     
    132136          </p>
    133137<p>
    134             <span class="inlinemediaobject"><img src="../../../../images/kleene.png" alt="kleene"></span>
    135           </p>
    136 <p>
    137         </p>
    138 </blockquote></div>
    139 <div class="blockquote"><blockquote class="blockquote">
    140 <p>
    141           </p>
    142 <p>
    143             <span class="inlinemediaobject"><img src="../../../../images/plus.png" alt="plus"></span>
     138            <span class="inlinemediaobject"><img src="../../images/kleene.png" alt="kleene"></span>
     139          </p>
     140<p>
     141        </p>
     142</blockquote></div>
     143<div class="blockquote"><blockquote class="blockquote">
     144<p>
     145          </p>
     146<p>
     147            <span class="inlinemediaobject"><img src="../../images/plus.png" alt="plus"></span>
    144148          </p>
    145149<p>
     
    153157        This behavior is quite obvious with syntax diagrams as they resemble flow-charts.
    154158      </p>
    155 <a name="spirit.abstracts.syntax_diagram.predicates"></a><h5>
    156 <a name="id2608846"></a>
    157         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.predicates">Predicates</a>
    158       </h5>
     159<a name="spirit.abstracts.syntax_diagram.predicates"></a><h4>
     160<a name="id414661"></a>
     161        <a href="syntax_diagram.html#spirit.abstracts.syntax_diagram.predicates">Predicates</a>
     162      </h4>
    159163<p>
    160164        Now, the following are Syntax Diagram versions of PEG predicates. These are
     
    169173          </p>
    170174<p>
    171             <span class="inlinemediaobject"><img src="../../../../images/predicate.png" alt="predicate"></span>
     175            <span class="inlinemediaobject"><img src="../../images/predicate.png" alt="predicate"></span>
    172176          </p>
    173177<p>
     
    186190          </p>
    187191<p>
    188             <span class="inlinemediaobject"><img src="../../../../images/and_predicate.png" alt="and_predicate"></span>
    189           </p>
    190 <p>
    191         </p>
    192 </blockquote></div>
    193 <div class="blockquote"><blockquote class="blockquote">
    194 <p>
    195           </p>
    196 <p>
    197             <span class="inlinemediaobject"><img src="../../../../images/not_predicate.png" alt="not_predicate"></span>
     192            <span class="inlinemediaobject"><img src="../../images/and_predicate.png" alt="and_predicate"></span>
     193          </p>
     194<p>
     195        </p>
     196</blockquote></div>
     197<div class="blockquote"><blockquote class="blockquote">
     198<p>
     199          </p>
     200<p>
     201            <span class="inlinemediaobject"><img src="../../images/not_predicate.png" alt="not_predicate"></span>
    198202          </p>
    199203<p>
     
    209213<div class="footnotes">
    210214<br><hr width="100" align="left">
    211 <div class="footnote"><p><sup>[<a name="ftn.id2608548" href="#id2608548" class="para">1</a>] </sup>
     215<div class="footnote"><p><sup>[<a name="ftn.id414334" href="#id414334">2</a>] </sup>
    212216            Niklaus Wirth: The Programming Language Pascal. (July 1973)
    213217          </p></div>
  • trunk/libs/spirit/doc/html/spirit/acknowledgments.html

    r54368 r54630  
    44<title>Acknowledgments</title>
    55<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../index.html" title="Spirit 2.1">
    88<link rel="up" href="../index.html" title="Spirit 2.1">
    9 <link rel="prev" href="notes/style_guide.html" title="Style Guide">
     9<link rel="previous" href="notes/style_guide.html" title="Style Guide">
    1010<link rel="next" href="references.html" title="References">
    1111</head>
     
    2424</div>
    2525<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
    27 <a name="spirit.acknowledgments"></a><a class="link" href="acknowledgments.html" title="Acknowledgments">Acknowledgments</a>
    28 </h2></div></div></div>
     26<div class="titlepage">
     27<div><div><h2 class="title" style="clear: both">
     28<a name="spirit.acknowledgments"></a><a href="acknowledgments.html" title="Acknowledgments">Acknowledgments</a>
     29</h2></div></div>
     30<div></div>
     31</div>
    2932<p>
    3033      This version of Spirit is a complete rewrite of the <span class="emphasis"><em>classic</em></span>
     
    3437    </p>
    3538<p>
    36       <span class="bold"><strong>Eric Niebler</strong></span> for writing Boost.Proto, without
     39      <span class="bold"><b>Eric Niebler</b></span> for writing Boost.Proto, without
    3740      which this rewrite wouldn't have been possible, and helping with examples,
    3841      advices, and suggestions on how to use Boost.Proto in the best possible way.
    3942    </p>
    4043<p>
    41       <span class="bold"><strong>Ben Hanson</strong></span> for providing us with an early
     44      <span class="bold"><b>Ben Hanson</b></span> for providing us with an early
    4245      version of his Lexertl library, which is proposed to be included into Boost
    4346      (as Boost.Lexer), but at the time of this writing the Boost review for this
     
    4548    </p>
    4649<p>
    47       <span class="bold"><strong>FIXME</strong></span>: Add more people
    48     </p>
    49 <a name="spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation"></a><h4>
    50 <a name="id2677806"></a>
    51       <a class="link" href="acknowledgments.html#spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation">Acknowledgements
     50      <span class="bold"><b>FIXME</b></span>: Add more people
     51    </p>
     52<a name="spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation"></a><h3>
     53<a name="id499997"></a>
     54      <a href="acknowledgments.html#spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation">Acknowledgements
    5255      from the Spirit V1 <span class="emphasis"><em>classic</em></span> Documentation</a>
    53     </h4>
     56    </h3>
    5457<p>
    5558      Special thanks for working on Spirit <span class="emphasis"><em>classic</em></span> to:
    5659    </p>
    5760<p>
    58       <span class="bold"><strong>Dan Nuffer</strong></span> for his work on lexers, parse trees,
     61      <span class="bold"><b>Dan Nuffer</b></span> for his work on lexers, parse trees,
    5962      ASTs, XML parsers, the multi-pass iterator as well as administering Spirit's
    6063      site, editing, maintaining the CVS and doing the releases plus a zillion of
     
    6265    </p>
    6366<p>
    64       <span class="bold"><strong>Hartmut Kaiser</strong></span> for his work on the C parser,
     67      <span class="bold"><b>Hartmut Kaiser</b></span> for his work on the C parser,
    6568      the work on the C/C++ preprocessor, utility parsers, the original port to Intel
    6669      5.0, various work on Phoenix, porting to v1.5, the meta-parsers, the grouping-parsers,
     
    6871    </p>
    6972<p>
    70       <span class="bold"><strong>Martin Wille</strong></span> who improved grammar multi thread
     73      <span class="bold"><b>Martin Wille</b></span> who improved grammar multi thread
    7174      safety, contributed the eol_p parser, the dynamic parsers, documentation and
    7275      for taking an active role in almost every aspect from brainstorming and design
     
    7578    </p>
    7679<p>
    77       <span class="bold"><strong>Martijn W. Van Der Lee</strong></span> our Web site administrator
     80      <span class="bold"><b>Martijn W. Van Der Lee</b></span> our Web site administrator
    7881      and for contributing the RFC821 parser.
    7982    </p>
    8083<p>
    81       <span class="bold"><strong>Giovanni Bajo</strong></span> for last minute tweaks of Spirit
     84      <span class="bold"><b>Giovanni Bajo</b></span> for last minute tweaks of Spirit
    8285      1.8.0 for CodeWarrior 8.3. Actually, I'm ashamed Giovanni was not in this list
    8386      already. He's done a lot since Spirit 1.5, the first Boost.Spirit release.
     
    8790    </p>
    8891<p>
    89       <span class="bold"><strong>Juan Carlos Arevalo-Baeza (JCAB)*</strong></span> for his
     92      <span class="bold"><b>Juan Carlos Arevalo-Baeza (JCAB)*</b></span> for his
    9093      work on the C++ parser, the position iterator, ports to v1.5 and keeping the
    9194      mailing list discussions alive and kicking.
    9295    </p>
    9396<p>
    94       <span class="bold"><strong>Vaclav Vesely</strong></span>, lots of stuff, the no_actions
     97      <span class="bold"><b>Vaclav Vesely</b></span>, lots of stuff, the no_actions
    9598      directive, various patches fixes, the distinct parsers, the lazy parser, some
    9699      phoenix tweaks and add-ons (e.g. new_). Also, *Stefan Slapeta] and wife for
     
    98101    </p>
    99102<p>
    100       <span class="bold"><strong>Raghavendra Satish</strong></span> for doing the original
     103      <span class="bold"><b>Raghavendra Satish</b></span> for doing the original
    101104      v1.3 port to VC++ and his work on Phoenix.
    102105    </p>
    103106<p>
    104       <span class="bold"><strong>Noah Stein</strong></span> for following up and helping Ragav
     107      <span class="bold"><b>Noah Stein</b></span> for following up and helping Ragav
    105108      on the VC++ ports.
    106109    </p>
    107110<p>
    108       <span class="bold"><strong>Hakki Dogusan</strong></span>, for his original v1.0 Pascal
     111      <span class="bold"><b>Hakki Dogusan</b></span>, for his original v1.0 Pascal
    109112      parser.
    110113    </p>
    111114<p>
    112       <span class="bold"><strong>John (EBo) David</strong></span> for his work on the VM and
     115      <span class="bold"><b>John (EBo) David</b></span> for his work on the VM and
    113116      watching over my shoulder as I code giving the impression of distance eXtreme
    114117      programming.
    115118    </p>
    116119<p>
    117       <span class="bold"><strong>Chris Uzdavinis</strong></span> for feeding in comments and
     120      <span class="bold"><b>Chris Uzdavinis</b></span> for feeding in comments and
    118121      valuable suggestions as well as editing the documentation.
    119122    </p>
    120123<p>
    121       <span class="bold"><strong>Carsten Stoll</strong></span>, for his work on dynamic parsers.
    122     </p>
    123 <p>
    124       <span class="bold"><strong>Andy Elvey</strong></span> and his conifer parser.
    125     </p>
    126 <p>
    127       <span class="bold"><strong>Bruce Florman</strong></span>, who did the original v1.0 port
     124      <span class="bold"><b>Carsten Stoll</b></span>, for his work on dynamic parsers.
     125    </p>
     126<p>
     127      <span class="bold"><b>Andy Elvey</b></span> and his conifer parser.
     128    </p>
     129<p>
     130      <span class="bold"><b>Bruce Florman</b></span>, who did the original v1.0 port
    128131      to VC++.
    129132    </p>
    130133<p>
    131       <span class="bold"><strong>Jeff Westfahl</strong></span> for porting the loop parsers
     134      <span class="bold"><b>Jeff Westfahl</b></span> for porting the loop parsers
    132135      to v1.5 and contributing the file iterator.
    133136    </p>
    134137<p>
    135       <span class="bold"><strong>Peter Simons</strong></span> for the RFC date parser example
     138      <span class="bold"><b>Peter Simons</b></span> for the RFC date parser example
    136139      and tutorial plus helping out with some nitty gritty details.
    137140    </p>
    138141<p>
    139       <span class="bold"><strong>Markus Schöpflin</strong></span> for suggesting the end_p parser
     142      <span class="bold"><b>Markus Schöpflin</b></span> for suggesting the end_p parser
    140143      and lots of other nifty things and his active presence in the mailing list.
    141144    </p>
    142145<p>
    143       <span class="bold"><strong>Doug Gregor</strong></span> for mentoring and his ability
     146      <span class="bold"><b>Doug Gregor</b></span> for mentoring and his ability
    144147      to see things that others don't.
    145148    </p>
    146149<p>
    147       <span class="bold"><strong>David Abrahams</strong></span> for giving Joel a job that
     150      <span class="bold"><b>David Abrahams</b></span> for giving Joel a job that
    148151      allows him to still work on Spirit, plus countless advice and help on C++ and
    149152      specifically template metaprogramming.
    150153    </p>
    151154<p>
    152       <span class="bold"><strong>Aleksey Gurtovoy</strong></span> for his MPL library from
     155      <span class="bold"><b>Aleksey Gurtovoy</b></span> for his MPL library from
    153156      which we stole many metaprogramming tricks especially for less conforming compilers
    154157      such as Borland and VC6/7.
    155158    </p>
    156159<p>
    157       <span class="bold"><strong>Gustavo Guerra</strong></span> for his last minute review
     160      <span class="bold"><b>Gustavo Guerra</b></span> for his last minute review
    158161      of Spirit and constant feedback, plus patches here and there (e.g. proposing
    159162      the new dot behavior of the real numerics parsers).
    160163    </p>
    161164<p>
    162       <span class="bold"><strong>Nicola Musatti</strong></span>, <span class="bold"><strong>Paul
    163       Snively</strong></span>, <span class="bold"><strong>Alisdair Meredith</strong></span> and
    164       <span class="bold"><strong>Hugo Duncan</strong></span> for testing and sending in various
     165      <span class="bold"><b>Nicola Musatti</b></span>, <span class="bold"><b>Paul
     166      Snively</b></span>, <span class="bold"><b>Alisdair Meredith</b></span> and
     167      <span class="bold"><b>Hugo Duncan</b></span> for testing and sending in various
    165168      patches.
    166169    </p>
    167170<p>
    168       <span class="bold"><strong>Steve Rowe</strong></span> for his splendid work on the TSTs
     171      <span class="bold"><b>Steve Rowe</b></span> for his splendid work on the TSTs
    169172      that will soon be taken into Spirit.
    170173    </p>
    171174<p>
    172       <span class="bold"><strong>Jonathan de Halleux</strong></span> for his work on actors.
    173     </p>
    174 <p>
    175       <span class="bold"><strong>Angus Leeming</strong></span> for last minute editing work
     175      <span class="bold"><b>Jonathan de Halleux</b></span> for his work on actors.
     176    </p>
     177<p>
     178      <span class="bold"><b>Angus Leeming</b></span> for last minute editing work
    176179      on the 1.8.0 release documentation, his work on Phoenix and his active presence
    177180      in the Spirit mailing list.
    178181    </p>
    179182<p>
    180       <span class="bold"><strong>Joao Abecasis</strong></span> for his active presence in the
     183      <span class="bold"><b>Joao Abecasis</b></span> for his active presence in the
    181184      Spirit mailing list, providing user support, participating in the discussions
    182185      and so on.
    183186    </p>
    184187<p>
    185       <span class="bold"><strong>Guillaume Melquiond</strong></span> for a last minute patch
     188      <span class="bold"><b>Guillaume Melquiond</b></span> for a last minute patch
    186189      to multi_pass for 1.8.1.
    187190    </p>
    188191<p>
    189       <span class="bold"><strong>Peder Holt</strong></span> for his porting work on Phoenix,
     192      <span class="bold"><b>Peder Holt</b></span> for his porting work on Phoenix,
    190193      Fusion and Spirit to VC6.
    191194    </p>
     
    204207    </p>
    205208<p>
    206       <span class="bold"><strong>John Maddock</strong></span>, our review manager, <span class="bold"><strong>Aleksey Gurtovoy</strong></span>, <span class="bold"><strong>Andre Hentz</strong></span>,
    207       <span class="bold"><strong>Beman Dawes</strong></span>, <span class="bold"><strong>Carl Daniel</strong></span>,
    208       <span class="bold"><strong>Christopher Currie</strong></span>, <span class="bold"><strong>Dan
    209       Gohman</strong></span>, <span class="bold"><strong>Dan Nuffer</strong></span>, <span class="bold"><strong>Daryle
    210       Walker</strong></span>, <span class="bold"><strong>David Abrahams</strong></span>, <span class="bold"><strong>David B. Held</strong></span>, <span class="bold"><strong>Dirk Gerrits</strong></span>,
    211       <span class="bold"><strong>Douglas Gregor</strong></span>, <span class="bold"><strong>Hartmut
    212       Kaiser</strong></span>, <span class="bold"><strong>Iain K.Hanson</strong></span>, <span class="bold"><strong>Juan Carlos Arevalo-Baeza</strong></span>, <span class="bold"><strong>Larry
    213       Evans</strong></span>, <span class="bold"><strong>Martin Wille</strong></span>, <span class="bold"><strong>Mattias Flodin</strong></span>, <span class="bold"><strong>Noah Stein</strong></span>,
    214       <span class="bold"><strong>Nuno Lucas</strong></span>, <span class="bold"><strong>Peter Dimov</strong></span>,
    215       <span class="bold"><strong>Peter Simons</strong></span>, <span class="bold"><strong>Petr Kocmid</strong></span>,
    216       <span class="bold"><strong>Ross Smith</strong></span>, <span class="bold"><strong>Scott Kirkwood</strong></span>,
    217       <span class="bold"><strong>Steve Cleary</strong></span>, <span class="bold"><strong>Thorsten
    218       Ottosen</strong></span>, <span class="bold"><strong>Tom Wenisch</strong></span>, <span class="bold"><strong>Vladimir Prus</strong></span>
     209      <span class="bold"><b>John Maddock</b></span>, our review manager, <span class="bold"><b>Aleksey Gurtovoy</b></span>, <span class="bold"><b>Andre Hentz</b></span>,
     210      <span class="bold"><b>Beman Dawes</b></span>, <span class="bold"><b>Carl Daniel</b></span>,
     211      <span class="bold"><b>Christopher Currie</b></span>, <span class="bold"><b>Dan
     212      Gohman</b></span>, <span class="bold"><b>Dan Nuffer</b></span>, <span class="bold"><b>Daryle
     213      Walker</b></span>, <span class="bold"><b>David Abrahams</b></span>, <span class="bold"><b>David B. Held</b></span>, <span class="bold"><b>Dirk Gerrits</b></span>,
     214      <span class="bold"><b>Douglas Gregor</b></span>, <span class="bold"><b>Hartmut
     215      Kaiser</b></span>, <span class="bold"><b>Iain K.Hanson</b></span>, <span class="bold"><b>Juan Carlos Arevalo-Baeza</b></span>, <span class="bold"><b>Larry
     216      Evans</b></span>, <span class="bold"><b>Martin Wille</b></span>, <span class="bold"><b>Mattias Flodin</b></span>, <span class="bold"><b>Noah Stein</b></span>,
     217      <span class="bold"><b>Nuno Lucas</b></span>, <span class="bold"><b>Peter Dimov</b></span>,
     218      <span class="bold"><b>Peter Simons</b></span>, <span class="bold"><b>Petr Kocmid</b></span>,
     219      <span class="bold"><b>Ross Smith</b></span>, <span class="bold"><b>Scott Kirkwood</b></span>,
     220      <span class="bold"><b>Steve Cleary</b></span>, <span class="bold"><b>Thorsten
     221      Ottosen</b></span>, <span class="bold"><b>Tom Wenisch</b></span>, <span class="bold"><b>Vladimir Prus</b></span>
    219222    </p>
    220223<p>
  • trunk/libs/spirit/doc/html/spirit/faq.html

    r54368 r54630  
    22<head>
    33<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    4 <title>Spirit FAQ</title>
     4<title> Spirit FAQ</title>
    55<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../index.html" title="Spirit 2.1">
    88<link rel="up" href="../index.html" title="Spirit 2.1">
    9 <link rel="prev" href="lex/reference/tokenset_class.html" title="TokenSet Class">
     9<link rel="previous" href="lex/reference/tokenset_class.html" title="TokenSet Class">
    1010<link rel="next" href="notes.html" title="Notes">
    1111</head>
     
    2424</div>
    2525<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
    27 <a name="spirit.faq"></a><a class="link" href="faq.html" title="Spirit FAQ"> Spirit FAQ</a>
    28 </h2></div></div></div>
    29 <a name="spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_"></a><h4>
    30 <a name="id2676133"></a>
    31       <a class="link" href="faq.html#spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_">I'm
     26<div class="titlepage">
     27<div><div><h2 class="title" style="clear: both">
     28<a name="spirit.faq"></a><a href="faq.html" title=" Spirit FAQ"> Spirit FAQ</a>
     29</h2></div></div>
     30<div></div>
     31</div>
     32<a name="spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_"></a><h3>
     33<a name="id498173"></a>
     34      <a href="faq.html#spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_">I'm
    3235      getting multiple symbol definition errors while using Visual C++. Anything
    3336      I could do about that?</a>
    34     </h4>
     37    </h3>
    3538<p>
    36       Do you see strange multiple symbol definition linker errors mentioning <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">failed</span></code>
    37       and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span></code>?
     39      Do you see strange multiple symbol definition linker errors mentioning <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">failed</span></tt>
     40      and <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span></tt>?
    3841      Then this FAQ entry might be for you.
    3942    </p>
    4043<p>
    4144      <a href="http://www.boost.org/libs/mpl/index.html" target="_top">Boost.Mpl</a> implements
    42       a macro <code class="computeroutput"><span class="identifier">BOOST_MPL_ASSERT_MSG</span><span class="special">()</span></code> which essentially is a more powerfull version
     45      a macro <tt class="computeroutput"><span class="identifier">BOOST_MPL_ASSERT_MSG</span><span class="special">()</span></tt> which essentially is a more powerfull version
    4346      of static_assert. Unfortunately under certain circumstances using this macro
    4447      may lead to the aformentioned linker errors.
     
    4649<p>
    4750      <a href="http://spirit.sourceforge.net" target="_top">Spirit</a> allows you to define
    48       a preprocessor constant disabling the usage of <code class="computeroutput"><span class="identifier">BOOST_MPL_ASSERT_MSG</span><span class="special">()</span></code>, while switching to <code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSRT</span><span class="special">()</span></code> instead. If you define BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG=1
     51      a preprocessor constant disabling the usage of <tt class="computeroutput"><span class="identifier">BOOST_MPL_ASSERT_MSG</span><span class="special">()</span></tt>, while switching to <tt class="computeroutput"><span class="identifier">BOOST_STATIC_ASSRT</span><span class="special">()</span></tt> instead. If you define BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG=1
    4952      (either by adding
    5053    </p>
     
    6467      static_assert.
    6568    </p>
    66 <a name="spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_"></a><h4>
    67 <a name="id2676373"></a>
    68       <a class="link" 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
     69<a name="spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_"></a><h3>
     70<a name="id498433"></a>
     71      <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
    6972      very confused about the header hell in my boost/spirit directory. What's all
    7073      this about?</a>
    71     </h4>
     74    </h3>
    7275<p>
    7376      The boost/spirit directory currently holds two versions of the Spirit library:
  • trunk/libs/spirit/doc/html/spirit/introduction.html

    r54366 r54630  
    44<title>Introduction</title>
    55<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../index.html" title="Spirit 2.1">
    88<link rel="up" href="../index.html" title="Spirit 2.1">
    9 <link rel="prev" href="what_s_new.html" title="What's New">
     9<link rel="previous" href="what_s_new.html" title="What's New">
    1010<link rel="next" href="structure.html" title="Structure">
    1111</head>
     
    2424</div>
    2525<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
    27 <a name="spirit.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
    28 </h2></div></div></div>
     26<div class="titlepage">
     27<div><div><h2 class="title" style="clear: both">
     28<a name="spirit.introduction"></a><a href="introduction.html" title="Introduction">Introduction</a>
     29</h2></div></div>
     30<div></div>
     31</div>
    2932<p>
    3033      Boost Spirit is an object-oriented, recursive-descent parser and output generation
    3134      library for C++. It allows you to write grammars and format descriptions using
    32       a format similar to EBNF (Extended Backus Naur Form, see <a href="http://www.csci.csusb.edu/dick/maths/intro_ebnf.html" target="_top">EBNF
    33       intro</a>) directly in C++. These inline grammar specifications can mix
    34       freely with other C++ code and, thanks to the generative power of C++ templates,
    35       are immediately executable. In retrospect, conventional compiler-compilers
    36       or parser-generators have to perform an additional translation step from the
    37       source EBNF code to C or C++ code.
     35      a format similar to Extended Backus Naur Form (EBNF)
     36      <sup>[<a name="id410926" href="#ftn.id410926">1</a>]</sup>
     37      directly in C++. These inline grammar specifications can mix freely with other
     38      C++ code and, thanks to the generative power of C++ templates, are immediately
     39      executable. In retrospect, conventional compiler-compilers or parser-generators
     40      have to perform an additional translation step from the source EBNF code to
     41      C or C++ code.
    3842    </p>
    3943<p>
     
    6771    </p>
    6872<p>
    69       The <a class="link" href="introduction.html#spirit.spiritstructure" title="Figure 1. The overall structure of the Boost Spirit library">figure</a> below depicts the
     73      The <a href="introduction.html#spirit.spiritstructure" title="Figure 1. The overall structure of the Boost Spirit library">figure</a> below depicts the
    7074      overall structure of the Boost Spirit library. The library consists of 4 major
    7175      parts:
     
    100104<div class="figure">
    101105<a name="spirit.spiritstructure"></a><p class="title"><b>Figure 1. The overall structure of the Boost Spirit library</b></p>
    102 <div class="figure-contents"><span class="inlinemediaobject"><img src=".././images/spiritstructure.png" alt="The overall structure of the Boost Spirit library"></span></div>
    103 </div>
    104 <p><br class="figure-break">
     106<span class="inlinemediaobject"><img src="./images/spiritstructure.png" alt="The
     107      overall structure of the Boost Spirit library"></span>
     108</div>
     109<p>
    105110    </p>
    106111<p>
     
    115120    </p>
    116121<p>
    117       The <a class="link" href="introduction.html#spirit.spiritkarmaflow" title="Figure 2. The place of Spirit.Qi and Spirit.Karma in a data transformation flow of a typical application">figure</a> below shows the typical
     122      The <a href="introduction.html#spirit.spiritkarmaflow" title="Figure 2. The place of Spirit.Qi and Spirit.Karma
     123      in a data transformation flow of a typical application">figure</a> below shows the typical
    118124      data flow of some input being converted to some internal representation. After
    119125      some (optional) transformation these data are converted back into some different,
     
    126132<a name="spirit.spiritkarmaflow"></a><p class="title"><b>Figure 2. The place of <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>
    127133      in a data transformation flow of a typical application</b></p>
    128 <div class="figure-contents"><span class="inlinemediaobject"><img src=".././images/spiritkarmaflow.png" alt="The place of Spirit.Qi and Spirit.Karma in a data transformation flow of a typical application"></span></div>
    129 </div>
    130 <p><br class="figure-break">
    131     </p>
    132 <a name="spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_"></a><h4>
    133 <a name="id2605683"></a>
    134       <a class="link" href="introduction.html#spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_">A
     134<span class="inlinemediaobject"><img src="./images/spiritkarmaflow.png" alt="The
     135      place of Spirit.Qi and Spirit.Karma
     136      in a data transformation flow of a typical application"></span>
     137</div>
     138<p>
     139    </p>
     140<a name="spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_"></a><h3>
     141<a name="id411198"></a>
     142      <a href="introduction.html#spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_">A
    135143      Quick Overview of Parsing with <span class="emphasis"><em>Spirit.Qi</em></span></a>
    136     </h4>
     144    </h3>
    137145<p>
    138146      <span class="emphasis"><em>Spirit.Qi</em></span> is Spirit's sublibrary dealing with generating
     
    159167<p>
    160168      Through the magic of expression templates, this is perfectly valid and executable
    161       C++ code. The production rule <code class="computeroutput"><span class="identifier">expression</span></code>
    162       is, in fact, an object that has a member function <code class="computeroutput"><span class="identifier">parse</span></code>
     169      C++ code. The production rule <tt class="computeroutput"><span class="identifier">expression</span></tt>
     170      is, in fact, an object that has a member function <tt class="computeroutput"><span class="identifier">parse</span></tt>
    163171      that does the work given a source code written in the grammar that we have
    164172      just declared. Yes, it's a calculator. We shall simplify for now by skipping
    165       the type declarations and the definition of the rule <code class="computeroutput"><span class="identifier">integer</span></code>
    166       invoked by <code class="computeroutput"><span class="identifier">factor</span></code>. Now, the
    167       production rule <code class="computeroutput"><span class="identifier">expression</span></code>
    168       in our grammar specification, traditionally called the <code class="computeroutput"><span class="identifier">start</span></code>
     173      the type declarations and the definition of the rule <tt class="computeroutput"><span class="identifier">integer</span></tt>
     174      invoked by <tt class="computeroutput"><span class="identifier">factor</span></tt>. Now, the
     175      production rule <tt class="computeroutput"><span class="identifier">expression</span></tt>
     176      in our grammar specification, traditionally called the <tt class="computeroutput"><span class="identifier">start</span></tt>
    169177      symbol, can recognize inputs such as:
    170178    </p>
     
    193201      as seen in math syntax, for example, to mean multiplication or, in our case,
    194202      as seen in EBNF syntax to mean sequencing (b should follow a). Spirit uses
    195       the shift <code class="computeroutput"><span class="special">&gt;&gt;</span></code> operator instead
    196       for this purpose. We take the <code class="computeroutput"><span class="special">&gt;&gt;</span></code>
     203      the shift <tt class="computeroutput"><span class="special">&gt;&gt;</span></tt> operator instead
     204      for this purpose. We take the <tt class="computeroutput"><span class="special">&gt;&gt;</span></tt>
    197205      operator, with arrows pointing to the right, to mean "is followed by".
    198206      Thus we write:
     
    201209</pre>
    202210<p>
    203       The alternative operator <code class="computeroutput"><span class="special">|</span></code> and
    204       the parentheses <code class="computeroutput"><span class="special">()</span></code> remain as is.
    205       The assignment operator <code class="computeroutput"><span class="special">=</span></code> is used
    206       in place of EBNF's <code class="computeroutput"><span class="special">::=</span></code>. Last but
    207       not least, the Kleene star <code class="computeroutput"><span class="special">*</span></code> which
     211      The alternative operator <tt class="computeroutput"><span class="special">|</span></tt> and
     212      the parentheses <tt class="computeroutput"><span class="special">()</span></tt> remain as is.
     213      The assignment operator <tt class="computeroutput"><span class="special">=</span></tt> is used
     214      in place of EBNF's <tt class="computeroutput"><span class="special">::=</span></tt>. Last but
     215      not least, the Kleene star <tt class="computeroutput"><span class="special">*</span></tt> which
    208216      used to be a postfix operator in EBNF becomes a prefix. Instead of:
    209217    </p>
     
    216224</span></pre>
    217225<p>
    218       since there are no postfix stars, <code class="computeroutput"><span class="special">*</span></code>,
     226      since there are no postfix stars, <tt class="computeroutput"><span class="special">*</span></tt>,
    219227      in C/C++. Finally, we terminate each rule with the ubiquitous semi-colon,
    220       <code class="computeroutput"><span class="special">;</span></code>.
    221     </p>
    222 <a name="spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_"></a><h4>
    223 <a name="id2606782"></a>
    224       <a class="link" href="introduction.html#spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_">A
     228      <tt class="computeroutput"><span class="special">;</span></tt>.
     229    </p>
     230<a name="spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_"></a><h3>
     231<a name="id412405"></a>
     232      <a href="introduction.html#spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_">A
    225233      Quick Overview of Output Generation with <span class="emphasis"><em>Spirit.Karma</em></span></a>
    226     </h4>
     234    </h3>
    227235<p>
    228236      Spirit not only allows you to describe the structure of the input. Starting
     
    232240<p>
    233241      Let's assume we need to generate a textual representation from a simple data
    234       structure such as a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code>. Conventional
     242      structure such as a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></tt>. Conventional
    235243      code probably would look like:
    236244    </p>
     
    251259<p>
    252260      Here are some more examples of format descriptions for different output representations
    253       of the same <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code>:
     261      of the same <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></tt>:
    254262    </p>
    255263<div class="table">
    256 <a name="id2607180"></a><p class="title"><b>Table 2. Different output formats for `std::vector&lt;int&gt;`</b></p>
    257 <div class="table-contents"><table class="table" summary="Different output formats for `std::vector&lt;int&gt;`">
     264<a name="id412842"></a><p class="title"><b>Table 2. Different output formats for `std::vector&lt;int&gt;`</b></p>
     265<table class="table" summary="Different output formats for `std::vector&lt;int&gt;`">
    258266<colgroup>
    259267<col>
     
    262270</colgroup>
    263271<thead><tr>
    264 <th>
    265           <p>
     272<th><p>
    266273            Format
    267           </p>
    268           </th>
    269 <th>
    270           <p>
     274          </p></th>
     275<th><p>
    271276            Example
    272           </p>
    273           </th>
    274 <th>
    275           <p>
     277          </p></th>
     278<th><p>
    276279            Description
    277           </p>
    278           </th>
     280          </p></th>
    279281</tr></thead>
    280282<tbody>
    281283<tr>
    282 <td>
    283           <p>
    284             <code class="computeroutput"><span class="char">'['</span> <span class="special">&lt;&lt;</span>
     284<td><p>
     285            <tt class="computeroutput"><span class="char">'['</span> <span class="special">&lt;&lt;</span>
    285286            <span class="special">*(</span><span class="identifier">int_</span>
    286             <span class="special">&lt;&lt;</span> <span class="char">','</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="char">']'</span></code>
    287           </p>
    288           </td>
    289 <td>
    290           <p>
    291             <code class="computeroutput"><span class="special">[</span><span class="number">1</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">10</span><span class="special">,]</span></code>
    292           </p>
    293           </td>
    294 <td>
    295           <p>
     287            <span class="special">&lt;&lt;</span> <span class="char">','</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="char">']'</span></tt>
     288          </p></td>
     289<td><p>
     290            <tt class="computeroutput"><span class="special">[</span><span class="number">1</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">10</span><span class="special">,]</span></tt>
     291          </p></td>
     292<td><p>
    296293            Comma separated list of integers
    297           </p>
    298           </td>
    299 </tr>
    300 <tr>
    301 <td>
    302           <p>
    303             <code class="computeroutput"><span class="special">*(</span><span class="char">'('</span>
     294          </p></td>
     295</tr>
     296<tr>
     297<td><p>
     298            <tt class="computeroutput"><span class="special">*(</span><span class="char">'('</span>
    304299            <span class="special">&lt;&lt;</span> <span class="identifier">int_</span>
    305300            <span class="special">&lt;&lt;</span> <span class="char">')'</span>
    306             <span class="special">&lt;&lt;</span> <span class="char">','</span><span class="special">)</span></code>
    307           </p>
    308           </td>
    309 <td>
    310           <p>
    311             <code class="computeroutput"><span class="special">(</span><span class="number">1</span><span class="special">),(</span><span class="number">8</span><span class="special">),(</span><span class="number">10</span><span class="special">),]</span></code>
    312           </p>
    313           </td>
    314 <td>
    315           <p>
     301            <span class="special">&lt;&lt;</span> <span class="char">','</span><span class="special">)</span></tt>
     302          </p></td>
     303<td><p>
     304            <tt class="computeroutput"><span class="special">(</span><span class="number">1</span><span class="special">),(</span><span class="number">8</span><span class="special">),(</span><span class="number">10</span><span class="special">),]</span></tt>
     305          </p></td>
     306<td><p>
    316307            Comma separated list of integers in parenthesis
    317           </p>
    318           </td>
    319 </tr>
    320 <tr>
    321 <td>
    322           <p>
    323             <code class="computeroutput"><span class="special">*</span><span class="identifier">hex</span></code>
    324           </p>
    325           </td>
    326 <td>
    327           <p>
    328             <code class="computeroutput"><span class="number">18</span><span class="identifier">a</span></code>
    329           </p>
    330           </td>
    331 <td>
    332           <p>
     308          </p></td>
     309</tr>
     310<tr>
     311<td><p>
     312            <tt class="computeroutput"><span class="special">*</span><span class="identifier">hex</span></tt>
     313          </p></td>
     314<td><p>
     315            <tt class="computeroutput"><span class="number">18</span><span class="identifier">a</span></tt>
     316          </p></td>
     317<td><p>
    333318            A list of hexadecimal numbers
    334           </p>
    335           </td>
    336 </tr>
    337 <tr>
    338 <td>
    339           <p>
    340             <code class="computeroutput"><span class="special">*(</span><span class="identifier">double_</span>
    341             <span class="special">&lt;&lt;</span> <span class="char">','</span><span class="special">)</span></code>
    342           </p>
    343           </td>
    344 <td>
    345           <p>
    346             <code class="computeroutput"><span class="number">1.0</span><span class="special">,</span><span class="number">8.0</span><span class="special">,</span><span class="number">10.0</span><span class="special">,</span></code>
    347           </p>
    348           </td>
    349 <td>
    350           <p>
     319          </p></td>
     320</tr>
     321<tr>
     322<td><p>
     323            <tt class="computeroutput"><span class="special">*(</span><span class="identifier">double_</span>
     324            <span class="special">&lt;&lt;</span> <span class="char">','</span><span class="special">)</span></tt>
     325          </p></td>
     326<td><p>
     327            <tt class="computeroutput"><span class="number">1.0</span><span class="special">,</span><span class="number">8.0</span><span class="special">,</span><span class="number">10.0</span><span class="special">,</span></tt>
     328          </p></td>
     329<td><p>
    351330            A list of floating point numbers
    352           </p>
    353           </td>
     331          </p></td>
    354332</tr>
    355333</tbody>
    356 </table></div>
    357 </div>
    358 <br class="table-break"><p>
     334</table>
     335</div>
     336<p>
    359337      The syntax is similar to <span class="emphasis"><em>Qi</em></span> with the exception that we
    360       use the <code class="computeroutput"><span class="special">&lt;&lt;</span></code> operator for
     338      use the <tt class="computeroutput"><span class="special">&lt;&lt;</span></tt> operator for
    361339      output concatenation. This should be easy to understand as it follows the conventions
    362340      used in the Standard's I/O streams.
     
    369347    </p>
    370348<div class="table">
    371 <a name="id2607587"></a><p class="title"><b>Table 3. Different data types usable with the output format
     349<a name="id413288"></a><p class="title"><b>Table 3. Different data types usable with the output format
    372350    `*(int_ &lt;&lt; eol)`</b></p>
    373 <div class="table-contents"><table class="table" summary="Different data types usable with the output format
     351<table class="table" summary="Different data types usable with the output format
    374352    `*(int_ &lt;&lt; eol)`">
    375353<colgroup>
     
    378356</colgroup>
    379357<thead><tr>
    380 <th>
    381           <p>
     358<th><p>
    382359            Data type
    383           </p>
    384           </th>
     360          </p></th>
    385361<td class="auto-generated"> </td>
    386362</tr></thead>
    387363<tbody>
    388364<tr>
    389 <td>
    390           <p>
    391             <code class="computeroutput"><span class="keyword">int</span> <span class="identifier">i</span><span class="special">[</span><span class="number">4</span><span class="special">]</span></code>
    392           </p>
    393           </td>
    394 <td>
    395           <p>
     365<td><p>
     366            <tt class="computeroutput"><span class="keyword">int</span> <span class="identifier">i</span><span class="special">[</span><span class="number">4</span><span class="special">]</span></tt>
     367          </p></td>
     368<td><p>
    396369            C style arrays
    397           </p>
    398           </td>
    399 </tr>
    400 <tr>
    401 <td>
    402           <p>
    403             <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code>
    404           </p>
    405           </td>
    406 <td>
    407           <p>
     370          </p></td>
     371</tr>
     372<tr>
     373<td><p>
     374            <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></tt>
     375          </p></td>
     376<td><p>
    408377            Standard vector
    409           </p>
    410           </td>
    411 </tr>
    412 <tr>
    413 <td>
    414           <p>
    415             <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code>
    416           </p>
    417           </td>
    418 <td>
    419           <p>
     378          </p></td>
     379</tr>
     380<tr>
     381<td><p>
     382            <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></tt>
     383          </p></td>
     384<td><p>
    420385            Standard list
    421           </p>
    422           </td>
    423 </tr>
    424 <tr>
    425 <td>
    426           <p>
    427             <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">,</span> <span class="number">20</span><span class="special">&gt;</span></code>
    428           </p>
    429           </td>
    430 <td>
    431           <p>
     386          </p></td>
     387</tr>
     388<tr>
     389<td><p>
     390            <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">,</span> <span class="number">20</span><span class="special">&gt;</span></tt>
     391          </p></td>
     392<td><p>
    432393            Boost array
    433           </p>
    434           </td>
     394          </p></td>
    435395</tr>
    436396</tbody>
    437 </table></div>
    438 </div>
    439 <br class="table-break">
     397</table>
     398</div>
     399<div class="footnotes">
     400<br><hr width="100" align="left">
     401<div class="footnote"><p><sup>[<a name="ftn.id410926" href="#id410926">1</a>] </sup>
     402          <a href="http://www.cl.cam.ac.uk/%7Emgk25/iso-14977.pdf" target="_top">ISO-EBNF</a>
     403        </p></div>
     404</div>
    440405</div>
    441406<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
  • trunk/libs/spirit/doc/html/spirit/karma.html

    r54361 r54630  
    22<head>
    33<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    4 <title>Karma</title>
     4<title> Karma</title>
    55<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../index.html" title="Spirit 2.1">
    88<link rel="up" href="../index.html" title="Spirit 2.1">
    9 <link rel="prev" href="qi/quick_reference/phoenix.html" title="Phoenix">
     9<link rel="previous" href="qi/reference/string/symbols.html" title="symbols">
    1010<link rel="next" href="karma/tutorials.html" title="Tutorials">
    1111</head>
     
    2121<hr>
    2222<div class="spirit-nav">
    23 <a accesskey="p" href="qi/quick_reference/phoenix.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="karma/tutorials.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
     23<a accesskey="p" href="qi/reference/string/symbols.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="karma/tutorials.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
    2424</div>
    2525<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
    27 <a name="spirit.karma"></a><a class="link" href="karma.html" title="Karma"> Karma</a>
    28 </h2></div></div></div>
     26<div class="titlepage">
     27<div><div><h2 class="title" style="clear: both">
     28<a name="spirit.karma"></a><a href="karma.html" title=" Karma"> Karma</a>
     29</h2></div></div>
     30<div></div>
     31</div>
    2932<div class="toc"><dl>
    3033<dt><span class="section"><a href="karma/tutorials.html">Tutorials</a></span></dt>
     
    6063<hr>
    6164<div class="spirit-nav">
    62 <a accesskey="p" href="qi/quick_reference/phoenix.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="karma/tutorials.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
     65<a accesskey="p" href="qi/reference/string/symbols.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="karma/tutorials.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
    6366</div>
    6467</body>
  • trunk/libs/spirit/doc/html/spirit/karma/quick_reference.html

    r54361 r54630  
    44<title>Quick Reference</title>
    55<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../index.html" title="Spirit 2.1">
    8 <link rel="up" href="../karma.html" title="Karma">
    9 <link rel="prev" href="tutorials/warming_up.html" title="Warming up">
    10 <link rel="next" href="quick_reference/common_notation.html" title="Common Notation">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../../index.html" title="Spirit 2.1">
     8<link rel="up" href="../karma.html" title=" Karma">
     9<link rel="previous" href="tutorials/warming_up.html" title="Warming up">
     10<link rel="next" href="quick_reference/common_notation.html" title="Common
     11        Notation">
    1112</head>
    1213<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
     
    2425</div>
    2526<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h3 class="title">
    27 <a name="spirit.karma.quick_reference"></a><a class="link" href="quick_reference.html" title="Quick Reference">Quick Reference</a>
    28 </h3></div></div></div>
     27<div class="titlepage">
     28<div><div><h3 class="title">
     29<a name="spirit.karma.quick_reference"></a><a href="quick_reference.html" title="Quick Reference">Quick Reference</a>
     30</h3></div></div>
     31<div></div>
     32</div>
    2933<div class="toc"><dl>
    3034<dt><span class="section"><a href="quick_reference/common_notation.html">Common
  • trunk/libs/spirit/doc/html/spirit/karma/quick_reference/common_notation.html

    r54361 r54630  
    22<head>
    33<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    4 <title>Common Notation</title>
     4<title>Common
     5        Notation</title>
    56<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../../index.html" title="Spirit 2.1">
     7<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     8<link rel="home" href="../../../index.html" title="Spirit 2.1">
    89<link rel="up" href="../quick_reference.html" title="Quick Reference">
    9 <link rel="prev" href="../quick_reference.html" title="Quick Reference">
    10 <link rel="next" href="predefined_primitive_generators.html" title="Predefined Primitive Generators">
     10<link rel="previous" href="../quick_reference.html" title="Quick Reference">
     11<link rel="next" href="predefined_primitive_generators.html" title="Predefined
     12        Primitive Generators">
    1113</head>
    1214<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
     
    2426</div>
    2527<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h4 class="title">
    27 <a name="spirit.karma.quick_reference.common_notation"></a><a class="link" href="common_notation.html" title="Common Notation">Common
     28<div class="titlepage">
     29<div><div><h4 class="title">
     30<a name="spirit.karma.quick_reference.common_notation"></a><a href="common_notation.html" title="Common
     31        Notation">Common
    2832        Notation</a>
    29 </h4></div></div></div>
     33</h4></div></div>
     34<div></div>
     35</div>
    3036<div class="variablelist">
    3137<p class="title"><b>Notation</b></p>
    3238<dl>
    33 <dt><span class="term"><code class="computeroutput"><span class="identifier">P</span></code></span></dt>
     39<dt><span class="term"><tt class="computeroutput"><span class="identifier">P</span></tt></span></dt>
    3440<dd><p>
    3541              Parser type
    3642            </p></dd>
    37 <dt><span class="term"><code class="computeroutput"><span class="identifier">p</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span>
     43<dt><span class="term"><tt class="computeroutput"><span class="identifier">p</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span>
    3844          <span class="identifier">b</span><span class="special">,</span>
    39           <span class="identifier">c</span></code></span></dt>
     45          <span class="identifier">c</span></tt></span></dt>
    4046<dd><p>
    4147              Parser objects
    4248            </p></dd>
    43 <dt><span class="term"><code class="computeroutput"><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">,</span>
    44           <span class="identifier">C</span></code></span></dt>
     49<dt><span class="term"><tt class="computeroutput"><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">,</span>
     50          <span class="identifier">C</span></tt></span></dt>
    4551<dd><p>
    4652              Attribute types of parsers A, B and C
    4753            </p></dd>
    48 <dt><span class="term"><code class="computeroutput"><span class="identifier">I</span></code></span></dt>
     54<dt><span class="term"><tt class="computeroutput"><span class="identifier">I</span></tt></span></dt>
    4955<dd><p>
    5056              The iterator type used for parsing
    5157            </p></dd>
    52 <dt><span class="term"><code class="computeroutput"><span class="identifier">Unused</span></code></span></dt>
     58<dt><span class="term"><tt class="computeroutput"><span class="identifier">Unused</span></tt></span></dt>
    5359<dd><p>
    54               An <code class="computeroutput"><span class="identifier">unused_type</span></code>
     60              An <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
    5561            </p></dd>
    56 <dt><span class="term"><code class="computeroutput"><span class="identifier">Context</span></code></span></dt>
     62<dt><span class="term"><tt class="computeroutput"><span class="identifier">Context</span></tt></span></dt>
    5763<dd><p>
    58               The enclosing rule's <code class="computeroutput"><span class="identifier">Context</span></code>
     64              The enclosing rule's <tt class="computeroutput"><span class="identifier">Context</span></tt>
    5965              type
    6066            </p></dd>
    61 <dt><span class="term"><code class="computeroutput"><span class="identifier">Attr</span></code></span></dt>
     67<dt><span class="term"><tt class="computeroutput"><span class="identifier">Attr</span></tt></span></dt>
    6268<dd><p>
    6369              An attribute type
    6470            </p></dd>
    65 <dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
     71<dt><span class="term"><tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
    6672<dd><p>
    6773              A boolean expression
    6874            </p></dd>
    69 <dt><span class="term"><code class="computeroutput"><span class="identifier">fp</span></code></span></dt>
     75<dt><span class="term"><tt class="computeroutput"><span class="identifier">fp</span></tt></span></dt>
    7076<dd><p>
    71               A (lazy parser) function with signature <code class="computeroutput"><span class="identifier">P</span><span class="special">(</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">)</span></code>
     77              A (lazy parser) function with signature <tt class="computeroutput"><span class="identifier">P</span><span class="special">(</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">)</span></tt>
    7278            </p></dd>
    73 <dt><span class="term"><code class="computeroutput"><span class="identifier">fa</span></code></span></dt>
     79<dt><span class="term"><tt class="computeroutput"><span class="identifier">fa</span></tt></span></dt>
    7480<dd><p>
    75               A (semantic action) function with signature <code class="computeroutput"><span class="keyword">void</span><span class="special">(</span><span class="identifier">Attr</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&amp;)</span></code>. The third parameter is a boolean
    76               flag that can be set to false to force the parse to fail. Both <code class="computeroutput"><span class="identifier">Context</span></code> and the boolean flag are
     81              A (semantic action) function with signature <tt class="computeroutput"><span class="keyword">void</span><span class="special">(</span><span class="identifier">Attr</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&amp;)</span></tt>. The third parameter is a boolean
     82              flag that can be set to false to force the parse to fail. Both <tt class="computeroutput"><span class="identifier">Context</span></tt> and the boolean flag are
    7783              optional.
    7884            </p></dd>
    79 <dt><span class="term"><code class="computeroutput"><span class="identifier">first</span></code></span></dt>
     85<dt><span class="term"><tt class="computeroutput"><span class="identifier">first</span></tt></span></dt>
    8086<dd><p>
    8187              An iterator pointing to the start of input
    8288            </p></dd>
    83 <dt><span class="term"><code class="computeroutput"><span class="identifier">last</span></code></span></dt>
     89<dt><span class="term"><tt class="computeroutput"><span class="identifier">last</span></tt></span></dt>
    8490<dd><p>
    8591              An iterator pointing to the end of input
    8692            </p></dd>
    87 <dt><span class="term"><code class="computeroutput"><span class="identifier">Ch</span></code></span></dt>
     93<dt><span class="term"><tt class="computeroutput"><span class="identifier">Ch</span></tt></span></dt>
    8894<dd><p>
    8995              Character-class specific character type (See __char_class<span class="underline">types</span>_)
    9096            </p></dd>
    91 <dt><span class="term"><code class="computeroutput"><span class="identifier">ch</span></code></span></dt>
     97<dt><span class="term"><tt class="computeroutput"><span class="identifier">ch</span></tt></span></dt>
    9298<dd><p>
    9399              Character-class specific character (See __char_class<span class="underline">types</span>_)
    94100            </p></dd>
    95 <dt><span class="term"><code class="computeroutput"><span class="identifier">ch2</span></code></span></dt>
     101<dt><span class="term"><tt class="computeroutput"><span class="identifier">ch2</span></tt></span></dt>
    96102<dd><p>
    97103              Character-class specific character (See __char_class<span class="underline">types</span>_)
    98104            </p></dd>
    99 <dt><span class="term"><code class="computeroutput"><span class="identifier">chset</span></code></span></dt>
     105<dt><span class="term"><tt class="computeroutput"><span class="identifier">chset</span></tt></span></dt>
    100106<dd><p>
    101107              Character-set specifier string (example: "a-z0-9")
    102108            </p></dd>
    103 <dt><span class="term"><code class="computeroutput"><span class="identifier">str</span></code></span></dt>
     109<dt><span class="term"><tt class="computeroutput"><span class="identifier">str</span></tt></span></dt>
    104110<dd><p>
    105111              Character-class specific string (See __char_class<span class="underline">types</span>_)
    106112            </p></dd>
    107 <dt><span class="term"><code class="computeroutput"><span class="identifier">Str</span></code></span></dt>
     113<dt><span class="term"><tt class="computeroutput"><span class="identifier">Str</span></tt></span></dt>
    108114<dd><p>
    109               Attribute of <code class="computeroutput"><span class="identifier">str</span></code>:
    110               <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>
    111               where <code class="computeroutput"><span class="identifier">T</span></code> is the underlying
    112               character type of <code class="computeroutput"><span class="identifier">str</span></code>
     115              Attribute of <tt class="computeroutput"><span class="identifier">str</span></tt>:
     116              <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></tt>
     117              where <tt class="computeroutput"><span class="identifier">T</span></tt> is the underlying
     118              character type of <tt class="computeroutput"><span class="identifier">str</span></tt>
    113119            </p></dd>
    114 <dt><span class="term"><code class="computeroutput"><span class="identifier">tuple</span><span class="special">&lt;&gt;</span></code></span></dt>
     120<dt><span class="term"><tt class="computeroutput"><span class="identifier">tuple</span><span class="special">&lt;&gt;</span></tt></span></dt>
    115121<dd><p>
    116122              Used as a placeholder for a fusion sequence
    117123            </p></dd>
    118 <dt><span class="term"><code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;&gt;</span></code></span></dt>
     124<dt><span class="term"><tt class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;&gt;</span></tt></span></dt>
    119125<dd><p>
    120126              Used as a placeholder for an STL container
    121127            </p></dd>
    122 <dt><span class="term"><code class="computeroutput"><span class="identifier">variant</span><span class="special">&lt;&gt;</span></code></span></dt>
     128<dt><span class="term"><tt class="computeroutput"><span class="identifier">variant</span><span class="special">&lt;&gt;</span></tt></span></dt>
    123129<dd><p>
    124130              Used as a placeholder for a boost::variant
    125131            </p></dd>
    126 <dt><span class="term"><code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;&gt;</span></code></span></dt>
     132<dt><span class="term"><tt class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;&gt;</span></tt></span></dt>
    127133<dd><p>
    128134              Used as a placeholder for a boost::optional
  • trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html

    r54368 r54630  
    22<head>
    33<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    4 <title>Compound Attribute Rules</title>
     4<title>Compound
     5        Attribute Rules</title>
    56<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../../index.html" title="Spirit 2.1">
     7<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     8<link rel="home" href="../../../index.html" title="Spirit 2.1">
    89<link rel="up" href="../quick_reference.html" title="Quick Reference">
    9 <link rel="prev" href="predefined_primitive_generators.html" title="Predefined Primitive Generators">
     10<link rel="previous" href="predefined_primitive_generators.html" title="Predefined
     11        Primitive Generators">
    1012<link rel="next" href="lazy_arguments.html" title="Lazy Arguments">
    1113</head>
     
    2426</div>
    2527<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h4 class="title">
    27 <a name="spirit.karma.quick_reference.compound_attribute_rules"></a><a class="link" href="compound_attribute_rules.html" title="Compound Attribute Rules">Compound
     28<div class="titlepage">
     29<div><div><h4 class="title">
     30<a name="spirit.karma.quick_reference.compound_attribute_rules"></a><a href="compound_attribute_rules.html" title="Compound
     31        Attribute Rules">Compound
    2832        Attribute Rules</a>
    29 </h4></div></div></div>
     33</h4></div></div>
     34<div></div>
     35</div>
    3036<p>
    3137          The notation will be for instance:
     
    3440</pre>
    3541<p>
    36           which reads as: given, <code class="computeroutput"><span class="identifier">a</span></code>
    37           and <code class="computeroutput"><span class="identifier">b</span></code> are parsers/generators,
    38           and <code class="computeroutput"><span class="identifier">A</span></code> is the type of the
    39           attribute of <code class="computeroutput"><span class="identifier">a</span></code>, and <code class="computeroutput"><span class="identifier">B</span></code> is the type of the attribute of <code class="computeroutput"><span class="identifier">b</span></code>, then the type of the attribute of
    40           <code class="computeroutput"><span class="identifier">a</span> <span class="special">&gt;&gt;</span>
    41           <span class="identifier">b</span></code> will be <code 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></code>.
     42          which reads as: given, <tt class="computeroutput"><span class="identifier">a</span></tt>
     43          and <tt class="computeroutput"><span class="identifier">b</span></tt> are parsers/generators,
     44          and <tt class="computeroutput"><span class="identifier">A</span></tt> is the type of the
     45          attribute of <tt class="computeroutput"><span class="identifier">a</span></tt>, and <tt class="computeroutput"><span class="identifier">B</span></tt> is the type of the attribute of <tt class="computeroutput"><span class="identifier">b</span></tt>, then the type of the attribute of
     46          <tt class="computeroutput"><span class="identifier">a</span> <span class="special">&gt;&gt;</span>
     47          <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>.
    4248        </p>
    4349<div class="table">
    44 <a name="id2648218"></a><p class="title"><b>Table 5. Spirit.Karma compound generator attribute types</b></p>
    45 <div class="table-contents"><table class="table" summary="Spirit.Karma compound generator attribute types">
     50<a name="id467468"></a><p class="title"><b>Table 5. Spirit.Karma compound generator attribute types</b></p>
     51<table class="table" summary="Spirit.Karma compound generator attribute types">
    4652<colgroup>
    4753<col>
     
    4955</colgroup>
    5056<thead><tr>
    51 <th>
    52               <p>
     57<th><p>
    5358                Expression
    54               </p>
    55               </th>
    56 <th>
    57               <p>
     59              </p></th>
     60<th><p>
    5861                Attribute
    59               </p>
    60               </th>
     62              </p></th>
    6163</tr></thead>
    6264<tbody>
    6365<tr>
    64 <td>
    65               <p>
    66                 sequence (<code class="computeroutput"><span class="special">&lt;&lt;</span></code>)
    67               </p>
    68               </td>
    69 <td>
    70               <p>
     66<td><p>
     67                sequence (<tt class="computeroutput"><span class="special">&lt;&lt;</span></tt>)
     68              </p></td>
     69<td>
     70<p>
    7171               
    7272</p>
     
    7878<p>
    7979              </p>
    80               </td>
    81 </tr>
    82 <tr>
    83 <td>
    84               <p>
    85                 alternative (<code class="computeroutput"><span class="special">|</span></code>)
    86               </p>
    87               </td>
    88 <td>
    89               <p>
     80</td>
     81</tr>
     82<tr>
     83<td><p>
     84                alternative (<tt class="computeroutput"><span class="special">|</span></tt>)
     85              </p></td>
     86<td>
     87<p>
    9088               
    9189</p>
     
    9795                a: A, b: A --&gt; (a | b): A`
    9896              </p>
    99               </td>
    100 </tr>
    101 <tr>
    102 <td>
    103               <p>
    104                 kleene (<code class="computeroutput"><span class="special">*</span></code>)
    105               </p>
    106               </td>
    107 <td>
    108               <p>
     97</td>
     98</tr>
     99<tr>
     100<td><p>
     101                kleene (<tt class="computeroutput"><span class="special">*</span></tt>)
     102              </p></td>
     103<td>
     104<p>
    109105               
    110106</p>
     
    113109<p>
    114110              </p>
    115               </td>
    116 </tr>
    117 <tr>
    118 <td>
    119               <p>
    120                 plus (<code class="computeroutput"><span class="special">+</span></code>)
    121               </p>
    122               </td>
    123 <td>
    124               <p>
     111</td>
     112</tr>
     113<tr>
     114<td><p>
     115                plus (<tt class="computeroutput"><span class="special">+</span></tt>)
     116              </p></td>
     117<td>
     118<p>
    125119               
    126120</p>
     
    129123<p>
    130124              </p>
    131               </td>
    132 </tr>
    133 <tr>
    134 <td>
    135               <p>
    136                 list (<code class="computeroutput"><span class="special">%</span></code>)
    137               </p>
    138               </td>
    139 <td>
    140               <p>
     125</td>
     126</tr>
     127<tr>
     128<td><p>
     129                list (<tt class="computeroutput"><span class="special">%</span></tt>)
     130              </p></td>
     131<td>
     132<p>
    141133               
    142134</p>
     
    145137<p>
    146138              </p>
    147               </td>
    148 </tr>
    149 <tr>
    150 <td>
    151               <p>
     139</td>
     140</tr>
     141<tr>
     142<td><p>
    152143                repetition
    153               </p>
    154               </td>
    155 <td>
    156               <p>
     144              </p></td>
     145<td>
     146<p>
    157147               
    158148</p>
     
    161151<p>
    162152              </p>
    163               </td>
    164 </tr>
    165 <tr>
    166 <td>
    167               <p>
    168                 optional (<code class="computeroutput"><span class="special">-</span></code>)
    169               </p>
    170               </td>
    171 <td>
    172               <p>
     153</td>
     154</tr>
     155<tr>
     156<td><p>
     157                optional (<tt class="computeroutput"><span class="special">-</span></tt>)
     158              </p></td>
     159<td>
     160<p>
    173161               
    174162</p>
     
    177165<p>
    178166              </p>
    179               </td>
    180 </tr>
    181 <tr>
    182 <td>
    183               <p>
    184                 and predicate (<code class="computeroutput"><span class="special">&amp;</span></code>)
    185               </p>
    186               </td>
    187 <td>
    188               <p>
    189                 <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
     167</td>
     168</tr>
     169<tr>
     170<td><p>
     171                and predicate (<tt class="computeroutput"><span class="special">&amp;</span></tt>)
     172              </p></td>
     173<td><p>
     174                <tt class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
    190175                <span class="identifier">A</span> <span class="special">--&gt;</span>
    191                 <span class="special">&amp;</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
    192               </p>
    193               </td>
    194 </tr>
    195 <tr>
    196 <td>
    197               <p>
    198                 not predicate (<code class="computeroutput"><span class="special">!</span></code>)
    199               </p>
    200               </td>
    201 <td>
    202               <p>
    203                 <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
     176                <span class="special">&amp;</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></tt>
     177              </p></td>
     178</tr>
     179<tr>
     180<td><p>
     181                not predicate (<tt class="computeroutput"><span class="special">!</span></tt>)
     182              </p></td>
     183<td><p>
     184                <tt class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
    204185                <span class="identifier">A</span> <span class="special">--&gt;</span>
    205                 <span class="special">!</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
    206               </p>
    207               </td>
     186                <span class="special">!</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></tt>
     187              </p></td>
    208188</tr>
    209189</tbody>
    210 </table></div>
    211 </div>
    212 <br class="table-break">
     190</table>
     191</div>
    213192</div>
    214193<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
  • trunk/libs/spirit/doc/html/spirit/karma/quick_reference/lazy_arguments.html

    r54361 r54630  
    44<title>Lazy Arguments</title>
    55<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../../index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../../../index.html" title="Spirit 2.1">
    88<link rel="up" href="../quick_reference.html" title="Quick Reference">
    9 <link rel="prev" href="compound_attribute_rules.html" title="Compound Attribute Rules">
     9<link rel="previous" href="compound_attribute_rules.html" title="Compound
     10        Attribute Rules">
    1011<link rel="next" href="non_terminals.html" title="Non-terminals">
    1112</head>
     
    2425</div>
    2526<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h4 class="title">
    27 <a name="spirit.karma.quick_reference.lazy_arguments"></a><a class="link" href="lazy_arguments.html" title="Lazy Arguments">Lazy Arguments</a>
    28 </h4></div></div></div>
     27<div class="titlepage">
     28<div><div><h4 class="title">
     29<a name="spirit.karma.quick_reference.lazy_arguments"></a><a href="lazy_arguments.html" title="Lazy Arguments">Lazy Arguments</a>
     30</h4></div></div>
     31<div></div>
     32</div>
    2933<p>
    3034          For all expressions of the form:
     
    3337</pre>
    3438<p>
    35           where <code class="computeroutput"><span class="identifier">p</span></code> is a parser, each
     39          where <tt class="computeroutput"><span class="identifier">p</span></tt> is a parser, each
    3640          of the arguments (a1...aN) can either be an immediate value, or a lazy
    3741          function with signature:
     
    4044</pre>
    4145<p>
    42           where <code class="computeroutput"><span class="identifier">T</span></code>, the function's
     46          where <tt class="computeroutput"><span class="identifier">T</span></tt>, the function's
    4347          return value, is compatible with the argument type expected. For example,
    4448          this is a valid expression:
     
    5458</span></pre>
    5559<p>
    56           since <code class="computeroutput"><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></code> is
    57           a function that returns a <code class="computeroutput"><span class="keyword">bool</span></code>.
     60          since <tt class="computeroutput"><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></tt> is
     61          a function that returns a <tt class="computeroutput"><span class="keyword">bool</span></tt>.
    5862        </p>
    5963</div>
  • trunk/libs/spirit/doc/html/spirit/karma/quick_reference/non_terminals.html

    r54361 r54630  
    44<title>Non-terminals</title>
    55<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../../index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../../../index.html" title="Spirit 2.1">
    88<link rel="up" href="../quick_reference.html" title="Quick Reference">
    9 <link rel="prev" href="lazy_arguments.html" title="Lazy Arguments">
    10 <link rel="next" href="semantic_actions.html" title="Semantic Actions">
     9<link rel="previous" href="lazy_arguments.html" title="Lazy Arguments">
     10<link rel="next" href="semantic_actions.html" title="Semantic
     11        Actions">
    1112</head>
    1213<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
     
    2425</div>
    2526<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h4 class="title">
    27 <a name="spirit.karma.quick_reference.non_terminals"></a><a class="link" href="non_terminals.html" title="Non-terminals">Non-terminals</a>
    28 </h4></div></div></div>
     27<div class="titlepage">
     28<div><div><h4 class="title">
     29<a name="spirit.karma.quick_reference.non_terminals"></a><a href="non_terminals.html" title="Non-terminals">Non-terminals</a>
     30</h4></div></div>
     31<div></div>
     32</div>
    2933<div class="variablelist">
    3034<p class="title"><b>Notation</b></p>
    3135<dl>
    32 <dt><span class="term"><code class="computeroutput"><span class="identifier">RT</span></code></span></dt>
     36<dt><span class="term"><tt class="computeroutput"><span class="identifier">RT</span></tt></span></dt>
    3337<dd><p>
    3438              Synthesized attribute. The rule or grammar's return type.
    3539            </p></dd>
    36 <dt><span class="term"><code class="computeroutput"><span class="identifier">Arg1</span></code>,
    37           <code class="computeroutput"><span class="identifier">Arg2</span></code>, <code class="computeroutput"><span class="identifier">ArgN</span></code></span></dt>
     40<dt><span class="term"><tt class="computeroutput"><span class="identifier">Arg1</span></tt>,
     41          <tt class="computeroutput"><span class="identifier">Arg2</span></tt>, <tt class="computeroutput"><span class="identifier">ArgN</span></tt></span></dt>
    3842<dd><p>
    3943              Inherited attributes. Zero or more or arguments.
    4044            </p></dd>
    41 <dt><span class="term"><code class="computeroutput"><span class="identifier">L1</span></code>,
    42           <code class="computeroutput"><span class="identifier">L2</span></code>, <code class="computeroutput"><span class="identifier">LN</span></code></span></dt>
     45<dt><span class="term"><tt class="computeroutput"><span class="identifier">L1</span></tt>,
     46          <tt class="computeroutput"><span class="identifier">L2</span></tt>, <tt class="computeroutput"><span class="identifier">LN</span></tt></span></dt>
    4347<dd><p>
    4448              Zero or more local variables.
    4549            </p></dd>
    46 <dt><span class="term"><code class="computeroutput"><span class="identifier">r</span><span class="special">,</span> <span class="identifier">r2</span></code></span></dt>
     50<dt><span class="term"><tt class="computeroutput"><span class="identifier">r</span><span class="special">,</span> <span class="identifier">r2</span></tt></span></dt>
    4751<dd><p>
    4852              Rules
    4953            </p></dd>
    50 <dt><span class="term"><code class="computeroutput"><span class="identifier">g</span></code></span></dt>
     54<dt><span class="term"><tt class="computeroutput"><span class="identifier">g</span></tt></span></dt>
    5155<dd><p>
    5256              A grammar
    5357            </p></dd>
    54 <dt><span class="term"><code class="computeroutput"><span class="identifier">p</span></code></span></dt>
     58<dt><span class="term"><tt class="computeroutput"><span class="identifier">p</span></tt></span></dt>
    5559<dd><p>
    5660              A parser expression
    5761            </p></dd>
    58 <dt><span class="term"><code class="computeroutput"><span class="identifier">my_grammar</span></code></span></dt>
     62<dt><span class="term"><tt class="computeroutput"><span class="identifier">my_grammar</span></tt></span></dt>
    5963<dd><p>
    6064              A user defined grammar
     
    6771<dt><span class="term">Signature</span></dt>
    6872<dd><p>
    69               <code class="computeroutput"><span class="identifier">RT</span><span class="special">(</span><span class="identifier">Arg1</span><span class="special">,</span> <span class="identifier">Arg2</span> <span class="special">...</span>
    70               <span class="special">,</span><span class="identifier">ArgN</span><span class="special">)</span></code>. The signature specifies the synthesized
     73              <tt class="computeroutput"><span class="identifier">RT</span><span class="special">(</span><span class="identifier">Arg1</span><span class="special">,</span> <span class="identifier">Arg2</span> <span class="special">...</span>
     74              <span class="special">,</span><span class="identifier">ArgN</span><span class="special">)</span></tt>. The signature specifies the synthesized
    7175              (return value) and inherited (arguments) attributes.
    7276            </p></dd>
    7377<dt><span class="term">Locals</span></dt>
    7478<dd><p>
    75               <code class="computeroutput"><span class="identifier">locals</span><span class="special">&lt;</span><span class="identifier">L1</span><span class="special">,</span> <span class="identifier">L2</span> <span class="special">...,</span>
    76               <span class="identifier">LN</span><span class="special">&gt;</span></code>.
     79              <tt class="computeroutput"><span class="identifier">locals</span><span class="special">&lt;</span><span class="identifier">L1</span><span class="special">,</span> <span class="identifier">L2</span> <span class="special">...,</span>
     80              <span class="identifier">LN</span><span class="special">&gt;</span></tt>.
    7781              The local variables.
    7882            </p></dd>
     
    8690<p class="title"><b>Template Arguments</b></p>
    8791<dl>
    88 <dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
     92<dt><span class="term"><tt class="computeroutput"><span class="identifier">Iterator</span></tt></span></dt>
    8993<dd><p>
    9094              The iterator type you will use for parsing.
    9195            </p></dd>
    92 <dt><span class="term"><code class="computeroutput"><span class="identifier">A1</span></code>,
    93           <code class="computeroutput"><span class="identifier">A2</span></code>, <code class="computeroutput"><span class="identifier">A3</span></code></span></dt>
     96<dt><span class="term"><tt class="computeroutput"><span class="identifier">A1</span></tt>,
     97          <tt class="computeroutput"><span class="identifier">A2</span></tt>, <tt class="computeroutput"><span class="identifier">A3</span></tt></span></dt>
    9498<dd><p>
    9599              Can be one of 1)Signature 2)Locals 3)Skipper.
     
    103107</colgroup>
    104108<thead><tr>
    105 <th>
    106                 <p>
     109<th><p>
    107110                  Expression
    108                 </p>
    109                 </th>
    110 <th>
    111                 <p>
     111                </p></th>
     112<th><p>
    112113                  Description
    113                 </p>
    114                 </th>
     114                </p></th>
    115115</tr></thead>
    116116<tbody>
    117117<tr>
    118 <td>
    119                 <p>
    120                   <code class="computeroutput"><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span>
     118<td><p>
     119                  <tt class="computeroutput"><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span>
    121120                  <span class="identifier">A1</span><span class="special">,</span>
    122121                  <span class="identifier">A2</span><span class="special">,</span>
    123122                  <span class="identifier">A3</span><span class="special">&gt;</span>
    124                   <span class="identifier">r</span><span class="special">(</span><span class="identifier">name</span><span class="special">);</span></code>
    125                 </p>
    126                 </td>
    127 <td>
    128                 <p>
    129                   Rule declaration. <code class="computeroutput"><span class="identifier">Iterator</span></code>
    130                   is required. <code class="computeroutput"><span class="identifier">A1</span><span class="special">,</span> <span class="identifier">A2</span><span class="special">,</span> <span class="identifier">A3</span></code>
    131                   are optional and can be specified in any order. <code class="computeroutput"><span class="identifier">name</span></code>
     123                  <span class="identifier">r</span><span class="special">(</span><span class="identifier">name</span><span class="special">);</span></tt>
     124                </p></td>
     125<td><p>
     126                  Rule declaration. <tt class="computeroutput"><span class="identifier">Iterator</span></tt>
     127                  is required. <tt class="computeroutput"><span class="identifier">A1</span><span class="special">,</span> <span class="identifier">A2</span><span class="special">,</span> <span class="identifier">A3</span></tt>
     128                  are optional and can be specified in any order. <tt class="computeroutput"><span class="identifier">name</span></tt>
    132129                  is an optional string that gives the rule its name, useful for
    133130                  debugging and error handling.
    134                 </p>
    135                 </td>
    136 </tr>
    137 <tr>
    138 <td>
    139                 <p>
    140                   <code class="computeroutput"><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span>
     131                </p></td>
     132</tr>
     133<tr>
     134<td><p>
     135                  <tt class="computeroutput"><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span>
    141136                  <span class="identifier">A1</span><span class="special">,</span>
    142137                  <span class="identifier">A2</span><span class="special">,</span>
    143138                  <span class="identifier">A3</span><span class="special">&gt;</span>
    144                   <span class="identifier">r</span><span class="special">(</span><span class="identifier">r2</span><span class="special">);</span></code>
    145                 </p>
    146                 </td>
     139                  <span class="identifier">r</span><span class="special">(</span><span class="identifier">r2</span><span class="special">);</span></tt>
     140                </p></td>
     141<td><p>
     142                  Copy construct rule <tt class="computeroutput"><span class="identifier">r</span></tt>
     143                  from rule <tt class="computeroutput"><span class="identifier">r2</span></tt>.
     144                  <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></tt> semantics.
     145                </p></td>
     146</tr>
     147<tr>
     148<td><p>
     149                  <tt class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
     150                  <span class="identifier">r2</span><span class="special">;</span></tt>
     151                </p></td>
     152<td><p>
     153                  Assign rule <tt class="computeroutput"><span class="identifier">r2</span></tt>
     154                  to <tt class="computeroutput"><span class="identifier">r</span></tt>. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></tt> semantics.
     155                </p></td>
     156</tr>
     157<tr>
     158<td><p>
     159                  <tt class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">alias</span><span class="special">()</span></tt>
     160                </p></td>
     161<td><p>
     162                  return an alias of <tt class="computeroutput"><span class="identifier">r</span></tt>.
     163                  The alias is a parser that holds a reference to <tt class="computeroutput"><span class="identifier">r</span></tt>.
     164                  Reference semantics.
     165                </p></td>
     166</tr>
     167<tr>
     168<td><p>
     169                  <tt class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">copy</span><span class="special">()</span></tt>
     170                </p></td>
     171<td><p>
     172                  Get a copy of <tt class="computeroutput"><span class="identifier">r</span></tt>.
     173                  <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></tt> semantics.
     174                </p></td>
     175</tr>
     176<tr>
     177<td><p>
     178                  <tt class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></tt>
     179                </p></td>
     180<td><p>
     181                  Naming a rule
     182                </p></td>
     183</tr>
     184<tr>
     185<td><p>
     186                  <tt class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">()</span></tt>
     187                </p></td>
     188<td><p>
     189                  Getting the name of a rule
     190                </p></td>
     191</tr>
     192<tr>
     193<td><p>
     194                  debug(r)
     195                </p></td>
     196<td><p>
     197                  Debug rule <tt class="computeroutput"><span class="identifier">r</span></tt>
     198                </p></td>
     199</tr>
     200<tr>
     201<td><p>
     202                  <tt class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
     203                  <span class="identifier">p</span><span class="special">;</span></tt>
     204                </p></td>
     205<td><p>
     206                  Rule definition
     207                </p></td>
     208</tr>
     209<tr>
     210<td><p>
     211                  <tt class="computeroutput"><span class="identifier">r</span> <span class="special">%=</span>
     212                  <span class="identifier">p</span><span class="special">;</span></tt>
     213                </p></td>
     214<td><p>
     215                  Auto-rule definition. The attribute of <tt class="computeroutput"><span class="identifier">p</span></tt>
     216                  should be compatible with the synthesized attribute of <tt class="computeroutput"><span class="identifier">r</span></tt>. When <tt class="computeroutput"><span class="identifier">p</span></tt>
     217                  is successful, its attribute is automatically propagated to <tt class="computeroutput"><span class="identifier">r</span></tt>'s synthesized attribute.
     218                </p></td>
     219</tr>
     220<tr>
    147221<td>
    148                 <p>
    149                   Copy construct rule <code class="computeroutput"><span class="identifier">r</span></code>
    150                   from rule <code class="computeroutput"><span class="identifier">r2</span></code>.
    151                   <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> semantics.
    152                 </p>
    153                 </td>
    154 </tr>
    155 <tr>
    156 <td>
    157                 <p>
    158                   <code class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
    159                   <span class="identifier">r2</span><span class="special">;</span></code>
    160                 </p>
    161                 </td>
    162 <td>
    163                 <p>
    164                   Assign rule <code class="computeroutput"><span class="identifier">r2</span></code>
    165                   to <code class="computeroutput"><span class="identifier">r</span></code>. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> semantics.
    166                 </p>
    167                 </td>
    168 </tr>
    169 <tr>
    170 <td>
    171                 <p>
    172                   <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">alias</span><span class="special">()</span></code>
    173                 </p>
    174                 </td>
    175 <td>
    176                 <p>
    177                   return an alias of <code class="computeroutput"><span class="identifier">r</span></code>.
    178                   The alias is a parser that holds a reference to <code class="computeroutput"><span class="identifier">r</span></code>.
    179                   Reference semantics.
    180                 </p>
    181                 </td>
    182 </tr>
    183 <tr>
    184 <td>
    185                 <p>
    186                   <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">copy</span><span class="special">()</span></code>
    187                 </p>
    188                 </td>
    189 <td>
    190                 <p>
    191                   Get a copy of <code class="computeroutput"><span class="identifier">r</span></code>.
    192                   <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> semantics.
    193                 </p>
    194                 </td>
    195 </tr>
    196 <tr>
    197 <td>
    198                 <p>
    199                   <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></code>
    200                 </p>
    201                 </td>
    202 <td>
    203                 <p>
    204                   Naming a rule
    205                 </p>
    206                 </td>
    207 </tr>
    208 <tr>
    209 <td>
    210                 <p>
    211                   <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">()</span></code>
    212                 </p>
    213                 </td>
    214 <td>
    215                 <p>
    216                   Getting the name of a rule
    217                 </p>
    218                 </td>
    219 </tr>
    220 <tr>
    221 <td>
    222                 <p>
    223                   debug(r)
    224                 </p>
    225                 </td>
    226 <td>
    227                 <p>
    228                   Debug rule <code class="computeroutput"><span class="identifier">r</span></code>
    229                 </p>
    230                 </td>
    231 </tr>
    232 <tr>
    233 <td>
    234                 <p>
    235                   <code class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
    236                   <span class="identifier">p</span><span class="special">;</span></code>
    237                 </p>
    238                 </td>
    239 <td>
    240                 <p>
    241                   Rule definition
    242                 </p>
    243                 </td>
    244 </tr>
    245 <tr>
    246 <td>
    247                 <p>
    248                   <code class="computeroutput"><span class="identifier">r</span> <span class="special">%=</span>
    249                   <span class="identifier">p</span><span class="special">;</span></code>
    250                 </p>
    251                 </td>
    252 <td>
    253                 <p>
    254                   Auto-rule definition. The attribute of <code class="computeroutput"><span class="identifier">p</span></code>
    255                   should be compatible with the synthesized attribute of <code class="computeroutput"><span class="identifier">r</span></code>. When <code class="computeroutput"><span class="identifier">p</span></code>
    256                   is successful, its attribute is automatically propagated to <code class="computeroutput"><span class="identifier">r</span></code>'s synthesized attribute.
    257                 </p>
    258                 </td>
    259 </tr>
    260 <tr>
    261 <td>
    262                 <p>
     222<p>
    263223                 
    264224</p>
     
    278238<p>
    279239                </p>
    280                 </td>
    281 <td>
    282                 <p>
    283                   Grammar definition. <code class="computeroutput"><span class="identifier">name</span></code>
     240</td>
     241<td><p>
     242                  Grammar definition. <tt class="computeroutput"><span class="identifier">name</span></tt>
    284243                  is an optional string that gives the grammar its name, useful for
    285244                  debugging and error handling.
    286                 </p>
    287                 </td>
    288 </tr>
    289 <tr>
    290 <td>
    291                 <p>
     245                </p></td>
     246</tr>
     247<tr>
     248<td><p>
    292249                  my_grammar&lt;Iterator&gt; g
    293                 </p>
    294                 </td>
    295 <td>
    296                 <p>
     250                </p></td>
     251<td><p>
    297252                  Instantiating a grammar
    298                 </p>
    299                 </td>
    300 </tr>
    301 <tr>
    302 <td>
    303                 <p>
    304                   <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></code>
    305                 </p>
    306                 </td>
    307 <td>
    308                 <p>
     253                </p></td>
     254</tr>
     255<tr>
     256<td><p>
     257                  <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></tt>
     258                </p></td>
     259<td><p>
    309260                  Naming a grammar
    310                 </p>
    311                 </td>
    312 </tr>
    313 <tr>
    314 <td>
    315                 <p>
    316                   <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">name</span><span class="special">()</span></code>
    317                 </p>
    318                 </td>
    319 <td>
    320                 <p>
     261                </p></td>
     262</tr>
     263<tr>
     264<td><p>
     265                  <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">name</span><span class="special">()</span></tt>
     266                </p></td>
     267<td><p>
    321268                  Getting the name of a grammar
    322                 </p>
    323                 </td>
     269                </p></td>
    324270</tr>
    325271</tbody>
  • trunk/libs/spirit/doc/html/spirit/karma/quick_reference/phoenix.html

    r54361 r54630  
    44<title>Phoenix</title>
    55<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../../index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../../../index.html" title="Spirit 2.1">
    88<link rel="up" href="../quick_reference.html" title="Quick Reference">
    9 <link rel="prev" href="semantic_actions.html" title="Semantic Actions">
    10 <link rel="next" href="../../lex.html" title="Spirit.Lex">
     9<link rel="previous" href="semantic_actions.html" title="Semantic
     10        Actions">
     11<link rel="next" href="../../lex.html" title=" Spirit.Lex">
    1112</head>
    1213<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
     
    2425</div>
    2526<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h4 class="title">
    27 <a name="spirit.karma.quick_reference.phoenix"></a><a class="link" href="phoenix.html" title="Phoenix">Phoenix</a>
    28 </h4></div></div></div>
     27<div class="titlepage">
     28<div><div><h4 class="title">
     29<a name="spirit.karma.quick_reference.phoenix"></a><a href="phoenix.html" title="Phoenix">Phoenix</a>
     30</h4></div></div>
     31<div></div>
     32</div>
    2933<p>
    3034          __boost<span class="underline">phoenix</span>_ makes it easier to
     
    3539<p>
    3640          Spirit.Qi provides some __boost<span class="underline">phoenix</span>_
    37           placeholders to important information from the <code class="computeroutput"><span class="identifier">Attr</span></code>
    38           and <code class="computeroutput"><span class="identifier">Context</span></code> that are otherwise
     41          placeholders to important information from the <tt class="computeroutput"><span class="identifier">Attr</span></tt>
     42          and <tt class="computeroutput"><span class="identifier">Context</span></tt> that are otherwise
    3943          fiddly to extract.
    4044        </p>
     
    4246<p class="title"><b>Spirit.Qi specific Phoenix placeholders</b></p>
    4347<dl>
    44 <dt><span class="term"><code class="computeroutput"><span class="identifier">_1</span><span class="special">,</span> <span class="identifier">_2</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_N</span></code></span></dt>
     48<dt><span class="term"><tt class="computeroutput"><span class="identifier">_1</span><span class="special">,</span> <span class="identifier">_2</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_N</span></tt></span></dt>
    4549<dd><p>
    46               Nth attribute of <code class="computeroutput"><span class="identifier">p</span></code>
     50              Nth attribute of <tt class="computeroutput"><span class="identifier">p</span></tt>
    4751            </p></dd>
    48 <dt><span class="term"><code class="computeroutput"><span class="identifier">_val</span></code></span></dt>
     52<dt><span class="term"><tt class="computeroutput"><span class="identifier">_val</span></tt></span></dt>
    4953<dd><p>
    5054              The enclosing rule's synthesized attribute.
    5155            </p></dd>
    52 <dt><span class="term"><code class="computeroutput"><span class="identifier">_r1</span><span class="special">,</span> <span class="identifier">_r2</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_rN</span></code></span></dt>
     56<dt><span class="term"><tt class="computeroutput"><span class="identifier">_r1</span><span class="special">,</span> <span class="identifier">_r2</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_rN</span></tt></span></dt>
    5357<dd><p>
    5458              The enclosing rule's Nth inherited attribute.
    5559            </p></dd>
    56 <dt><span class="term"><code class="computeroutput"><span class="identifier">_a</span><span class="special">,</span> <span class="identifier">_b</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_j</span></code></span></dt>
     60<dt><span class="term"><tt class="computeroutput"><span class="identifier">_a</span><span class="special">,</span> <span class="identifier">_b</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_j</span></tt></span></dt>
    5761<dd><p>
    58               The enclosing rule's local variables (<code class="computeroutput"><span class="identifier">_a</span></code>
     62              The enclosing rule's local variables (<tt class="computeroutput"><span class="identifier">_a</span></tt>
    5963              refers to the first).
    6064            </p></dd>
    61 <dt><span class="term"><code class="computeroutput"><span class="identifier">_val</span></code></span></dt>
     65<dt><span class="term"><tt class="computeroutput"><span class="identifier">_val</span></tt></span></dt>
    6266<dd><p>
    6367              The enclosing rule's synthesized attribute.
    6468            </p></dd>
    65 <dt><span class="term"><code class="computeroutput"><span class="identifier">_pass</span></code></span></dt>
     69<dt><span class="term"><tt class="computeroutput"><span class="identifier">_pass</span></tt></span></dt>
    6670<dd><p>
    67               Assign <code class="computeroutput"><span class="keyword">false</span></code> to <code class="computeroutput"><span class="identifier">_pass</span></code> to force a parser failure.
     71              Assign <tt class="computeroutput"><span class="keyword">false</span></tt> to <tt class="computeroutput"><span class="identifier">_pass</span></tt> to force a parser failure.
    6872            </p></dd>
    6973</dl>
  • trunk/libs/spirit/doc/html/spirit/karma/quick_reference/predefined_primitive_generators.html

    r54361 r54630  
    22<head>
    33<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    4 <title>Predefined Primitive Generators</title>
     4<title>Predefined
     5        Primitive Generators</title>
    56<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../../index.html" title="Spirit 2.1">
     7<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     8<link rel="home" href="../../../index.html" title="Spirit 2.1">
    89<link rel="up" href="../quick_reference.html" title="Quick Reference">
    9 <link rel="prev" href="common_notation.html" title="Common Notation">
    10 <link rel="next" href="compound_attribute_rules.html" title="Compound Attribute Rules">
     10<link rel="previous" href="common_notation.html" title="Common
     11        Notation">
     12<link rel="next" href="compound_attribute_rules.html" title="Compound
     13        Attribute Rules">
    1114</head>
    1215<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
     
    2427</div>
    2528<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h4 class="title">
    27 <a name="spirit.karma.quick_reference.predefined_primitive_generators"></a><a class="link" href="predefined_primitive_generators.html" title="Predefined Primitive Generators">Predefined
     29<div class="titlepage">
     30<div><div><h4 class="title">
     31<a name="spirit.karma.quick_reference.predefined_primitive_generators"></a><a href="predefined_primitive_generators.html" title="Predefined
     32        Primitive Generators">Predefined
    2833        Primitive Generators</a>
    29 </h4></div></div></div>
     34</h4></div></div>
     35<div></div>
     36</div>
    3037<div class="informaltable"><table class="table">
    3138<colgroup>
     
    3542</colgroup>
    3643<thead><tr>
    37 <th>
    38                 <p>
     44<th><p>
    3945                  Expression
    40                 </p>
    41                 </th>
    42 <th>
    43                 <p>
     46                </p></th>
     47<th><p>
    4448                  Attribute
    45                 </p>
    46                 </th>
    47 <th>
    48                 <p>
     49                </p></th>
     50<th><p>
    4951                  Description
    50                 </p>
    51                 </th>
     52                </p></th>
    5253</tr></thead>
    5354<tbody>
    5455<tr>
    55 <td>
    56                 <p>
    57                   <code class="computeroutput"><span class="identifier">eol</span></code>
    58                 </p>
    59                 </td>
    60 <td>
    61                 <p>
    62                   <code class="computeroutput"><span class="identifier">Unused</span></code>
    63                 </p>
    64                 </td>
    65 <td>
    66                 <p>
    67                   Generates the end of line (<code class="computeroutput"><span class="special">\</span><span class="identifier">n</span></code>)
    68                 </p>
    69                 </td>
    70 </tr>
    71 <tr>
    72 <td>
    73                 <p>
    74                   <code class="computeroutput"><span class="identifier">eps</span></code>
    75                 </p>
    76                 </td>
    77 <td>
    78                 <p>
    79                   <code class="computeroutput"><span class="identifier">Unused</span></code>
    80                 </p>
    81                 </td>
    82 <td>
    83                 <p>
     56<td><p>
     57                  <tt class="computeroutput"><span class="identifier">eol</span></tt>
     58                </p></td>
     59<td><p>
     60                  <tt class="computeroutput"><span class="identifier">Unused</span></tt>
     61                </p></td>
     62<td><p>
     63                  Generates the end of line (<tt class="computeroutput"><span class="special">\</span><span class="identifier">n</span></tt>)
     64                </p></td>
     65</tr>
     66<tr>
     67<td><p>
     68                  <tt class="computeroutput"><span class="identifier">eps</span></tt>
     69                </p></td>
     70<td><p>
     71                  <tt class="computeroutput"><span class="identifier">Unused</span></tt>
     72                </p></td>
     73<td><p>
    8474                  Generate an empty string
    85                 </p>
    86                 </td>
    87 </tr>
    88 <tr>
    89 <td>
    90                 <p>
    91                   <code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
    92                 </p>
    93                 </td>
    94 <td>
    95                 <p>
    96                   <code class="computeroutput"><span class="identifier">Unused</span></code>
    97                 </p>
    98                 </td>
    99 <td>
    100                 <p>
    101                   If <code class="computeroutput"><span class="identifier">b</span></code> is true, generate
     75                </p></td>
     76</tr>
     77<tr>
     78<td><p>
     79                  <tt class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt>
     80                </p></td>
     81<td><p>
     82                  <tt class="computeroutput"><span class="identifier">Unused</span></tt>
     83                </p></td>
     84<td><p>
     85                  If <tt class="computeroutput"><span class="identifier">b</span></tt> is true, generate
    10286                  an empty string
    103                 </p>
    104                 </td>
    105 </tr>
    106 <tr>
    107 <td>
    108                 <p>
    109                   <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></code>
    110                 </p>
    111                 </td>
    112 <td>
    113                 <p>
    114                   Attribute of <code class="computeroutput"><span class="identifier">G</span></code>
    115                   where <code class="computeroutput"><span class="identifier">G</span></code> is the
    116                   return type of <code class="computeroutput"><span class="identifier">fg</span></code>
    117                 </p>
    118                 </td>
    119 <td>
    120                 <p>
    121                   Invoke <code class="computeroutput"><span class="identifier">fg</span></code> at generation
    122                   time, returning a generator <code class="computeroutput"><span class="identifier">g</span></code>
     87                </p></td>
     88</tr>
     89<tr>
     90<td><p>
     91                  <tt class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></tt>
     92                </p></td>
     93<td><p>
     94                  Attribute of <tt class="computeroutput"><span class="identifier">G</span></tt>
     95                  where <tt class="computeroutput"><span class="identifier">G</span></tt> is the
     96                  return type of <tt class="computeroutput"><span class="identifier">fg</span></tt>
     97                </p></td>
     98<td><p>
     99                  Invoke <tt class="computeroutput"><span class="identifier">fg</span></tt> at generation
     100                  time, returning a generator <tt class="computeroutput"><span class="identifier">g</span></tt>
    123101                  which is then called to generate.
    124                 </p>
    125                 </td>
    126 </tr>
    127 <tr>
    128 <td>
    129                 <p>
    130                   <code class="computeroutput"><span class="identifier">fg</span></code>
    131                 </p>
    132                 </td>
    133 <td>
    134                 <p>
    135                   see <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></code>
     102                </p></td>
     103</tr>
     104<tr>
     105<td><p>
     106                  <tt class="computeroutput"><span class="identifier">fg</span></tt>
     107                </p></td>
     108<td><p>
     109                  see <tt class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></tt>
    136110                  above
    137                 </p>
    138                 </td>
    139 <td>
    140                 <p>
    141                   Equivalent to <code class="computeroutput"><span class="identifier">lazy</span><span class="special">[</span><span class="identifier">fp</span><span class="special">]</span></code>
    142                 </p>
    143                 </td>
    144 </tr>
    145 <tr>
    146 <td>
    147                 <p>
    148                   <code class="computeroutput"><span class="identifier">g</span><span class="special">[</span><span class="identifier">fa</span><span class="special">]</span></code>
    149                 </p>
    150                 </td>
    151 <td>
    152                 <p>
    153                   Attribute of <code class="computeroutput"><span class="identifier">g</span></code>
    154                 </p>
    155                 </td>
    156 <td>
    157                 <p>
    158                   Call semantic action <code class="computeroutput"><span class="identifier">fa</span></code>
    159                   (before executing <code class="computeroutput"><span class="identifier">g</span></code>).
    160                 </p>
    161                 </td>
    162 </tr>
    163 <tr>
    164 <td>
    165                 <p>
    166                   <code class="computeroutput"><span class="identifier">byte_</span></code>
    167                 </p>
    168                 </td>
    169 <td>
    170                 <p>
     111                </p></td>
     112<td><p>
     113                  Equivalent to <tt class="computeroutput"><span class="identifier">lazy</span><span class="special">[</span><span class="identifier">fp</span><span class="special">]</span></tt>
     114                </p></td>
     115</tr>
     116<tr>
     117<td><p>
     118                  <tt class="computeroutput"><span class="identifier">g</span><span class="special">[</span><span class="identifier">fa</span><span class="special">]</span></tt>
     119                </p></td>
     120<td><p>
     121                  Attribute of <tt class="computeroutput"><span class="identifier">g</span></tt>
     122                </p></td>
     123<td><p>
     124                  Call semantic action <tt class="computeroutput"><span class="identifier">fa</span></tt>
     125                  (before executing <tt class="computeroutput"><span class="identifier">g</span></tt>).
     126                </p></td>
     127</tr>
     128<tr>
     129<td><p>
     130                  <tt class="computeroutput"><span class="identifier">byte_</span></tt>
     131                </p></td>
     132<td><p>
    171133                  8 bits native endian
    172                 </p>
    173                 </td>
    174 <td>
    175                 <p>
     134                </p></td>
     135<td><p>
    176136                  Generates an 8 bit binary
    177                 </p>
    178                 </td>
    179 </tr>
    180 <tr>
    181 <td>
    182                 <p>
    183                   <code class="computeroutput"><span class="identifier">word</span></code>
    184                 </p>
    185                 </td>
    186 <td>
    187                 <p>
     137                </p></td>
     138</tr>
     139<tr>
     140<td><p>
     141                  <tt class="computeroutput"><span class="identifier">word</span></tt>
     142                </p></td>
     143<td><p>
    188144                  16 bits native endian
    189                 </p>
    190                 </td>
    191 <td>
    192                 <p>
     145                </p></td>
     146<td><p>
    193147                  Generates a 16 bit binary
    194                 </p>
    195                 </td>
    196 </tr>
    197 <tr>
    198 <td>
    199                 <p>
    200                   <code class="computeroutput"><span class="identifier">big_word</span></code>
    201                 </p>
    202                 </td>
    203 <td>
    204                 <p>
     148                </p></td>
     149</tr>
     150<tr>
     151<td><p>
     152                  <tt class="computeroutput"><span class="identifier">big_word</span></tt>
     153                </p></td>
     154<td><p>
    205155                  16 bits big endian
    206                 </p>
    207                 </td>
    208 <td>
    209                 <p>
     156                </p></td>
     157<td><p>
    210158                  Generates a 16 bit binary
    211                 </p>
    212                 </td>
    213 </tr>
    214 <tr>
    215 <td>
    216                 <p>
    217                   <code class="computeroutput"><span class="identifier">little_word</span></code>
    218                 </p>
    219                 </td>
    220 <td>
    221                 <p>
     159                </p></td>
     160</tr>
     161<tr>
     162<td><p>
     163                  <tt class="computeroutput"><span class="identifier">little_word</span></tt>
     164                </p></td>
     165<td><p>
    222166                  16 bits little endian
    223                 </p>
    224                 </td>
    225 <td>
    226                 <p>
     167                </p></td>
     168<td><p>
    227169                  Generates a 16 bit binary
    228                 </p>
    229                 </td>
    230 </tr>
    231 <tr>
    232 <td>
    233                 <p>
    234                   <code class="computeroutput"><span class="identifier">dword</span></code>
    235                 </p>
    236                 </td>
    237 <td>
    238                 <p>
     170                </p></td>
     171</tr>
     172<tr>
     173<td><p>
     174                  <tt class="computeroutput"><span class="identifier">dword</span></tt>
     175                </p></td>
     176<td><p>
    239177                  32 bits native endian
    240                 </p>
    241                 </td>
    242 <td>
    243                 <p>
     178                </p></td>
     179<td><p>
    244180                  Generates a 32 bit binary
    245                 </p>
    246                 </td>
    247 </tr>
    248 <tr>
    249 <td>
    250                 <p>
    251                   <code class="computeroutput"><span class="identifier">big_dword</span></code>
    252                 </p>
    253                 </td>
    254 <td>
    255                 <p>
     181                </p></td>
     182</tr>
     183<tr>
     184<td><p>
     185                  <tt class="computeroutput"><span class="identifier">big_dword</span></tt>
     186                </p></td>
     187<td><p>
    256188                  32 bits big endian
    257                 </p>
    258                 </td>
    259 <td>
    260                 <p>
     189                </p></td>
     190<td><p>
    261191                  Generates a 32 bit binary
    262                 </p>
    263                 </td>
    264 </tr>
    265 <tr>
    266 <td>
    267                 <p>
    268                   <code class="computeroutput"><span class="identifier">little_dword</span></code>
    269                 </p>
    270                 </td>
    271 <td>
    272                 <p>
     192                </p></td>
     193</tr>
     194<tr>
     195<td><p>
     196                  <tt class="computeroutput"><span class="identifier">little_dword</span></tt>
     197                </p></td>
     198<td><p>
    273199                  32 bits little endian
    274                 </p>
    275                 </td>
    276 <td>
    277                 <p>
     200                </p></td>
     201<td><p>
    278202                  Generates a 32 bit binary
    279                 </p>
    280                 </td>
    281 </tr>
    282 <tr>
    283 <td>
    284                 <p>
    285                   <code class="computeroutput"><span class="identifier">qword</span></code>
    286                 </p>
    287                 </td>
    288 <td>
    289                 <p>
     203                </p></td>
     204</tr>
     205<tr>
     206<td><p>
     207                  <tt class="computeroutput"><span class="identifier">qword</span></tt>
     208                </p></td>
     209<td><p>
    290210                  64 bits native endian
    291                 </p>
    292                 </td>
    293 <td>
    294                 <p>
     211                </p></td>
     212<td><p>
    295213                  Generates a 64 bit binary
    296                 </p>
    297                 </td>
    298 </tr>
    299 <tr>
    300 <td>
    301                 <p>
    302                   <code class="computeroutput"><span class="identifier">big_qword</span></code>
    303                 </p>
    304                 </td>
    305 <td>
    306                 <p>
     214                </p></td>
     215</tr>
     216<tr>
     217<td><p>
     218                  <tt class="computeroutput"><span class="identifier">big_qword</span></tt>
     219                </p></td>
     220<td><p>
    307221                  64 bits big endian
    308                 </p>
    309                 </td>
    310 <td>
    311                 <p>
     222                </p></td>
     223<td><p>
    312224                  Generates a 64 bit binary
    313                 </p>
    314                 </td>
    315 </tr>
    316 <tr>
    317 <td>
    318                 <p>
    319                   <code class="computeroutput"><span class="identifier">little_qword</span></code>
    320                 </p>
    321                 </td>
    322 <td>
    323                 <p>
     225                </p></td>
     226</tr>
     227<tr>
     228<td><p>
     229                  <tt class="computeroutput"><span class="identifier">little_qword</span></tt>
     230                </p></td>
     231<td><p>
    324232                  64 bits little endian
    325                 </p>
    326                 </td>
    327 <td>
    328                 <p>
     233                </p></td>
     234<td><p>
    329235                  Generates a 64 bit binary
    330                 </p>
    331                 </td>
    332 </tr>
    333 <tr>
    334 <td>
    335                 <p>
    336                   <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
    337                 </p>
    338                 </td>
    339 <td>
    340                 <p>
    341                   <code class="computeroutput"><span class="identifier">Ch</span></code>
    342                 </p>
    343                 </td>
    344 <td>
    345                 <p>
    346                   Generates <code class="computeroutput"><span class="identifier">ch</span></code>
    347                 </p>
    348                 </td>
    349 </tr>
    350 <tr>
    351 <td>
    352                 <p>
    353                   <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></code>
    354                 </p>
    355                 </td>
    356 <td>
    357                 <p>
    358                   <code class="computeroutput"><span class="identifier">Ch</span></code>
    359                 </p>
    360                 </td>
    361 <td>
    362                 <p>
    363                   Generates a single char string literal, <code class="computeroutput"><span class="identifier">c</span></code>
    364                 </p>
    365                 </td>
    366 </tr>
    367 <tr>
    368 <td>
    369                 <p>
    370                   <code class="computeroutput"><span class="identifier">ch</span></code>
    371                 </p>
    372                 </td>
    373 <td>
    374                 <p>
    375                   <code class="computeroutput"><span class="identifier">Unused</span></code>
    376                 </p>
    377                 </td>
    378 <td>
    379                 <p>
    380                   Generates <code class="computeroutput"><span class="identifier">ch</span></code>
    381                 </p>
    382                 </td>
    383 </tr>
    384 <tr>
    385 <td>
    386                 <p>
    387                   <code class="computeroutput"><span class="identifier">str</span></code>
    388                 </p>
    389                 </td>
    390 <td>
    391                 <p>
    392                   <code class="computeroutput"><span class="identifier">Unused</span></code>
    393                 </p>
    394                 </td>
    395 <td>
    396                 <p>
    397                   Generates <code class="computeroutput"><span class="identifier">str</span></code>
    398                 </p>
    399                 </td>
    400 </tr>
    401 <tr>
    402 <td>
    403                 <p>
    404                   <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
    405                 </p>
    406                 </td>
    407 <td>
    408                 <p>
    409                   <code class="computeroutput"><span class="identifier">Unused</span></code>
    410                 </p>
    411                 </td>
    412 <td>
    413                 <p>
    414                   Generates <code class="computeroutput"><span class="identifier">ch</span></code>
    415                 </p>
    416                 </td>
    417 </tr>
    418 <tr>
    419 <td>
    420                 <p>
    421                   <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code>
    422                 </p>
    423                 </td>
    424 <td>
    425                 <p>
    426                   <code class="computeroutput"><span class="identifier">Unused</span></code>
    427                 </p>
    428                 </td>
    429 <td>
    430                 <p>
    431                   Generates <code class="computeroutput"><span class="identifier">str</span></code>
    432                 </p>
    433                 </td>
    434 </tr>
    435 <tr>
    436 <td>
    437                 <p>
    438                   <code class="computeroutput"><span class="identifier">string</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code>
    439                 </p>
    440                 </td>
    441 <td>
    442                 <p>
    443                   <code class="computeroutput"><span class="identifier">Str</span></code>
    444                 </p>
    445                 </td>
    446 <td>
    447                 <p>
    448                   Generates <code class="computeroutput"><span class="identifier">str</span></code>
    449                 </p>
    450                 </td>
    451 </tr>
    452 <tr>
    453 <td>
    454                 <p>
    455                   <code class="computeroutput"><span class="identifier">lower</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
    456                 </p>
    457                 </td>
    458 <td>
    459                 <p>
    460                   <code class="computeroutput"><span class="identifier">A</span></code>
    461                 </p>
    462                 </td>
    463 <td>
    464                 <p>
    465                   Generate <code class="computeroutput"><span class="identifier">a</span></code> as lower
     236                </p></td>
     237</tr>
     238<tr>
     239<td><p>
     240                  <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt>
     241                </p></td>
     242<td><p>
     243                  <tt class="computeroutput"><span class="identifier">Ch</span></tt>
     244                </p></td>
     245<td><p>
     246                  Generates <tt class="computeroutput"><span class="identifier">ch</span></tt>
     247                </p></td>
     248</tr>
     249<tr>
     250<td><p>
     251                  <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></tt>
     252                </p></td>
     253<td><p>
     254                  <tt class="computeroutput"><span class="identifier">Ch</span></tt>
     255                </p></td>
     256<td><p>
     257                  Generates a single char string literal, <tt class="computeroutput"><span class="identifier">c</span></tt>
     258                </p></td>
     259</tr>
     260<tr>
     261<td><p>
     262                  <tt class="computeroutput"><span class="identifier">ch</span></tt>
     263                </p></td>
     264<td><p>
     265                  <tt class="computeroutput"><span class="identifier">Unused</span></tt>
     266                </p></td>
     267<td><p>
     268                  Generates <tt class="computeroutput"><span class="identifier">ch</span></tt>
     269                </p></td>
     270</tr>
     271<tr>
     272<td><p>
     273                  <tt class="computeroutput"><span class="identifier">str</span></tt>
     274                </p></td>
     275<td><p>
     276                  <tt class="computeroutput"><span class="identifier">Unused</span></tt>
     277                </p></td>
     278<td><p>
     279                  Generates <tt class="computeroutput"><span class="identifier">str</span></tt>
     280                </p></td>
     281</tr>
     282<tr>
     283<td><p>
     284                  <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt>
     285                </p></td>
     286<td><p>
     287                  <tt class="computeroutput"><span class="identifier">Unused</span></tt>
     288                </p></td>
     289<td><p>
     290                  Generates <tt class="computeroutput"><span class="identifier">ch</span></tt>
     291                </p></td>
     292</tr>
     293<tr>
     294<td><p>
     295                  <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></tt>
     296                </p></td>
     297<td><p>
     298                  <tt class="computeroutput"><span class="identifier">Unused</span></tt>
     299                </p></td>
     300<td><p>
     301                  Generates <tt class="computeroutput"><span class="identifier">str</span></tt>
     302                </p></td>
     303</tr>
     304<tr>
     305<td><p>
     306                  <tt class="computeroutput"><span class="identifier">string</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></tt>
     307                </p></td>
     308<td><p>
     309                  <tt class="computeroutput"><span class="identifier">Str</span></tt>
     310                </p></td>
     311<td><p>
     312                  Generates <tt class="computeroutput"><span class="identifier">str</span></tt>
     313                </p></td>
     314</tr>
     315<tr>
     316<td><p>
     317                  <tt class="computeroutput"><span class="identifier">lower</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
     318                </p></td>
     319<td><p>
     320                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     321                </p></td>
     322<td><p>
     323                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> as lower
    466324                  case
    467                 </p>
    468                 </td>
    469 </tr>
    470 <tr>
    471 <td>
    472                 <p>
    473                   <code class="computeroutput"><span class="identifier">upper</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
    474                 </p>
    475                 </td>
    476 <td>
    477                 <p>
    478                   <code class="computeroutput"><span class="identifier">A</span></code>
    479                 </p>
    480                 </td>
    481 <td>
    482                 <p>
    483                   Generate <code class="computeroutput"><span class="identifier">a</span></code> as upper
     325                </p></td>
     326</tr>
     327<tr>
     328<td><p>
     329                  <tt class="computeroutput"><span class="identifier">upper</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
     330                </p></td>
     331<td><p>
     332                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     333                </p></td>
     334<td><p>
     335                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> as upper
    484336                  case
    485                 </p>
    486                 </td>
    487 </tr>
    488 <tr>
    489 <td>
    490                 <p>
    491                   <code class="computeroutput"><span class="identifier">left_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
    492                 </p>
    493                 </td>
    494 <td>
    495                 <p>
    496                   <code class="computeroutput"><span class="identifier">A</span></code>
    497                 </p>
    498                 </td>
    499 <td>
    500                 <p>
    501                   Generate <code class="computeroutput"><span class="identifier">a</span></code> left
     337                </p></td>
     338</tr>
     339<tr>
     340<td><p>
     341                  <tt class="computeroutput"><span class="identifier">left_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
     342                </p></td>
     343<td><p>
     344                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     345                </p></td>
     346<td><p>
     347                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> left
    502348                  aligned in column of width BOOST_KARMA_DEFAULT_FIELD_LENGTH
    503                 </p>
    504                 </td>
    505 </tr>
    506 <tr>
    507 <td>
    508                 <p>
    509                   <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
    510                 </p>
    511                 </td>
    512 <td>
    513                 <p>
    514                   <code class="computeroutput"><span class="identifier">A</span></code>
    515                 </p>
    516                 </td>
    517 <td>
    518                 <p>
    519                   Generate <code class="computeroutput"><span class="identifier">a</span></code> left
    520                   aligned in column of width <code class="computeroutput"><span class="identifier">N</span></code>
    521                 </p>
    522                 </td>
    523 </tr>
    524 <tr>
    525 <td>
    526                 <p>
    527                   <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span>
    528                   <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
    529                 </p>
    530                 </td>
    531 <td>
    532                 <p>
    533                   <code class="computeroutput"><span class="identifier">A</span></code>
    534                 </p>
    535                 </td>
    536 <td>
    537                 <p>
    538                   Generate <code class="computeroutput"><span class="identifier">a</span></code> left
    539                   aligned in column of width <code class="computeroutput"><span class="identifier">N</span></code>
    540                   while using <code class="computeroutput"><span class="identifier">g</span></code> to
     349                </p></td>
     350</tr>
     351<tr>
     352<td><p>
     353                  <tt class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
     354                </p></td>
     355<td><p>
     356                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     357                </p></td>
     358<td><p>
     359                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> left
     360                  aligned in column of width <tt class="computeroutput"><span class="identifier">N</span></tt>
     361                </p></td>
     362</tr>
     363<tr>
     364<td><p>
     365                  <tt class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span>
     366                  <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
     367                </p></td>
     368<td><p>
     369                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     370                </p></td>
     371<td><p>
     372                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> left
     373                  aligned in column of width <tt class="computeroutput"><span class="identifier">N</span></tt>
     374                  while using <tt class="computeroutput"><span class="identifier">g</span></tt> to
    541375                  generate the necesssary padding
    542                 </p>
    543                 </td>
    544 </tr>
    545 <tr>
    546 <td>
    547                 <p>
    548                   <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
    549                 </p>
    550                 </td>
    551 <td>
    552                 <p>
    553                   <code class="computeroutput"><span class="identifier">A</span></code>
    554                 </p>
    555                 </td>
    556 <td>
    557                 <p>
    558                   Generate <code class="computeroutput"><span class="identifier">a</span></code> right
     376                </p></td>
     377</tr>
     378<tr>
     379<td><p>
     380                  <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
     381                </p></td>
     382<td><p>
     383                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     384                </p></td>
     385<td><p>
     386                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> right
    559387                  aligned in column of width BOOST_KARMA_DEFAULT_FIELD_LENGTH
    560                 </p>
    561                 </td>
    562 </tr>
    563 <tr>
    564 <td>
    565                 <p>
    566                   <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
    567                 </p>
    568                 </td>
    569 <td>
    570                 <p>
    571                   <code class="computeroutput"><span class="identifier">A</span></code>
    572                 </p>
    573                 </td>
    574 <td>
    575                 <p>
    576                   Generate <code class="computeroutput"><span class="identifier">a</span></code> right
    577                   aligned in column of width <code class="computeroutput"><span class="identifier">N</span></code>
    578                 </p>
    579                 </td>
    580 </tr>
    581 <tr>
    582 <td>
    583                 <p>
    584                   <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span>
    585                   <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
    586                 </p>
    587                 </td>
    588 <td>
    589                 <p>
    590                   <code class="computeroutput"><span class="identifier">A</span></code>
    591                 </p>
    592                 </td>
    593 <td>
    594                 <p>
    595                   Generate <code class="computeroutput"><span class="identifier">a</span></code> right
    596                   aligned in column of width <code class="computeroutput"><span class="identifier">N</span></code>
    597                   while using <code class="computeroutput"><span class="identifier">g</span></code> to
     388                </p></td>
     389</tr>
     390<tr>
     391<td><p>
     392                  <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
     393                </p></td>
     394<td><p>
     395                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     396                </p></td>
     397<td><p>
     398                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> right
     399                  aligned in column of width <tt class="computeroutput"><span class="identifier">N</span></tt>
     400                </p></td>
     401</tr>
     402<tr>
     403<td><p>
     404                  <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span>
     405                  <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
     406                </p></td>
     407<td><p>
     408                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     409                </p></td>
     410<td><p>
     411                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> right
     412                  aligned in column of width <tt class="computeroutput"><span class="identifier">N</span></tt>
     413                  while using <tt class="computeroutput"><span class="identifier">g</span></tt> to
    598414                  generate the necesssary padding
    599                 </p>
    600                 </td>
    601 </tr>
    602 <tr>
    603 <td>
    604                 <p>
    605                   <code class="computeroutput"><span class="identifier">center</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
    606                 </p>
    607                 </td>
    608 <td>
    609                 <p>
    610                   <code class="computeroutput"><span class="identifier">A</span></code>
    611                 </p>
    612                 </td>
    613 <td>
    614                 <p>
    615                   Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
     415                </p></td>
     416</tr>
     417<tr>
     418<td><p>
     419                  <tt class="computeroutput"><span class="identifier">center</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
     420                </p></td>
     421<td><p>
     422                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     423                </p></td>
     424<td><p>
     425                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> centered
    616426                  in column of width BOOST_KARMA_DEFAULT_FIELD_LENGTH
    617                 </p>
    618                 </td>
    619 </tr>
    620 <tr>
    621 <td>
    622                 <p>
    623                   <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
    624                 </p>
    625                 </td>
    626 <td>
    627                 <p>
    628                   <code class="computeroutput"><span class="identifier">A</span></code>
    629                 </p>
    630                 </td>
    631 <td>
    632                 <p>
    633                   Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
    634                   in column of width <code class="computeroutput"><span class="identifier">N</span></code>
    635                 </p>
    636                 </td>
    637 </tr>
    638 <tr>
    639 <td>
    640                 <p>
    641                   <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span>
    642                   <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
    643                 </p>
    644                 </td>
    645 <td>
    646                 <p>
    647                   <code class="computeroutput"><span class="identifier">A</span></code>
    648                 </p>
    649                 </td>
    650 <td>
    651                 <p>
    652                   Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
    653                   in column of width <code class="computeroutput"><span class="identifier">N</span></code>
    654                   while using <code class="computeroutput"><span class="identifier">g</span></code> to
     427                </p></td>
     428</tr>
     429<tr>
     430<td><p>
     431                  <tt class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
     432                </p></td>
     433<td><p>
     434                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     435                </p></td>
     436<td><p>
     437                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> centered
     438                  in column of width <tt class="computeroutput"><span class="identifier">N</span></tt>
     439                </p></td>
     440</tr>
     441<tr>
     442<td><p>
     443                  <tt class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span>
     444                  <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
     445                </p></td>
     446<td><p>
     447                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     448                </p></td>
     449<td><p>
     450                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> centered
     451                  in column of width <tt class="computeroutput"><span class="identifier">N</span></tt>
     452                  while using <tt class="computeroutput"><span class="identifier">g</span></tt> to
    655453                  generate the necesssary padding
    656                 </p>
    657                 </td>
    658 </tr>
    659 <tr>
    660 <td>
    661                 <p>
    662                   <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
    663                 </p>
    664                 </td>
    665 <td>
    666                 <p>
    667                   <code class="computeroutput"><span class="identifier">A</span></code>
    668                 </p>
    669                 </td>
    670 <td>
    671                 <p>
    672                   Generate <code class="computeroutput"><span class="identifier">a</span></code> truncated
     454                </p></td>
     455</tr>
     456<tr>
     457<td><p>
     458                  <tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
     459                </p></td>
     460<td><p>
     461                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     462                </p></td>
     463<td><p>
     464                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> truncated
    673465                  to column of width BOOST_KARMA_DEFAULT_FIELD_MAXWIDTH
    674                 </p>
    675                 </td>
    676 </tr>
    677 <tr>
    678 <td>
    679                 <p>
    680                   <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
    681                 </p>
    682                 </td>
    683 <td>
    684                 <p>
    685                   <code class="computeroutput"><span class="identifier">A</span></code>
    686                 </p>
    687                 </td>
    688 <td>
    689                 <p>
    690                   Generate <code class="computeroutput"><span class="identifier">a</span></code> truncated
    691                   to column of width <code class="computeroutput"><span class="identifier">N</span></code>
    692                 </p>
    693                 </td>
    694 </tr>
    695 <tr>
    696 <td>
    697                 <p>
    698                   <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
    699                 </p>
    700                 </td>
    701 <td>
    702                 <p>
    703                   <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
    704                 </p>
    705                 </td>
    706 <td>
    707                 <p>
    708                   Repeat <code class="computeroutput"><span class="identifier">a</span></code> zero or
     466                </p></td>
     467</tr>
     468<tr>
     469<td><p>
     470                  <tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
     471                </p></td>
     472<td><p>
     473                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     474                </p></td>
     475<td><p>
     476                  Generate <tt class="computeroutput"><span class="identifier">a</span></tt> truncated
     477                  to column of width <tt class="computeroutput"><span class="identifier">N</span></tt>
     478                </p></td>
     479</tr>
     480<tr>
     481<td><p>
     482                  <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
     483                </p></td>
     484<td><p>
     485                  <tt class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></tt>
     486                </p></td>
     487<td><p>
     488                  Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> zero or
    709489                  more times
    710                 </p>
    711                 </td>
    712 </tr>
    713 <tr>
    714 <td>
    715                 <p>
    716                   <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
    717                 </p>
    718                 </td>
    719 <td>
    720                 <p>
    721                   <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
    722                 </p>
    723                 </td>
    724 <td>
    725                 <p>
    726                   Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">N</span></code> times
    727                 </p>
    728                 </td>
    729 </tr>
    730 <tr>
    731 <td>
    732                 <p>
    733                   <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span>
    734                   <span class="identifier">M</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
    735                 </p>
    736                 </td>
    737 <td>
    738                 <p>
    739                   <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
    740                 </p>
    741                 </td>
    742 <td>
    743                 <p>
    744                   Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">N</span></code> to <code class="computeroutput"><span class="identifier">M</span></code>
     490                </p></td>
     491</tr>
     492<tr>
     493<td><p>
     494                  <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
     495                </p></td>
     496<td><p>
     497                  <tt class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></tt>
     498                </p></td>
     499<td><p>
     500                  Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> <tt class="computeroutput"><span class="identifier">N</span></tt> times
     501                </p></td>
     502</tr>
     503<tr>
     504<td><p>
     505                  <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span>
     506                  <span class="identifier">M</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
     507                </p></td>
     508<td><p>
     509                  <tt class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></tt>
     510                </p></td>
     511<td><p>
     512                  Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> <tt class="computeroutput"><span class="identifier">N</span></tt> to <tt class="computeroutput"><span class="identifier">M</span></tt>
    745513                  times
    746                 </p>
    747                 </td>
    748 </tr>
    749 <tr>
    750 <td>
    751                 <p>
    752                   <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span>
    753                   <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
    754                 </p>
    755                 </td>
    756 <td>
    757                 <p>
    758                   <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
    759                 </p>
    760                 </td>
    761 <td>
    762                 <p>
    763                   Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">N</span></code> or more times
    764                 </p>
    765                 </td>
    766 </tr>
    767 <tr>
    768 <td>
    769                 <p>
    770                   <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
    771                 </p>
    772                 </td>
    773 <td>
    774                 <p>
    775                   <code class="computeroutput"><span class="identifier">A</span></code>
    776                 </p>
    777                 </td>
    778 <td>
    779                 <p>
    780                   Disable delimited generation for <code class="computeroutput"><span class="identifier">a</span></code>
    781                 </p>
    782                 </td>
    783 </tr>
    784 <tr>
    785 <td>
    786                 <p>
    787                   <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
    788                 </p>
    789                 </td>
    790 <td>
    791                 <p>
    792                   <code class="computeroutput"><span class="identifier">A</span></code>
    793                 </p>
    794                 </td>
    795 <td>
    796                 <p>
     514                </p></td>
     515</tr>
     516<tr>
     517<td><p>
     518                  <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span>
     519                  <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
     520                </p></td>
     521<td><p>
     522                  <tt class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></tt>
     523                </p></td>
     524<td><p>
     525                  Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> <tt class="computeroutput"><span class="identifier">N</span></tt> or more times
     526                </p></td>
     527</tr>
     528<tr>
     529<td><p>
     530                  <tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
     531                </p></td>
     532<td><p>
     533                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     534                </p></td>
     535<td><p>
     536                  Disable delimited generation for <tt class="computeroutput"><span class="identifier">a</span></tt>
     537                </p></td>
     538</tr>
     539<tr>
     540<td><p>
     541                  <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
     542                </p></td>
     543<td><p>
     544                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     545                </p></td>
     546<td><p>
    797547                  Reestablish the delimiter that got inhibited by verbatim
    798                 </p>
    799                 </td>
    800 </tr>
    801 <tr>
    802 <td>
    803                 <p>
    804                   <code class="computeroutput"><span class="identifier">delimit</span><span class="special">(</span><span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
    805                 </p>
    806                 </td>
    807 <td>
    808                 <p>
    809                   <code class="computeroutput"><span class="identifier">A</span></code>
    810                 </p>
    811                 </td>
    812 <td>
    813                 <p>
    814                   Use <code class="computeroutput"><span class="identifier">g</span></code> as a skipper
    815                   for generating <code class="computeroutput"><span class="identifier">a</span></code>
    816                 </p>
    817                 </td>
    818 </tr>
    819 <tr>
    820 <td>
    821                 <p>
    822                   <code class="computeroutput"><span class="identifier">float_</span></code>
    823                 </p>
    824                 </td>
    825 <td>
    826                 <p>
    827                   <code class="computeroutput"><span class="keyword">float</span></code>
    828                 </p>
    829                 </td>
    830 <td>
    831                 <p>
    832                   Generate a floating point number from a <code class="computeroutput"><span class="keyword">float</span></code>
    833                 </p>
    834                 </td>
    835 </tr>
    836 <tr>
    837 <td>
    838                 <p>
    839                   <code class="computeroutput"><span class="identifier">double_</span></code>
    840                 </p>
    841                 </td>
    842 <td>
    843                 <p>
    844                   <code class="computeroutput"><span class="keyword">double</span></code>
    845                 </p>
    846                 </td>
    847 <td>
    848                 <p>
    849                   Generate a floating point number from a <code class="computeroutput"><span class="keyword">double</span></code>
    850                 </p>
    851                 </td>
    852 </tr>
    853 <tr>
    854 <td>
    855                 <p>
    856                   <code class="computeroutput"><span class="identifier">long_double</span></code>
    857                 </p>
    858                 </td>
    859 <td>
    860                 <p>
    861                   <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
    862                 </p>
    863                 </td>
    864 <td>
    865                 <p>
    866                   Generate a floating point number from a <code class="computeroutput"><span class="keyword">long</span>
    867                   <span class="keyword">double</span></code>
    868                 </p>
    869                 </td>
    870 </tr>
    871 <tr>
    872 <td>
    873                 <p>
    874                   <code class="computeroutput"><span class="identifier">bin</span></code>
    875                 </p>
    876                 </td>
    877 <td>
    878                 <p>
    879                   <code class="computeroutput"><span class="keyword">unsigned</span></code>
    880                 </p>
    881                 </td>
    882 <td>
    883                 <p>
    884                   Generate a binary integer from an <code class="computeroutput"><span class="keyword">unsigned</span></code>
    885                 </p>
    886                 </td>
    887 </tr>
    888 <tr>
    889 <td>
    890                 <p>
    891                   <code class="computeroutput"><span class="identifier">oct</span></code>
    892                 </p>
    893                 </td>
    894 <td>
    895                 <p>
    896                   <code class="computeroutput"><span class="keyword">unsigned</span></code>
    897                 </p>
    898                 </td>
    899 <td>
    900                 <p>
    901                   Generate an octal integer from an <code class="computeroutput"><span class="keyword">unsigned</span></code>
    902                 </p>
    903                 </td>
    904 </tr>
    905 <tr>
    906 <td>
    907                 <p>
    908                   <code class="computeroutput"><span class="identifier">hex</span></code>
    909                 </p>
    910                 </td>
    911 <td>
    912                 <p>
    913                   <code class="computeroutput"><span class="keyword">unsigned</span></code>
    914                 </p>
    915                 </td>
    916 <td>
    917                 <p>
    918                   Generate a hexadecimal integer from an <code class="computeroutput"><span class="keyword">unsigned</span></code>
    919                 </p>
    920                 </td>
    921 </tr>
    922 <tr>
    923 <td>
    924                 <p>
    925                   <code class="computeroutput"><span class="identifier">ushort_</span></code>
    926                 </p>
    927                 </td>
    928 <td>
    929                 <p>
    930                   <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></code>
    931                 </p>
    932                 </td>
    933 <td>
    934                 <p>
     548                </p></td>
     549</tr>
     550<tr>
     551<td><p>
     552                  <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">(</span><span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
     553                </p></td>
     554<td><p>
     555                  <tt class="computeroutput"><span class="identifier">A</span></tt>
     556                </p></td>
     557<td><p>
     558                  Use <tt class="computeroutput"><span class="identifier">g</span></tt> as a skipper
     559                  for generating <tt class="computeroutput"><span class="identifier">a</span></tt>
     560                </p></td>
     561</tr>
     562<tr>
     563<td><p>
     564                  <tt class="computeroutput"><span class="identifier">float_</span></tt>
     565                </p></td>
     566<td><p>
     567                  <tt class="computeroutput"><span class="keyword">float</span></tt>
     568                </p></td>
     569<td><p>
     570                  Generate a floating point number from a <tt class="computeroutput"><span class="keyword">float</span></tt>
     571                </p></td>
     572</tr>
     573<tr>
     574<td><p>
     575                  <tt class="computeroutput"><span class="identifier">double_</span></tt>
     576                </p></td>
     577<td><p>
     578                  <tt class="computeroutput"><span class="keyword">double</span></tt>
     579                </p></td>
     580<td><p>
     581                  Generate a floating point number from a <tt class="computeroutput"><span class="keyword">double</span></tt>
     582                </p></td>
     583</tr>
     584<tr>
     585<td><p>
     586                  <tt class="computeroutput"><span class="identifier">long_double</span></tt>
     587                </p></td>
     588<td><p>
     589                  <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></tt>
     590                </p></td>
     591<td><p>
     592                  Generate a floating point number from a <tt class="computeroutput"><span class="keyword">long</span>
     593                  <span class="keyword">double</span></tt>
     594                </p></td>
     595</tr>
     596<tr>
     597<td><p>
     598                  <tt class="computeroutput"><span class="identifier">bin</span></tt>
     599                </p></td>
     600<td><p>
     601                  <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
     602                </p></td>
     603<td><p>
     604                  Generate a binary integer from an <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
     605                </p></td>
     606</tr>
     607<tr>
     608<td><p>
     609                  <tt class="computeroutput"><span class="identifier">oct</span></tt>
     610                </p></td>
     611<td><p>
     612                  <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
     613                </p></td>
     614<td><p>
     615                  Generate an octal integer from an <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
     616                </p></td>
     617</tr>
     618<tr>
     619<td><p>
     620                  <tt class="computeroutput"><span class="identifier">hex</span></tt>
     621                </p></td>
     622<td><p>
     623                  <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
     624                </p></td>
     625<td><p>
     626                  Generate a hexadecimal integer from an <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
     627                </p></td>
     628</tr>
     629<tr>
     630<td><p>
     631                  <tt class="computeroutput"><span class="identifier">ushort_</span></tt>
     632                </p></td>
     633<td><p>
     634                  <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></tt>
     635                </p></td>
     636<td><p>
    935637                  Generate an unsigned short integer
    936                 </p>
    937                 </td>
    938 </tr>
    939 <tr>
    940 <td>
    941                 <p>
    942                   <code class="computeroutput"><span class="identifier">ulong_</span></code>
    943                 </p>
    944                 </td>
    945 <td>
    946                 <p>
    947                   <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></code>
    948                 </p>
    949                 </td>
    950 <td>
    951                 <p>
     638                </p></td>
     639</tr>
     640<tr>
     641<td><p>
     642                  <tt class="computeroutput"><span class="identifier">ulong_</span></tt>
     643                </p></td>
     644<td><p>
     645                  <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></tt>
     646                </p></td>
     647<td><p>
    952648                  Generate an unsigned long integer
    953                 </p>
    954                 </td>
    955 </tr>
    956 <tr>
    957 <td>
    958                 <p>
    959                   <code class="computeroutput"><span class="identifier">uint_</span></code>
    960                 </p>
    961                 </td>
    962 <td>
    963                 <p>
    964                   <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
    965                 </p>
    966                 </td>
    967 <td>
    968                 <p>
     649                </p></td>
     650</tr>
     651<tr>
     652<td><p>
     653                  <tt class="computeroutput"><span class="identifier">uint_</span></tt>
     654                </p></td>
     655<td><p>
     656                  <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></tt>
     657                </p></td>
     658<td><p>
    969659                  Generate an unsigned int
    970                 </p>
    971                 </td>
    972 </tr>
    973 <tr>
    974 <td>
    975                 <p>
    976                   <code class="computeroutput"><span class="identifier">ulong_long</span></code>
    977                 </p>
    978                 </td>
    979 <td>
    980                 <p>
    981                   <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
    982                   <span class="keyword">long</span></code>
    983                 </p>
    984                 </td>
    985 <td>
    986                 <p>
     660                </p></td>
     661</tr>
     662<tr>
     663<td><p>
     664                  <tt class="computeroutput"><span class="identifier">ulong_long</span></tt>
     665                </p></td>
     666<td><p>
     667                  <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
     668                  <span class="keyword">long</span></tt>
     669                </p></td>
     670<td><p>
    987671                  Generate an unsigned long long
    988                 </p>
    989                 </td>
    990 </tr>
    991 <tr>
    992 <td>
    993                 <p>
    994                   <code class="computeroutput"><span class="identifier">short_</span></code>
    995                 </p>
    996                 </td>
    997 <td>
    998                 <p>
    999                   <code class="computeroutput"><span class="keyword">short</span></code>
    1000                 </p>
    1001                 </td>
    1002 <td>
    1003                 <p>
     672                </p></td>
     673</tr>
     674<tr>
     675<td><p>
     676                  <tt class="computeroutput"><span class="identifier">short_</span></tt>
     677                </p></td>
     678<td><p>
     679                  <tt class="computeroutput"><span class="keyword">short</span></tt>
     680                </p></td>
     681<td><p>
    1004682                  Generate a short integer
    1005                 </p>
    1006                 </td>
    1007 </tr>
    1008 <tr>
    1009 <td>
    1010                 <p>
    1011                   <code class="computeroutput"><span class="identifier">long_</span></code>
    1012                 </p>
    1013                 </td>
    1014 <td>
    1015                 <p>
    1016                   <code class="computeroutput"><span class="keyword">long</span></code>
    1017                 </p>
    1018                 </td>
    1019 <td>
    1020                 <p>
     683                </p></td>
     684</tr>
     685<tr>
     686<td><p>
     687                  <tt class="computeroutput"><span class="identifier">long_</span></tt>
     688                </p></td>
     689<td><p>
     690                  <tt class="computeroutput"><span class="keyword">long</span></tt>
     691                </p></td>
     692<td><p>
    1021693                  Generate a long integer
    1022                 </p>
    1023                 </td>
    1024 </tr>
    1025 <tr>
    1026 <td>
    1027                 <p>
    1028                   <code class="computeroutput"><span class="identifier">int_</span></code>
    1029                 </p>
    1030                 </td>
    1031 <td>
    1032                 <p>
    1033                   <code class="computeroutput"><span class="keyword">int</span></code>
    1034                 </p>
    1035                 </td>
    1036 <td>
    1037                 <p>
     694                </p></td>
     695</tr>
     696<tr>
     697<td><p>
     698                  <tt class="computeroutput"><span class="identifier">int_</span></tt>
     699                </p></td>
     700<td><p>
     701                  <tt class="computeroutput"><span class="keyword">int</span></tt>
     702                </p></td>
     703<td><p>
    1038704                  Generate an int
    1039                 </p>
    1040                 </td>
    1041 </tr>
    1042 <tr>
    1043 <td>
    1044                 <p>
    1045                   <code class="computeroutput"><span class="identifier">long_long</span></code>
    1046                 </p>
    1047                 </td>
    1048 <td>
    1049                 <p>
    1050                   <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>
    1051                 </p>
    1052                 </td>
    1053 <td>
    1054                 <p>
     705                </p></td>
     706</tr>
     707<tr>
     708<td><p>
     709                  <tt class="computeroutput"><span class="identifier">long_long</span></tt>
     710                </p></td>
     711<td><p>
     712                  <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></tt>
     713                </p></td>
     714<td><p>
    1055715                  Generate a long long
    1056                 </p>
    1057                 </td>
    1058 </tr>
    1059 <tr>
    1060 <td>
    1061                 <p>
    1062                   <code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>
    1063                 </p>
    1064                 </td>
    1065 <td>
    1066                 <p>
    1067                   <code class="computeroutput"><span class="identifier">Unused</span></code>
    1068                 </p>
    1069                 </td>
    1070 <td>
    1071                 <p>
    1072                   Not predicate. Ensure that <code class="computeroutput"><span class="identifier">a</span></code>
     716                </p></td>
     717</tr>
     718<tr>
     719<td><p>
     720                  <tt class="computeroutput"><span class="special">!</span><span class="identifier">a</span></tt>
     721                </p></td>
     722<td><p>
     723                  <tt class="computeroutput"><span class="identifier">Unused</span></tt>
     724                </p></td>
     725<td><p>
     726                  Not predicate. Ensure that <tt class="computeroutput"><span class="identifier">a</span></tt>
    1073727                  does not succeed generating but don't create any output
    1074                 </p>
    1075                 </td>
    1076 </tr>
    1077 <tr>
    1078 <td>
    1079                 <p>
    1080                   <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">a</span></code>
    1081                 </p>
    1082                 </td>
    1083 <td>
    1084                 <p>
    1085                   <code class="computeroutput"><span class="identifier">Unused</span></code>
    1086                 </p>
    1087                 </td>
    1088 <td>
    1089                 <p>
    1090                   And predicate. Ensure that <code class="computeroutput"><span class="identifier">a</span></code>
     728                </p></td>
     729</tr>
     730<tr>
     731<td><p>
     732                  <tt class="computeroutput"><span class="special">&amp;</span><span class="identifier">a</span></tt>
     733                </p></td>
     734<td><p>
     735                  <tt class="computeroutput"><span class="identifier">Unused</span></tt>
     736                </p></td>
     737<td><p>
     738                  And predicate. Ensure that <tt class="computeroutput"><span class="identifier">a</span></tt>
    1091739                  does succeed generating but don't create any output
    1092                 </p>
    1093                 </td>
    1094 </tr>
    1095 <tr>
    1096 <td>
    1097                 <p>
    1098                   <code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>
    1099                 </p>
    1100                 </td>
    1101 <td>
    1102                 <p>
    1103                   <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
    1104                 </p>
    1105                 </td>
    1106 <td>
    1107                 <p>
    1108                   Optional. Generate <code class="computeroutput"><span class="identifier">a</span></code>
     740                </p></td>
     741</tr>
     742<tr>
     743<td><p>
     744                  <tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt>
     745                </p></td>
     746<td><p>
     747                  <tt class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></tt>
     748                </p></td>
     749<td><p>
     750                  Optional. Generate <tt class="computeroutput"><span class="identifier">a</span></tt>
    1109751                  zero or one time
    1110                 </p>
    1111                 </td>
    1112 </tr>
    1113 <tr>
    1114 <td>
    1115                 <p>
    1116                   <code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>
    1117                 </p>
    1118                 </td>
    1119 <td>
    1120                 <p>
    1121                   <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
    1122                 </p>
    1123                 </td>
    1124 <td>
    1125                 <p>
    1126                   Kleene. Generate <code class="computeroutput"><span class="identifier">a</span></code>
     752                </p></td>
     753</tr>
     754<tr>
     755<td><p>
     756                  <tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt>
     757                </p></td>
     758<td><p>
     759                  <tt class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></tt>
     760                </p></td>
     761<td><p>
     762                  Kleene. Generate <tt class="computeroutput"><span class="identifier">a</span></tt>
    1127763                  zero or more times
    1128                 </p>
    1129                 </td>
    1130 </tr>
    1131 <tr>
    1132 <td>
    1133                 <p>
    1134                   <code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>
    1135                 </p>
    1136                 </td>
    1137 <td>
    1138                 <p>
    1139                   <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
    1140                 </p>
    1141                 </td>
    1142 <td>
    1143                 <p>
    1144                   Plus. Generate <code class="computeroutput"><span class="identifier">a</span></code>
     764                </p></td>
     765</tr>
     766<tr>
     767<td><p>
     768                  <tt class="computeroutput"><span class="special">+</span><span class="identifier">a</span></tt>
     769                </p></td>
     770<td><p>
     771                  <tt class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></tt>
     772                </p></td>
     773<td><p>
     774                  Plus. Generate <tt class="computeroutput"><span class="identifier">a</span></tt>
    1145775                  one or more times
    1146                 </p>
    1147                 </td>
    1148 </tr>
    1149 <tr>
    1150 <td>
    1151                 <p>
    1152                   <code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
    1153                   <span class="identifier">b</span></code>
    1154                 </p>
    1155                 </td>
    1156 <td>
    1157                 <p>
    1158                   <code class="computeroutput"><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span>
    1159                   <span class="identifier">B</span><span class="special">&gt;</span></code>
    1160                 </p>
    1161                 </td>
    1162 <td>
    1163                 <p>
    1164                   Alternative. Generate <code class="computeroutput"><span class="identifier">a</span></code>
    1165                   or <code class="computeroutput"><span class="identifier">b</span></code>
    1166                 </p>
    1167                 </td>
    1168 </tr>
    1169 <tr>
    1170 <td>
    1171                 <p>
    1172                   <code class="computeroutput"><span class="identifier">a</span> <span class="special">&lt;&lt;</span>
    1173                   <span class="identifier">b</span></code>
    1174                 </p>
    1175                 </td>
    1176 <td>
    1177                 <p>
    1178                   <code class="computeroutput"><span class="identifier">tuple</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span>
    1179                   <span class="identifier">B</span><span class="special">&gt;</span></code>
    1180                 </p>
    1181                 </td>
    1182 <td>
    1183                 <p>
    1184                   Sequence. Generate <code class="computeroutput"><span class="identifier">a</span></code>
    1185                   followed by <code class="computeroutput"><span class="identifier">b</span></code>
    1186                 </p>
    1187                 </td>
    1188 </tr>
    1189 <tr>
    1190 <td>
    1191                 <p>
    1192                   <code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
    1193                   <span class="identifier">b</span></code>
    1194                 </p>
    1195                 </td>
    1196 <td>
    1197                 <p>
    1198                   <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
    1199                 </p>
    1200                 </td>
    1201 <td>
    1202                 <p>
    1203                   List. Generate <code class="computeroutput"><span class="identifier">a</span></code>
    1204                   delimited <code class="computeroutput"><span class="identifier">b</span></code> one
     776                </p></td>
     777</tr>
     778<tr>
     779<td><p>
     780                  <tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
     781                  <span class="identifier">b</span></tt>
     782                </p></td>
     783<td><p>
     784                  <tt class="computeroutput"><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span>
     785                  <span class="identifier">B</span><span class="special">&gt;</span></tt>
     786                </p></td>
     787<td><p>
     788                  Alternative. Generate <tt class="computeroutput"><span class="identifier">a</span></tt>
     789                  or <tt class="computeroutput"><span class="identifier">b</span></tt>
     790                </p></td>
     791</tr>
     792<tr>
     793<td><p>
     794                  <tt class="computeroutput"><span class="identifier">a</span> <span class="special">&lt;&lt;</span>
     795                  <span class="identifier">b</span></tt>
     796                </p></td>
     797<td><p>
     798                  <tt class="computeroutput"><span class="identifier">tuple</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span>
     799                  <span class="identifier">B</span><span class="special">&gt;</span></tt>
     800                </p></td>
     801<td><p>
     802                  Sequence. Generate <tt class="computeroutput"><span class="identifier">a</span></tt>
     803                  followed by <tt class="computeroutput"><span class="identifier">b</span></tt>
     804                </p></td>
     805</tr>
     806<tr>
     807<td><p>
     808                  <tt class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
     809                  <span class="identifier">b</span></tt>
     810                </p></td>
     811<td><p>
     812                  <tt class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></tt>
     813                </p></td>
     814<td><p>
     815                  List. Generate <tt class="computeroutput"><span class="identifier">a</span></tt>
     816                  delimited <tt class="computeroutput"><span class="identifier">b</span></tt> one
    1205817                  or more times
    1206                 </p>
    1207                 </td>
     818                </p></td>
    1208819</tr>
    1209820</tbody>
  • trunk/libs/spirit/doc/html/spirit/karma/quick_reference/semantic_actions.html

    r54361 r54630  
    22<head>
    33<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    4 <title>Semantic Actions</title>
     4<title>Semantic
     5        Actions</title>
    56<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../../index.html" title="Spirit 2.1">
     7<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     8<link rel="home" href="../../../index.html" title="Spirit 2.1">
    89<link rel="up" href="../quick_reference.html" title="Quick Reference">
    9 <link rel="prev" href="non_terminals.html" title="Non-terminals">
     10<link rel="previous" href="non_terminals.html" title="Non-terminals">
    1011<link rel="next" href="phoenix.html" title="Phoenix">
    1112</head>
     
    2425</div>
    2526<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h4 class="title">
    27 <a name="spirit.karma.quick_reference.semantic_actions"></a><a class="link" href="semantic_actions.html" title="Semantic Actions">Semantic
     27<div class="titlepage">
     28<div><div><h4 class="title">
     29<a name="spirit.karma.quick_reference.semantic_actions"></a><a href="semantic_actions.html" title="Semantic
     30        Actions">Semantic
    2831        Actions</a>
    29 </h4></div></div></div>
     32</h4></div></div>
     33<div></div>
     34</div>
    3035<p>
    3136          Has the form:
     
    3439</pre>
    3540<p>
    36           where <code class="computeroutput"><span class="identifier">f</span></code> is a function with
     41          where <tt class="computeroutput"><span class="identifier">f</span></tt> is a function with
    3742          the signatures:
    3843        </p>
     
    4247</pre>
    4348<p>
    44           You can use <code class="computeroutput"><a href="http://www.boost.org/libs/bind/index.html" target="_top">Boost.Bind</a></code>
     49          You can use <tt class="computeroutput"><a href="http://www.boost.org/libs/bind/index.html" target="_top">Boost.Bind</a></tt>
    4550          to bind member functions. For function objects, the allowed signatures
    4651          are:
     
    5156</pre>
    5257<p>
    53           The <code class="computeroutput"><span class="identifier">unused_type</span></code> is used
     58          The <tt class="computeroutput"><span class="identifier">unused_type</span></tt> is used
    5459          in the signatures above to signify 'don't care'.
    5560        </p>
  • trunk/libs/spirit/doc/html/spirit/karma/tutorials.html

    r54361 r54630  
    44<title>Tutorials</title>
    55<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../index.html" title="Spirit 2.1">
    8 <link rel="up" href="../karma.html" title="Karma">
    9 <link rel="prev" href="../karma.html" title="Karma">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../../index.html" title="Spirit 2.1">
     8<link rel="up" href="../karma.html" title=" Karma">
     9<link rel="previous" href="../karma.html" title=" Karma">
    1010<link rel="next" href="tutorials/quick_start.html" title="Quick Start">
    1111</head>
     
    2424</div>
    2525<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h3 class="title">
    27 <a name="spirit.karma.tutorials"></a><a class="link" href="tutorials.html" title="Tutorials">Tutorials</a>
    28 </h3></div></div></div>
     26<div class="titlepage">
     27<div><div><h3 class="title">
     28<a name="spirit.karma.tutorials"></a><a href="tutorials.html" title="Tutorials">Tutorials</a>
     29</h3></div></div>
     30<div></div>
     31</div>
    2932<div class="toc"><dl>
    3033<dt><span class="section"><a href="tutorials/quick_start.html">Quick Start</a></span></dt>
  • trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html

    r54368 r54630  
    44<title>Quick Start</title>
    55<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../../index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../../../index.html" title="Spirit 2.1">
    88<link rel="up" href="../tutorials.html" title="Tutorials">
    9 <link rel="prev" href="../tutorials.html" title="Tutorials">
     9<link rel="previous" href="../tutorials.html" title="Tutorials">
    1010<link rel="next" href="warming_up.html" title="Warming up">
    1111</head>
     
    2424</div>
    2525<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h4 class="title">
    27 <a name="spirit.karma.tutorials.quick_start"></a><a class="link" href="quick_start.html" title="Quick Start">Quick Start</a>
    28 </h4></div></div></div>
    29 <a name="spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_"></a><h6>
    30 <a name="id2641622"></a>
    31           <a class="link" href="quick_start.html#spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_">Spirit.Karma
     26<div class="titlepage">
     27<div><div><h4 class="title">
     28<a name="spirit.karma.tutorials.quick_start"></a><a href="quick_start.html" title="Quick Start">Quick Start</a>
     29</h4></div></div>
     30<div></div>
     31</div>
     32<a name="spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_"></a><h5>
     33<a name="id460230"></a>
     34          <a href="quick_start.html#spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_">Spirit.Karma
    3235          - what's that?</a>
    33         </h6>
     36        </h5>
    3437<p>
    3538          Throughout the description of <span class="emphasis"><em>Spirit.Karma</em></span> we will
  • trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html

    r54368 r54630  
    44<title>Warming up</title>
    55<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../../../index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../../../index.html" title="Spirit 2.1">
    88<link rel="up" href="../tutorials.html" title="Tutorials">
    9 <link rel="prev" href="quick_start.html" title="Quick Start">
     9<link rel="previous" href="quick_start.html" title="Quick Start">
    1010<link rel="next" href="../quick_reference.html" title="Quick Reference">
    1111</head>
     
    2424</div>
    2525<div class="section" lang="en">
    26 <div class="titlepage"><div><div><h4 class="title">
    27 <a name="spirit.karma.tutorials.warming_up"></a><a class="link" href="warming_up.html" title="Warming up">Warming up</a>
    28 </h4></div></div></div>
     26<div class="titlepage">
     27<div><div><h4 class="title">
     28<a name="spirit.karma.tutorials.warming_up"></a><a href="warming_up.html" title="Warming up">Warming up</a>
     29</h4></div></div>
     30<div></div>
     31</div>
    2932<p>
    3033          Learning how to use <span class="emphasis"><em>Spirit.Karma</em></span> is really simple.
    3134          We will start from trivial examples, ramping up as we go.
    3235        </p>
    33 <a name="spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number"></a><h6>
    34 <a name="id2641788"></a>
    35           <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number">Trivial
     36<a name="spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number"></a><h5>
     37<a name="id460416"></a>
     38          <a href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number">Trivial
    3639          Example #1 Generating a number</a>
    37         </h6>
     40        </h5>
    3841<p>
    3942          Let's create a generator that will output a floating-point number:
     
    4952          in <span class="emphasis"><em>Spirit.Karma</em></span> and in <span class="emphasis"><em>Spirit.Qi</em></span>.
    5053          Actually, both libraries are using the very same variable instance to refer
    51           to a floating point generator or parser: <code class="computeroutput"><span class="identifier">double_</span></code>.
    52         </p>
    53 <a name="spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers"></a><h6>
    54 <a name="id2641860"></a>
    55           <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers">Trivial
     54          to a floating point generator or parser: <tt class="computeroutput"><span class="identifier">double_</span></tt>.
     55        </p>
     56<a name="spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers"></a><h5>
     57<a name="id460486"></a>
     58          <a href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers">Trivial
    5659          Example #2 Generating two numbers</a>
    57         </h6>
     60        </h5>
    5861<p>
    5962          Now, let's create a generator that will output a line consisting of two
     
    6366</pre>
    6467<p>
    65           Here you see the familiar floating-point numeric generator <code class="computeroutput"><span class="identifier">double_</span></code> used twice, once for each number.
     68          Here you see the familiar floating-point numeric generator <tt class="computeroutput"><span class="identifier">double_</span></tt> used twice, once for each number.
    6669          If you are used to see the '&gt;&gt;' operator for concatenating two parsers
    67           in <span class="emphasis"><em>Spirit.Qi</em></span> you might wonder, what's that <code class="computeroutput"><span class="special">&lt;&lt;</span></code> operator doing in there? We decided
     70          in <span class="emphasis"><em>Spirit.Qi</em></span> you might wonder, what's that <tt class="computeroutput"><span class="special">&lt;&lt;</span></tt> operator doing in there? We decided
    6871          to distinguish generating and parsing of sequences the same way as the
    6972          std::stream libraries do: we use operator '&gt;&gt;' for input (parsing),
    70           and operator <code class="computeroutput"><span class="special">&lt;&lt;</span></code> for
     73          and operator <tt class="computeroutput"><span class="special">&lt;&lt;</span></tt> for
    7174          output (generating). Other than that there is no significant difference.
    7275          The above program creates a generator from two simpler generators, glueing
     
    8083<th align="left">Note</th>
    8184</tr>
    82 <tr><td align="left" valign="top"><p>
     85<tr><td colspan="2" align="left" valign="top"><p>
    8386            When we combine generators, we end up with a "bigger" generator,
    8487            but it's still a generator. Generators can get bigger and bigger, nesting
     
    8790          </p></td></tr>
    8891</table></div>
    89 <a name="spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers"></a><h6>
    90 <a name="id2641980"></a>
    91           <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers">Trivial
     92<a name="spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers"></a><h5>
     93<a name="id460613"></a>
     94          <a href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers">Trivial
    9295          Example #3 Generating one or more numbers</a>
    93         </h6>
     96        </h5>
    9497<p>
    9598          Now, creating output for two numbers is not too interesting. Let's create
     
    99102</pre>
    100103<p>
    101           This is like a regular-expression Kleene Star. We moved the <code class="computeroutput"><span class="special">*</span></code> to the front for the same reasons we did
     104          This is like a regular-expression Kleene Star. We moved the <tt class="computeroutput"><span class="special">*</span></tt> to the front for the same reasons we did
    102105          in <span class="emphasis"><em>Spirit.Qi</em></span>: we must work with the syntax rules of
    103106          C++. But if you know regular expressions (and for sure you remember those
     
    112115          numbers, if needed.
    113116        </p>
    114 <a name="spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers"></a><h6>
    115 <a name="id2642060"></a>
    116           <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers">Trivial
     117<a name="spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers"></a><h5>
     118<a name="id460701"></a>
     119          <a href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers">Trivial
    117120          Example #4 Generating a comma-delimited list of numbers</a>
    118         </h6>
     121        </h5>
    119122<p>
    120123          We follow the lead of <span class="emphasis"><em>Spirit.Qi</em></span>'s warming up section
     
    124127</pre>
    125128<p>
    126           Notice <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></code>. It is
    127           a literal character generator that simply generates the comma <code class="computeroutput"><span class="char">','</span></code>. In this case, the Kleene Star is modifying
     129          Notice <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></tt>. It is
     130          a literal character generator that simply generates the comma <tt class="computeroutput"><span class="char">','</span></tt>. In this case, the Kleene Star is modifying
    128131          a more complex generator, namely, the one generated by the expression:
    129132        </p>
     
    135138          in the generated output zero or more times.
    136139        </p>
    137 <a name="spirit.karma.tutorials.warming_up.let_s_generate_"></a><h6>
    138 <a name="id2642244"></a>
    139           <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.let_s_generate_">Let's
     140<a name="spirit.karma.tutorials.warming_up.let_s_generate_"></a><h5>
     141<a name="id460898"></a>
     142          <a href="warming_up.html#spirit.karma.tutorials.warming_up.let_s_generate_">Let's
    140143          Generate!</a>
    141         </h6>
     144        </h5>
    142145<p>
    143146          We're done with defining the generator. All what's left is to invoke the
    144           generator to do its work. For now, we will use the <code class="computeroutput"><span class="identifier">generate_delimited</span></code>
     147          generator to do its work. For now, we will use the <tt class="computeroutput"><span class="identifier">generate_delimited</span></tt>
    145148          function. One overload of this function accepts four arguments:
    146149        </p>
     
    168171          generation without generating any output? So we always will have to supply
    169172          the data the output should be generated from. In our example we supply
    170           a vector of <code class="computeroutput"><span class="keyword">double</span></code> numbers
    171           as the last parameter to the function <code class="computeroutput"><span class="identifier">generate_delimited</span></code>
     173          a vector of <tt class="computeroutput"><span class="keyword">double</span></tt> numbers
     174          as the last parameter to the function <tt class="computeroutput"><span class="identifier">generate_delimited</span></tt>
    172175          (see code below).
    173176        </p>
    174177<p>
    175178          In this example, we wish to delimite the generated numbers by spaces. Another
    176           generator named <code class="computeroutput"><span class="identifier">space</span></code> is
     179          generator named <tt class="computeroutput"><span class="identifier">space</span></tt> is
    177180          included in Spirit's repertoire of predefined generators. It is a very
    178181          trivial generator that simply produces spaces. It is the equivalent to
    179           writing <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">' '</span><span class="special">)</span></code>, or simply
    180           <code class="computeroutput"><span class="char">' '</span></code>. It has been implemented
    181           for similarity with the corresponding predefined <code class="computeroutput"><span class="identifier">space</span></code>
    182           parser. We will use <code class="computeroutput"><span class="identifier">space</span></code>
     182          writing <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">' '</span><span class="special">)</span></tt>, or simply
     183          <tt class="computeroutput"><span class="char">' '</span></tt>. It has been implemented
     184          for similarity with the corresponding predefined <tt class="computeroutput"><span class="identifier">space</span></tt>
     185          parser. We will use <tt class="computeroutput"><span class="identifier">space</span></tt>
    183186          as our delimiter. The delimiter is the one responsible for inserting characters
    184           in between generator elements such as the <code class="computeroutput"><span class="identifier">double_</span></code>
    185           and <code class="computeroutput"><span class="identifier">char_</span></code>.
     187          in between generator elements such as the <tt class="computeroutput"><span class="identifier">double_</span></tt>
     188          and <tt class="computeroutput"><span class="identifier">char_</span></tt>.
    186189        </p>
    187190<p>
     
    202205
    203206    <span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">generate_delimited</span><span class="special">(</span>
    204         <span class="identifier">sink</span><span class="special">,</span>                           <span class="callout_bug"><a class="co" name="spirit4co" href="warming_up.html#spirit4"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span>
    205         <span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="special">*(</span><span class="char">','</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span><span class="special">),</span>   <span class="callout_bug"><a class="co" name="spirit5co" href="warming_up.html#spirit5"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span>
    206         <span class="identifier">space</span><span class="special">,</span>                          <span class="callout_bug"><a class="co" name="spirit6co" href="warming_up.html#spirit6"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span>
    207         <span class="identifier">v</span>                               <span class="callout_bug"><a class="co" name="spirit7co" href="warming_up.html#spirit7"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span>
     207        <span class="identifier">sink</span><span class="special">,</span>                           <span class="callout_bug"><a name="spirit4co" href="warming_up.html#spirit4"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span>
     208        <span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="special">*(</span><span class="char">','</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span><span class="special">),</span>   <span class="callout_bug"><a name="spirit5co" href="warming_up.html#spirit5"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span>
     209        <span class="identifier">space</span><span class="special">,</span>                          <span class="callout_bug"><a name="spirit6co" href="warming_up.html#spirit6"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span>
     210        <span class="identifier">v</span>                               <span class="callout_bug"><a name="spirit7co" href="warming_up.html#spirit7"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span>
    208211    <span class="special">);</span>
    209212    <span class="keyword">return</span> <span class="identifier">r</span><span class="special">;</span>
     
    218221<div class="calloutlist"><table border="0" summary="Callout list">
    219222<tr>
    220 <td width="5%" valign="top" align="left"><p><a name="spirit4"></a><a href="#spirit4co"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
     223<td width="5%" valign="top" align="left">
     224<a name="spirit4"></a><a href="#spirit4co"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </td>
    221225<td valign="top" align="left"><p> destination: output iterator </p></td>
    222226</tr>
    223227<tr>
    224 <td width="5%" valign="top" align="left"><p><a name="spirit5"></a><a href="#spirit5co"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a> </p></td>
     228<td width="5%" valign="top" align="left">
     229<a name="spirit5"></a><a href="#spirit5co"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a> </td>
    225230<td valign="top" align="left"><p> the generator </p></td>
    226231</tr>
    227232<tr>
    228 <td width="5%" valign="top" align="left"><p><a name="spirit6"></a><a href="#spirit6co"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a> </p></td>
     233<td width="5%" valign="top" align="left">
     234<a name="spirit6"></a><a href="#spirit6co"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a> </td>
    229235<td valign="top" align="left"><p> the delimiter-generator </p></td>
    230236</tr>
    231237<tr>
    232 <td width="5%" valign="top" align="left"><p><a name="spirit7"></a><a href="#spirit7co"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a> </p></td>
     238<td width="5%" valign="top" align="left">
     239<a name="spirit7"></a><a href="#spirit7co"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a> </td>
    233240<td valign="top" align="left"><p> the
    234241            data to output </p></td>
     
    240247        </p>
    241248<p>
    242           The generate function returns <code class="computeroutput"><span class="keyword">true</span></code>
    243           or <code class="computeroutput"><span class="keyword">false</span></code> depending on the
     249          The generate function returns <tt class="computeroutput"><span class="keyword">true</span></tt>
     250          or <tt class="computeroutput"><span class="keyword">false</span></tt> depending on the
    244251          result of the output generation. As outlined in different places of this
    245252          documentation, a generator may fail for different reasons. One of the possible
     
    248255        </p>
    249256<p>
    250           Note that we inlined the generator directly in the call to <code class="computeroutput"><span class="identifier">generate_delimited</span></code>. Upon calling generate,
     257          Note that we inlined the generator directly in the call to <tt class="computeroutput"><span class="identifier">generate_delimited</span></tt>. Upon calling generate,
    251258          the expression evaluates into a temporary, unnamed generator which is passed
    252           into the <code class="computeroutput"><span class="identifier">generate_delimited</span><span class="special">()</span></code> function, used, and then destroyed.
     259          into the <tt class="computeroutput"><span class="identifier">generate_delimited</span><span class="special">()</span></tt> function, used, and then destroyed.
    253260        </p>
    254261<p>
  • trunk/libs/spirit/doc/html/spirit/lex.html

    r54361 r54630  
    22<head>
    33<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    4 <title>Spirit.Lex</title>
     4<title> Spirit.Lex</title>
    55<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
    6 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
    7 <link rel="start" href="../index.html" title="Spirit 2.1">
     6<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
     7<link rel="home" href="../index.html" title="Spirit 2.1">
    88<link rel="up" href="../index.html" title="Spirit 2.1">
    9 <link rel="prev" href="karma/quick_reference/phoenix.html" title="Phoenix">
    10 <link rel="next" href="lex/lexer_introduction.html" title="Introduction to Spirit.Lex">