<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Lazy (lazy)</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
<link rel="home" href="../../../../index.html" title="Spirit 2.4.1">
<link rel="up" href="../auxiliary.html" title="Auxiliary">
<link rel="prev" href="eps.html" title="Epsilon (eps)">
<link rel="next" href="../binary.html" title="Binary">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="eps.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../auxiliary.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../binary.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="spirit.qi.reference.auxiliary.lazy"></a><a class="link" href="lazy.html" title="Lazy (lazy)">Lazy (<code class="computeroutput"><span class="identifier">lazy</span></code>)</a>
</h5></div></div></div>
<a name="spirit.qi.reference.auxiliary.lazy.description"></a><h6>
<a name="id868457"></a>
            <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.description">Description</a>
          </h6>
<p>
            The <code class="computeroutput"><span class="identifier">lazy</span></code> parser, as its
            name suggests, invokes a lazy <a href="../../../../../../phoenix/doc/html/index.html" target="_top">Phoenix</a>
            function that returns a parser at parse time. This parser will be used
            once it is created to continue the parse.
          </p>
<a name="spirit.qi.reference.auxiliary.lazy.header"></a><h6>
<a name="id868487"></a>
            <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.header">Header</a>
          </h6>
<pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/qi/auxiliary/lazy.hpp&gt;
</span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi_lazy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
            Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
          </p>
<a name="spirit.qi.reference.auxiliary.lazy.namespace"></a><h6>
<a name="id868561"></a>
            <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.namespace">Namespace</a>
          </h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
<thead><tr><th>
                    <p>
                      Name
                    </p>
                  </th></tr></thead>
<tbody><tr><td>
                    <p>
                      <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lazy</span> <span class="comment">// alias:
                      boost::spirit::qi::lazy</span></code>
                    </p>
                  </td></tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.lazy.model_of"></a><h6>
<a name="id868639"></a>
            <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.model_of">Model of</a>
          </h6>
<div class="blockquote"><blockquote class="blockquote"><p>
              <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
            </p></blockquote></div>
<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
<dt><span class="term"><code class="computeroutput"><span class="identifier">fp</span></code></span></dt>
<dd><p>
                  A <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
                  Argument</a> that evaluates to a <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>.
                </p></dd>
</dl>
</div>
<a name="spirit.qi.reference.auxiliary.lazy.expression_semantics"></a><h6>
<a name="id868710"></a>
            <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.expression_semantics">Expression
            Semantics</a>
          </h6>
<p>
            Semantics of an expression is defined only where it differs from, or
            is not defined in <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>.
          </p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                    <p>
                      Expression
                    </p>
                  </th>
<th>
                    <p>
                      Semantics
                    </p>
                  </th>
</tr></thead>
<tbody>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">fp</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      Create a lazy-parser from a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
                      Argument</a>, <code class="computeroutput"><span class="identifier">fp</span></code>.
                      <code class="computeroutput"><span class="identifier">fp</span></code> will be
                      invoked at parse time. <code class="computeroutput"><span class="identifier">fp</span></code>
                      is expected to return a <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a> object. This
                      parser is then invoked in order to parse the input.
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fp</span><span class="special">)</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      Create a lazy-parser from a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
                      Argument</a>, <code class="computeroutput"><span class="identifier">fp</span></code>.
                      <code class="computeroutput"><span class="identifier">fp</span></code> will be
                      invoked at parse time. <code class="computeroutput"><span class="identifier">fp</span></code>
                      is expected to return a <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a> object. This
                      parser is then invoked in order to parse the input.
                    </p>
                  </td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.lazy.attributes"></a><h6>
<a name="id868904"></a>
            <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.attributes">Attributes</a>
          </h6>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                    <p>
                      Expression
                    </p>
                  </th>
<th>
                    <p>
                      Attribute
                    </p>
                  </th>
</tr></thead>
<tbody>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">fp</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      The attribute type of the return type of <code class="computeroutput"><span class="identifier">fp</span></code>.
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fp</span><span class="special">)</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      The attribute type of the return type of <code class="computeroutput"><span class="identifier">fp</span></code>.
                    </p>
                  </td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.lazy.complexity"></a><h6>
<a name="id869028"></a>
            <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.complexity">Complexity</a>
          </h6>
<p>
            The complexity of the <code class="computeroutput"><span class="identifier">lazy</span></code>
            parser is determined by the complexity of the parser returned from <code class="computeroutput"><span class="identifier">fp</span></code>.
          </p>
<a name="spirit.qi.reference.auxiliary.lazy.example"></a><h6>
<a name="id869059"></a>
            <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.example">Example</a>
          </h6>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top"><p>
              The test harness for the example(s) below is presented in the <a class="link" href="../basics.html#spirit.qi.reference.basics.examples">Basics Examples</a>
              section.
            </p></td></tr>
</table></div>
<p>
            Some using declarations:
          </p>
<p>
            
</p>
<pre class="programlisting"><span class="keyword">using</span> <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">lazy</span><span class="special">;</span>
<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ascii</span><span class="special">::</span><span class="identifier">string</span><span class="special">;</span>
<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">val</span><span class="special">;</span>
</pre>
<p>
          </p>
<p>
            Using <code class="computeroutput"><span class="identifier">lazy</span></code>:
          </p>
<p>
            Here, the phoenix::val expression creates a function that returns its
            argument when invoked. The lazy expression defers the invocation of this
            function at parse time. Then, this parser (string parser) is called into
            action. All this takes place at parse time.
          </p>
<p>
            
</p>
<pre class="programlisting"><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"Hello"</span><span class="special">,</span> <span class="identifier">lazy</span><span class="special">(</span><span class="identifier">val</span><span class="special">(</span><span class="identifier">string</span><span class="special">(</span><span class="string">"Hello"</span><span class="special">))));</span></pre>
<p>
          </p>
<p>
            The above is equivalent to:
          </p>
<p>
            
</p>
<pre class="programlisting"><span class="identifier">test_parser</span><span class="special">(</span><span class="string">"Hello"</span><span class="special">,</span> <span class="identifier">val</span><span class="special">(</span><span class="identifier">string</span><span class="special">(</span><span class="string">"Hello"</span><span class="special">)));</span>
</pre>
<p>
          </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2010 Joel de Guzman, Hartmut Kaiser<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="eps.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../auxiliary.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../binary.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
