<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel about="http://blog.gmane.org/gmane.comp.parsers.spirit.general">
    <title>gmane.comp.parsers.spirit.general</title>
    <link>http://blog.gmane.org/gmane.comp.parsers.spirit.general</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13838"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13832"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13826"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13817"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13812"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13811"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13803"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13801"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13798"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13796"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13795"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13786"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13781"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13774"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13772"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13757"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13755"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13744"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13741"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13732"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13838">
    <title>Need help with variation of "Employee" sample</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13838</link>
    <description>My experience with parsing is miniscule. I created a small parser in
spirit 1.8 and was very happy with it. Now I am trying to expand it and
move to spirit2.

My goal is to create parser in spirit2 that will parse sql-like
commands. 

These commands resemble sql select statement, so I thought I will create
a structure (commandselect in the code below) that will have command
title ("select") and various structures for parts of the select command.
My first command option is a "frequency" option which is an integer
followed by the resolution type, for example 10 F2 , or 1 F1. Frequency
types are predefined.

For testing I am trying to parse a string SELECT 15 F2

Below is my attempt to do the parser using Employee sample from the
documentation. 
It does not compile. Headers for it are taken from Employee sample.

Your help will be greatly appreciated.


struct frequency {  // frequency portion of the command. Example: 30
F1 or 16 F2 or similar     
int value;
int resolution;// resolution is supplied as a string. 
// After parsing this value should be
mapped value from one of allowed frequencies() entry
};

BOOST_FUSION_ADAPT_STRUCT (
frequency,
(int, value)
(int, resolution)
)

struct commandselect {// command itself. Example:
SELECT 30 F1 or SELECT 16 F2
std::string title;
frequencydatafrequency;
};

BOOST_FUSION_ADAPT_STRUCT(
  commandselect,
  (std::string, title)
  (frequency,
datafrequency)
  )

// this structure holds allowed string values for "frequency" input
struct frequencies_ : symbols&lt;char, unsigned&gt; {
frequencies_()
{
add
("F1"  , 10)
("F2"  , 20);
}
} frequencies;


template &lt;typename Iterator&gt;
struct command_parser : grammar&lt;Iterator, commandselect(), space_type&gt;
{
command_parser() : command_parser::base_type(start)
{
ruleFrequency %= eps [_val = 0] &gt;&gt; int_ &gt;&gt; frequencies;

start %= eps [_val = 0] 
&gt;&gt;  lit("SELECT")
&gt;&gt;  ruleFrequency;
}

rule&lt;Iterator, frequency(), space_type&gt; ruleFrequency;
rule&lt;Iterator, commandselect(), space_type&gt; start; 
};


int _tmain(int argc, _TCHAR* argv[])
{
 typedef std::string::const_iterator iterator_type;
 typedef command_parser&lt;iterator_type&gt; select_parser;
  select_parser parser;
 
 return 0;
}


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/
</description>
    <dc:creator>Michael Blinchevsky</dc:creator>
    <dc:date>2008-12-02T16:32:07</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13832">
    <title>Change scanner</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13832</link>
    <description>Hi!

I'm new to Spirit,  any  ideas to better way how to change many  early  
writed rules  with  empty  template  (  rule&lt;&gt;)   to   rules  
with  case insensitive ( rule &lt;as_lower_scanner&lt;phrase_scanner_t&gt;::type&gt;) .
I know  i can simply search and replace in c++ source in all rule  
definitions, but why not  works this :

rule&lt;as_lower_scanner&lt;phrase_scanner_t&gt;::type&gt; otherrule = str_p("ddeee");
rule &lt;as_lower_scanner&lt;phrase_scanner_t&gt;::type&gt; ruletest = 'd' &gt;&gt; otherrule;
parse("dddEEE",ruletest ) -- is ok, but

rule&lt;&gt; otherrule = str_p("ddeee");
rule &lt;as_lower_scanner&lt;phrase_scanner_t&gt;::type&gt; ruletest = 'd' &gt;&gt; otherrule;
parse("dddEEE",ruletest ) -- is bad?


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/
</description>
    <dc:creator>Dainis</dc:creator>
    <dc:date>2008-12-02T14:23:00</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13826">
    <title>bug? char_('&lt;') [val_=_1] fails compile</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13826</link>
    <description>The attached only has one production
whose rhs is just a char_; yet, it only compiles when
both then branches of the #if's are active.

I had assumed that since the attribute of xml was
char, a char_ on the rhs of the xml production would work;
however, it doesn't.  Should it?

I also assumed that using char_(char*) on the rhs would
allow any char in the arg list to be successfully parsed.
Is that assumption correct?

Any help would be appreciated.

-regards
Larry
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/_______________________________________________
Spirit-general mailing list
Spirit-general&lt; at &gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spirit-general
</description>
    <dc:creator>Larry Evans</dc:creator>
    <dc:date>2008-12-02T05:56:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13817">
    <title>multi_pass and operator--</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13817</link>
    <description>-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/_______________________________________________
Spirit-general mailing list
Spirit-general&lt; at &gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spirit-general
</description>
    <dc:creator>John Wilkinson</dc:creator>
    <dc:date>2008-12-01T20:14:43</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13812">
    <title>rule actions</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13812</link>
    <description>Hi,
  I've been going through the documentation on the website on
rule actions, and still am not understanding them fully.

I have an rule that is something like this:

  myrule = str_p("blahtxt")[assign(self.action.name)];

this correctly throws 'blahtxt' into my action.name variable
I'm looking to do something like this:

  myrule = str_p("blahtxt")[self.action.name = "myblah"];

where self.action.name would now hold "myblah"
Surely, I'm just overlooking something obvious here.

Thanks,
-ian

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/
</description>
    <dc:creator>ian eyberg</dc:creator>
    <dc:date>2008-12-01T17:42:22</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13811">
    <title>[spirit2] compile time</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13811</link>
    <description>Hi,

I'm sure you all know that I am tweaking spirit2 inside out to
squeeze more compile time performance. Here are some numbers
so far. The most complex example in the spirit2 examples folder
is the mini-C compiler (compiles a very simple C like language
to a virtual machine). It is as close to a real world application
while still maintaining simplicity for the purpose of instruction.

Some numbers:

   spirit2 (in boost trunk):
   2 minutes, 37.9 seconds

   spirit2x (experimental in spirit svn):
   1 minute, 46.2 seconds

What's interesting about the mini-C compiler is that I tried as
much as possible to apply all tricks (***) to make it build faster,
like e.g. composing separate grammars, separating the grammar
definitions (the constructors) in separate cpp files, explicit
instantiation of the templates, etc. So, while the original 2 minutes,
38 seconds is not bad at all to begin with (considering the /relative/
complexity of the grammar(s)), now we have a definite speedup.

I'm quite happy. Let's hope we gain some more.

Hardware Specs:
   Core-2 Duo, 2.4Ghz, 4GB memory

Software Specs:
   MSVC 9.0 on Windows XP

(***) I'll try to document the tricks. Call it "spirit: best practice",
if you will. The Mini_C compiler has 25 rules, complete with semantic
actions. The rules have varying complexity from the simplest one-liner
to a 28 line rule.

Regards,
</description>
    <dc:creator>Joel de Guzman</dc:creator>
    <dc:date>2008-12-01T15:50:38</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13803">
    <title>[karma] streaming empty containers</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13803</link>
    <description>Hi there,

how do I reliably stream containers regardless of their size? The
following example only works with non-empty containers:

    std::vector&lt;int&gt; v;
    
    std::cout &lt;&lt; boost::spirit::karma::format(
                    '{' &lt;&lt; (stream % ", ") &lt;&lt; '}',
                    v
                ) &lt;&lt; std::endl;

If the container is empty the output is
    
    {%

and does not include a closing bracket. In fact, the entire stream is
cut off at the point of the first '{'. Of course, I could manually check
if the container is empty but it would be sweet if karma can handle
empty containers as well (output: "{}"). Could it be that I am misusing
karma here?

   Matthias
</description>
    <dc:creator>Matthias Vallentin</dc:creator>
    <dc:date>2008-12-01T02:02:07</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13801">
    <title>Simple suggestion for BOOST_FUSION_ADAPT_STRUCT</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13801</link>
    <description>Perhaps for structures whose main purpose is to be used w/ fusion, a 
macro can be used that will both define the structure and adapt it so that:

    struct foo
    {
         int var1;
         int var2;
         std::string name;
         std::string name2;
    };

    BOOST_FUSION_ADAPT_STRUCT(
         foo,
         (int, var1)
         (int, var2)
         (std::string, name)
         (std::string, name2)
    )

Can be shorted to something like:

    BOOST_FUSION_DEFINE_AND_ADAPT_STRUCT(
         foo,
         (int, var1)
         (int, var2)
         (std::string, name)
         (std::string, name2)
    )



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/
</description>
    <dc:creator>Raindog</dc:creator>
    <dc:date>2008-12-01T00:10:11</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13798">
    <title>[karma] streaming a std::map</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13798</link>
    <description>Hi,

could someone give me a short example how to stream std::map&lt;T,U&gt;? 
I understand how to stream a std::vector&lt;T&gt; with karma:

    out &lt;&lt; karma::format(
                        '{' &lt;&lt; (stream % ", ") &lt;&lt; '}', 
                        container
                        );

If container is a vector&lt;T&gt;, T needs operator&lt;&lt;. Would it make sense to
provide an operator&lt;&lt; for std::map&lt;T,U&gt;::value_type in order make the
above code snippet work?

   Matthias
</description>
    <dc:creator>Matthias Vallentin</dc:creator>
    <dc:date>2008-11-30T18:54:14</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13796">
    <title>problem with simple grammar action.</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13796</link>
    <description>Hello,

I've just created my first grammar and it worked on line at a time 
usage, but I wanted it to be able to operate on whole files at once and 
give me back a vector of what I was parsing. The following is working 
for a file that contains only parsable lines of text:

struct foo_parser: boost::spirit::qi::grammar&lt;Iterator, 
std::vector&lt;signature&gt;(), space_type&gt;
{
    foo_parser() : foo_parser::base_type(signatures)
    {
        signatures
            %=
                *(signature_r)
            ;

        signature_r
            %=
                '{'
                &gt;&gt; hex_number &gt;&gt; ','
                &gt;&gt; hex_number &gt;&gt; ','
                &gt;&gt; hex_number &gt;&gt; ','
                &gt;&gt; hex_number &gt;&gt; ','
                &gt;&gt; quoted_string &gt;&gt; '}' &gt;&gt; ','
                &gt;&gt; comment
            ;

        quoted_string
            %=
                lexeme
                    [
                        '"' &gt;&gt; +(char_ - '"') &gt;&gt; '"'
                    ]
            ;
        comment
            %=
                lexeme
                    [
                    lit("//") &gt;&gt; +(char_ - eol) &gt;&gt; eol
                    ]
            ;

        hex_number
            %=
                lit("0x") &gt;&gt; hex
            ;
    }

    boost::spirit::qi::rule&lt;Iterator, std::string(), space_type&gt; 
quoted_string, comment;
    boost::spirit::qi::rule&lt;Iterator, signature(), space_type&gt; signature_r;
    boost::spirit::qi::rule&lt;Iterator, boost::uint32_t(), space_type&gt; 
hex_number;
    boost::spirit::qi::rule&lt;Iterator, std::vector&lt;signature&gt;(), 
space_type&gt; signatures;
};


Now what I was trying to do was modify the signatures rule to have a 
different action that instead of relying on the magic of fusion/phoenix 
to give me a vector, I want to explicitly insert matched signature_r 
attributes into a vector, this is what I thought would work:

1. add a "std::vector&lt;signature&gt; sigs;" to foo_parser.
2. Modify the rule declarations and struct definition appropriately:
   
    struct foo_parser : boost::spirit::qi::grammar&lt;Iterator, space_type&gt;
    {
        foo_parser() : foo_parser::base_type(signatures)
        .....
        boost::spirit::qi::rule&lt;Iterator, space_type&gt; signatures;

3. Modify signatures rule:
        signatures
            =
                *(signature_r[push_back(ref(sigs), 
boost::spirit::arg_names::_1)])
            ;


The problem with #3 is that I get a giant list of errors, the 1st being:

1&gt;c:\code\boost-trunk\boost/spirit/home/phoenix/stl/container/container.hpp(498) 
: error C2664: 'std::vector&lt;_Ty&gt;::push_back' : cannot convert parameter 
1 from 'const unsigned long' to 'const signature &amp;'
1&gt;        with
1&gt;        [
1&gt;            _Ty=signature
1&gt;        ]
1&gt;        Reason: cannot convert from 'const unsigned long' to 'const 
signature'
1&gt;        No constructor could take the source type, or constructor 
overload resolution was ambiguous
1&gt;        
c:\code\boost-trunk\boost/spirit/home/phoenix/core/detail/function_eval.hpp(135) 
: see reference to function template instantiation 'void 
boost::phoenix::stl::push_back::operator ()&lt;T,unsigned long&gt;(C &amp;,const 
Arg &amp;) const' being compiled
1&gt;        with
1&gt;        [
1&gt;            T=std::vector&lt;signature&gt;,
1&gt;            C=std::vector&lt;signature&gt;,
1&gt;            Arg=const unsigned long
1&gt;        ]
1&gt;        
c:\code\boost-trunk\boost/spirit/home/phoenix/core/detail/composite_eval.hpp(98) 
: see reference to function template instantiation 'RT 
boost::phoenix::detail::function_eval&lt;2&gt;::eval&lt;RT,Env,const T,const 
boost::phoenix::reference&lt;std::vector&lt;_Ty&gt;&gt;,const 
boost::spirit::argument&lt;N&gt;&gt;(const Env &amp;,const F &amp;,A0 &amp;,A1 &amp;)' being compiled
1&gt;        with
1&gt;        [
1&gt;            RT=return_type,
1&gt;            Env=boost::phoenix::basic_environment&lt;const 
boost::fusion::vector6&lt;unsigned long,unsigned long,unsigned 
long,unsigned 
long,std::basic_string&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;,std::basic_string&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt;&gt;&gt;,boost::fusion::vector&lt;boost::fusion::vector1&lt;signature 
&amp;&gt;,boost::fusion::vector0&gt;,bool&gt;,
1&gt;            T=const boost::phoenix::value&lt;boost::phoenix::stl::push_back&gt;,
1&gt;            _Ty=signature,
1&gt;            N=0,
1&gt;            F=const boost::phoenix::value&lt;boost::phoenix::stl::push_back&gt;,
1&gt;            A0=const boost::phoenix::reference&lt;std::vector&lt;signature&gt;&gt;,
1&gt;            A1=const boost::spirit::argument&lt;0&gt;
1&gt;        ]



Any clues?
Thanks


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/
</description>
    <dc:creator>Raindog</dc:creator>
    <dc:date>2008-11-30T09:57:22</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13795">
    <title>[spirit2]"small" mod to mini_xml1.cpp gives error: invalid use of incomplete type 'struct boost::spirit::qi::expr_transform</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13795</link>
    <description>The code in 1st attachement gives error in 2nd attachment.
The error is not much help to me.  Hopefully someone
more experienced in spirit2 could give me some hint
about what's wrong.

Any help is appreciated.

-Larry
-*- mode: compilation; default-directory: "~/prog_dev/boost-svn/ro/boost_1_37_0/sandbox/lje/libs/utility/example/" -*-
Compilation started at Sat Nov 29 15:05:43

bjam spirit2.open_close_delim.proto
...patience...
...patience...
...found 1462 targets...
...updating 3 targets...
gcc.compile.c++ ../../../../../bin.v2/sandbox/lje/libs/utility/example/gcc-4.2/debug/spirit2.open_close_delim.proto.o
../../../../../boost/spirit/home/support/nonterminal/detail/nonterminal_fcall.hpp: In member function 'typename boost::lazy_enable_if_c&lt;(boost::mpl::size&lt;typename boost::function_types::parameter_types&lt;Sig, boost::add_reference&lt;mpl_::arg&lt;-0x00000000000000001&gt; &gt; &gt;::type&gt;::value == 1), boost::spirit::make_nonterminal_holder&lt;boost::spirit::parameterized_nonterminal&lt;Derived, boost::fusion::vector&lt;A0, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Derived&gt; &gt;::type boost::spirit::qi::nonterminal&lt;Derived, Sig, Locals&gt;::operator()(const A0&amp;) const [with A0 = boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::at_eval&lt;0&gt;, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, Derived = boost::spirit::qi::rule&lt;__gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, void ()(char), boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, boost::fusion::unused_type&gt;, Sig = void ()(char), Locals = boost::spirit::locals&lt;mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na&gt;]':
spirit2.open_close_delim.proto.cpp:210:   instantiated from 'mini_xml_grammar&lt;Iterator&gt;::mini_xml_grammar() [with Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;]'
spirit2.open_close_delim.proto.cpp:251:   instantiated from here
../../../../../boost/spirit/home/support/nonterminal/detail/nonterminal_fcall.hpp:53: warning: missing braces around initializer for 'boost::spirit::parameterized_nonterminal&lt;boost::spirit::qi::rule&lt;__gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, void ()(char), boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, boost::fusion::unused_type&gt;, boost::fusion::vector&lt;boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::at_eval&lt;0&gt;, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;'
../../../../../boost/xpressive/proto/transform/call.hpp: At global scope:
../../../../../boost/xpressive/proto/transform/call.hpp: In instantiation of 'boost::proto::transform::call&lt;boost::spirit::qi::expr_transform&lt;boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt; &gt;, 0l&gt;, void&gt; &gt;':
../../../../../boost/xpressive/proto/transform/bind.hpp:46:   instantiated from 'boost::proto::transform::bind&lt;boost::spirit::qi::expr_transform&lt;boost::proto::wildcardns_::_, void&gt; &gt;::result&lt;void ()(boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt; &gt;, 0l&gt;, boost::fusion::unused_type, boost::fusion::unused_type)&gt;'
../../../../../boost/spirit/home/support/component.hpp:206:   instantiated from 'boost::spirit::result_of::as_component&lt;boost::spirit::qi::domain, boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::fusion::unused_type, boost::fusion::unused_type&gt;'
../../../../../boost/spirit/home/support/attribute_of.hpp:25:   instantiated from 'boost::spirit::traits::attribute_of&lt;boost::spirit::qi::domain, boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;'
../../../../../boost/spirit/home/qi/action/action.hpp:33:   instantiated from 'boost::spirit::qi::action::attribute&lt;boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;'
../../../../../boost/spirit/home/qi/action/action.hpp:64:   instantiated from 'static bool boost::spirit::qi::action::parse(const Component&amp;, Iterator&amp;, const Iterator&amp;, Context&amp;, const Skipper&amp;, Attribute&amp;) [with Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::char_class&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, boost::fusion::nil&gt;, Attribute = const boost::fusion::unused_type]'
../../../../../boost/spirit/home/qi/nonterminal/detail/rule.hpp:53:   instantiated from 'bool boost::spirit::qi::detail::virtual_component&lt;Iterator, Component, Context, Skipper, Auto&gt;::parse_main(Iterator&amp;, const Iterator&amp;, Context&amp;, const Skipper_&amp;, mpl_::false_) [with Skipper_ = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::char_class&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, boost::fusion::nil&gt;, Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, Auto = mpl_::bool_&lt;false&gt;]'
../../../../../boost/spirit/home/qi/nonterminal/detail/rule.hpp:116:   instantiated from 'bool boost::spirit::qi::detail::virtual_component&lt;Iterator, Component, Context, Skipper, Auto&gt;::parse(Iterator&amp;, const Iterator&amp;, Context&amp;, const typename boost::spirit::qi::virtual_component_base&lt;Iterator, Context, Skipper&gt;::skipper_type&amp;) [with Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, Auto = mpl_::bool_&lt;false&gt;]'
spirit2.open_close_delim.proto.cpp:276:   instantiated from here
../../../../../boost/xpressive/proto/transform/call.hpp:230: error: invalid use of incomplete type 'struct boost::spirit::qi::expr_transform&lt;boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt; &gt;, 0l&gt;, void&gt;'
../../../../../boost/spirit/home/qi/meta_grammar.hpp:24: error: declaration of 'struct boost::spirit::qi::expr_transform&lt;boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt; &gt;, 0l&gt;, void&gt;'
../../../../../boost/xpressive/proto/transform/bind.hpp: In instantiation of 'boost::proto::transform::bind&lt;boost::spirit::qi::expr_transform&lt;boost::proto::wildcardns_::_, void&gt; &gt;::result&lt;void ()(boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt; &gt;, 0l&gt;, boost::fusion::unused_type, boost::fusion::unused_type)&gt;':
../../../../../boost/spirit/home/support/component.hpp:206:   instantiated from 'boost::spirit::result_of::as_component&lt;boost::spirit::qi::domain, boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::fusion::unused_type, boost::fusion::unused_type&gt;'
../../../../../boost/spirit/home/support/attribute_of.hpp:25:   instantiated from 'boost::spirit::traits::attribute_of&lt;boost::spirit::qi::domain, boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;'
../../../../../boost/spirit/home/qi/action/action.hpp:33:   instantiated from 'boost::spirit::qi::action::attribute&lt;boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;'
../../../../../boost/spirit/home/qi/action/action.hpp:64:   instantiated from 'static bool boost::spirit::qi::action::parse(const Component&amp;, Iterator&amp;, const Iterator&amp;, Context&amp;, const Skipper&amp;, Attribute&amp;) [with Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::char_class&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, boost::fusion::nil&gt;, Attribute = const boost::fusion::unused_type]'
../../../../../boost/spirit/home/qi/nonterminal/detail/rule.hpp:53:   instantiated from 'bool boost::spirit::qi::detail::virtual_component&lt;Iterator, Component, Context, Skipper, Auto&gt;::parse_main(Iterator&amp;, const Iterator&amp;, Context&amp;, const Skipper_&amp;, mpl_::false_) [with Skipper_ = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::char_class&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, boost::fusion::nil&gt;, Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, Auto = mpl_::bool_&lt;false&gt;]'
../../../../../boost/spirit/home/qi/nonterminal/detail/rule.hpp:116:   instantiated from 'bool boost::spirit::qi::detail::virtual_component&lt;Iterator, Component, Context, Skipper, Auto&gt;::parse(Iterator&amp;, const Iterator&amp;, Context&amp;, const typename boost::spirit::qi::virtual_component_base&lt;Iterator, Context, Skipper&gt;::skipper_type&amp;) [with Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, Auto = mpl_::bool_&lt;false&gt;]'
spirit2.open_close_delim.proto.cpp:276:   instantiated from here
../../../../../boost/xpressive/proto/transform/bind.hpp:46: error: no class template named 'result' in 'struct boost::proto::transform::call&lt;boost::spirit::qi::expr_transform&lt;boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt; &gt;, 0l&gt;, void&gt; &gt;'
../../../../../boost/spirit/home/qi/action/action.hpp: In static member function 'static bool boost::spirit::qi::action::parse(const Component&amp;, Iterator&amp;, const Iterator&amp;, Context&amp;, const Skipper&amp;, Attribute&amp;) [with Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::char_class&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, boost::fusion::nil&gt;, Attribute = const boost::fusion::unused_type]':
../../../../../boost/spirit/home/qi/nonterminal/detail/rule.hpp:53:   instantiated from 'bool boost::spirit::qi::detail::virtual_component&lt;Iterator, Component, Context, Skipper, Auto&gt;::parse_main(Iterator&amp;, const Iterator&amp;, Context&amp;, const Skipper_&amp;, mpl_::false_) [with Skipper_ = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::char_class&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, boost::fusion::nil&gt;, Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, Auto = mpl_::bool_&lt;false&gt;]'
../../../../../boost/spirit/home/qi/nonterminal/detail/rule.hpp:116:   instantiated from 'bool boost::spirit::qi::detail::virtual_component&lt;Iterator, Component, Context, Skipper, Auto&gt;::parse(Iterator&amp;, const Iterator&amp;, Context&amp;, const typename boost::spirit::qi::virtual_component_base&lt;Iterator, Context, Skipper&gt;::skipper_type&amp;) [with Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, Auto = mpl_::bool_&lt;false&gt;]'
spirit2.open_close_delim.proto.cpp:276:   instantiated from here
../../../../../boost/spirit/home/qi/action/action.hpp:64: error: no type named 'type' in 'struct boost::spirit::qi::action::attribute&lt;boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;'
../../../../../boost/spirit/home/qi/action/action.hpp:71: error: no type named 'type' in 'struct boost::spirit::qi::action::attribute&lt;boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;'
../../../../../boost/spirit/home/qi/nonterminal/detail/rule.hpp:53:   instantiated from 'bool boost::spirit::qi::detail::virtual_component&lt;Iterator, Component, Context, Skipper, Auto&gt;::parse_main(Iterator&amp;, const Iterator&amp;, Context&amp;, const Skipper_&amp;, mpl_::false_) [with Skipper_ = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::char_class&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, boost::fusion::nil&gt;, Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, Auto = mpl_::bool_&lt;false&gt;]'
../../../../../boost/spirit/home/qi/nonterminal/detail/rule.hpp:116:   instantiated from 'bool boost::spirit::qi::detail::virtual_component&lt;Iterator, Component, Context, Skipper, Auto&gt;::parse(Iterator&amp;, const Iterator&amp;, Context&amp;, const typename boost::spirit::qi::virtual_component_base&lt;Iterator, Context, Skipper&gt;::skipper_type&amp;) [with Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, Auto = mpl_::bool_&lt;false&gt;]'
spirit2.open_close_delim.proto.cpp:276:   instantiated from here
../../../../../boost/spirit/home/qi/action/action.hpp:71: error: no type named 'type' in 'struct boost::spirit::qi::action::attribute&lt;boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;'
../../../../../boost/spirit/home/qi/nonterminal/detail/rule.hpp:53:   instantiated from 'bool boost::spirit::qi::detail::virtual_component&lt;Iterator, Component, Context, Skipper, Auto&gt;::parse_main(Iterator&amp;, const Iterator&amp;, Context&amp;, const Skipper_&amp;, mpl_::false_) [with Skipper_ = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::char_class&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, boost::fusion::nil&gt;, Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, Auto = mpl_::bool_&lt;false&gt;]'
../../../../../boost/spirit/home/qi/nonterminal/detail/rule.hpp:116:   instantiated from 'bool boost::spirit::qi::detail::virtual_component&lt;Iterator, Component, Context, Skipper, Auto&gt;::parse(Iterator&amp;, const Iterator&amp;, Context&amp;, const typename boost::spirit::qi::virtual_component_base&lt;Iterator, Context, Skipper&gt;::skipper_type&amp;) [with Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, Auto = mpl_::bool_&lt;false&gt;]'
spirit2.open_close_delim.proto.cpp:276:   instantiated from here
../../../../../boost/spirit/home/qi/action/action.hpp:71: error: no type named 'type' in 'struct boost::spirit::qi::action::attribute&lt;boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;'
../../../../../boost/spirit/home/qi/action/action.hpp: In static member function 'static bool boost::spirit::qi::action::parse(const Component&amp;, Iterator&amp;, const Iterator&amp;, Context&amp;, const Skipper&amp;, Attribute&amp;) [with Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::fusion::unused_type, Attribute = const boost::fusion::unused_type]':
../../../../../boost/spirit/home/qi/nonterminal/detail/rule.hpp:53:   instantiated from 'bool boost::spirit::qi::detail::virtual_component&lt;Iterator, Component, Context, Skipper, Auto&gt;::parse_main(Iterator&amp;, const Iterator&amp;, Context&amp;, const Skipper_&amp;, mpl_::false_) [with Skipper_ = boost::fusion::unused_type, Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, Auto = mpl_::bool_&lt;false&gt;]'
../../../../../boost/spirit/home/qi/nonterminal/detail/rule.hpp:126:   instantiated from 'bool boost::spirit::qi::detail::virtual_component&lt;Iterator, Component, Context, Skipper, Auto&gt;::parse(Iterator&amp;, const Iterator&amp;, Context&amp;, boost::spirit::qi::no_skipper) [with Iterator = __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;, Component = boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, Context = boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, Skipper = boost::proto::exprns_::expr&lt;boost::proto::tag::terminal, boost::proto::argsns_::args0&lt;boost::spirit::char_class::key&lt;boost::spirit::char_class::ascii, boost::spirit::char_class::tag::space&gt; &gt;, 0l&gt;, Auto = mpl_::bool_&lt;false&gt;]'
spirit2.open_close_delim.proto.cpp:276:   instantiated from here
../../../../../boost/spirit/home/qi/action/action.hpp:64: error: no type named 'type' in 'struct boost::spirit::qi::action::attribute&lt;boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;'
../../../../../boost/spirit/home/qi/action/action.hpp:71: error: no type named 'type' in 'struct boost::spirit::qi::action::attribute&lt;boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;'
../../../../../boost/spirit/home/qi/action/action.hpp:71: error: no type named 'type' in 'struct boost::spirit::qi::action::attribute&lt;boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;'
../../../../../boost/spirit/home/qi/action/action.hpp:71: error: no type named 'type' in 'struct boost::spirit::qi::action::attribute&lt;boost::spirit::component&lt;boost::spirit::qi::domain, boost::spirit::qi::action, boost::fusion::list&lt;boost::spirit::qi::char_set_component&lt;char, boost::fusion::cons&lt;const char*, boost::fusion::nil&gt; &gt;, boost::phoenix::actor&lt;boost::phoenix::composite&lt;boost::phoenix::assign_eval, boost::fusion::vector&lt;boost::spirit::attribute&lt;0&gt;, boost::spirit::argument&lt;0&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt; &gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt; &gt;, boost::fusion::vector&lt;boost::fusion::vector&lt;char&amp;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::vector&lt;boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_&gt;, __gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;'

    "/usr/bin/g++-4.2"  -ftemplate-depth-128 -O0 -fno-inline -Wall -g -fPIC  -DBOOST_ALL_NO_LIB=1  -I"../../../../.." -I"../../../../lje" -I"../../../../spirit2/finalx" -I"../../../../.." -c -o "../../../../../bin.v2/sandbox/lje/libs/utility/example/gcc-4.2/debug/spirit2.open_close_delim.proto.o" "spirit2.open_close_delim.proto.cpp"

...failed gcc.compile.c++ ../../../../../bin.v2/sandbox/lje/libs/utility/example/gcc-4.2/debug/spirit2.open_close_delim.proto.o...
...removing ../../../../../bin.v2/sandbox/lje/libs/utility/example/gcc-4.2/debug/spirit2.open_close_delim.proto.o
...skipped &lt;p../../../../../bin.v2/sandbox/lje/libs/utility/example/gcc-4.2/debug&gt;spirit2.open_close_delim for lack of &lt;p../../../../../bin.v2/sandbox/lje/libs/utility/example/gcc-4.2/debug&gt;spirit2.open_close_delim.proto.o...
...skipped &lt;p../../../../../bin.v2/sandbox/lje/libs/utility/example/gcc-4.2/debug&gt;spirit2.open_close_delim.passed for lack of &lt;p../../../../../bin.v2/sandbox/lje/libs/utility/example/gcc-4.2/debug&gt;spirit2.open_close_delim...
...failed updating 1 target...
...skipped 2 targets...

Compilation exited abnormally with code 1 at Sat Nov 29 15:06:03
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/_______________________________________________
Spirit-general mailing list
Spirit-general&lt; at &gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spirit-general
</description>
    <dc:creator>Larry Evans</dc:creator>
    <dc:date>2008-11-29T21:18:11</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13786">
    <title>to lex or not to lex</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13786</link>
    <description>Hi,

can someone give me a hint, if I want to use a lexer or not? ;-)

I was playing a bit with qi and and lex; so for a very simple highly 
specialised scripting language, what would you recommend?

The approach using a lexer seemed to be a bit cleaner and more reusable 
to me although it seems to require more work to get nice error messages. 
On the other hand qi seems to be so powerful, that I don't see, why I 
should need a lexer. For my co-workers I think it's easer to understand 
something like char_(';') than token(T_SEMICOLON) (although I'm not sure 
about it). And then again the lexer makes it much easier to "block 
reserved keywords"...

I'm lost. Any recommendations?

Thanks,

Juergen

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/
</description>
    <dc:creator>Jürgen Hofmann</dc:creator>
    <dc:date>2008-11-28T19:09:38</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13781">
    <title>Phoenix lazy class 2008?</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13781</link>
    <description>-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/_______________________________________________
Spirit-general mailing list
Spirit-general&lt; at &gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spirit-general
</description>
    <dc:creator>Toby Walsh</dc:creator>
    <dc:date>2008-11-27T03:15:52</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13774">
    <title>Lexer Questions will be answered</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13774</link>
    <description>-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/_______________________________________________
Spirit-general mailing list
Spirit-general&lt; at &gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spirit-general
</description>
    <dc:creator>Ben Hanson</dc:creator>
    <dc:date>2008-11-25T16:41:37</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13772">
    <title>test</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13772</link>
    <description>-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/_______________________________________________
Spirit-general mailing list
Spirit-general&lt; at &gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spirit-general
</description>
    <dc:creator>Ben Hanson</dc:creator>
    <dc:date>2008-11-25T16:27:39</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13757">
    <title>[Spirit2]UTF-8</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13757</link>
    <description>So, I have lots of little files I need to parse.  However, they are
all in UTF-8 and do include characters that span up to 4 bytes in
length.  Since Spirit2 (or Spirit2x) does not include a char page set
for UTF-8 (or Unicode in general), what would be the recommended way
to parse this?

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/
</description>
    <dc:creator>OvermindDL1</dc:creator>
    <dc:date>2008-11-25T07:48:59</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13755">
    <title>[spirit 2]  spirit-lex  continuing testing</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13755</link>
    <description>I forget the exact flax syntax but this should b close enough to  
explain the problem:

/*
%%
"[ \t\n]+ {}
"[^ \t\n]"{return *yytext;}
&lt;BOL&gt; {
"[ \t]{}
"\n+"{BEGIN BOL_1;}
"[^ \t\n]" {return '\0';} // some char that will fail the parse
}
&lt;BOL_1&gt; {
"[ \t]"{BEGIN BOL;}
.{BEGIN INIYIAL; return *yytext;}// no newlines here!!
}

*/

in english in the initial state it merely eats [skips]  [ \t\n] and  
returns the matched character,

in BOL  it skips  [ \y\n]+ where the last char is a \n.   In other  
words in the defalt state  passed
  " \ta"  it returns 'a'  in state BOL it returns something the  
grammar will not parse such as '\0'.
  " \na"  returns "a" in both states
  " \n a"  returns a in initial state and fails in state BOL [returns  
'\0' for instance

then a lex_and_parse()'s grammar can get a bel parser just changing  
the state of the lexer where a bol is nmeded
and it will go back to initial state after the lexer returns its token.


I am confused . is this possible, fairly easily?   If so thwn the BOL  
problem is solvable without lazy parsers, just let the lexer do the
skipping:)



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/
</description>
    <dc:creator>Carl Barron</dc:creator>
    <dc:date>2008-11-25T03:56:03</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13744">
    <title>A small problem with the kleene star</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13744</link>
    <description>-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/_______________________________________________
Spirit-general mailing list
Spirit-general&lt; at &gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spirit-general
</description>
    <dc:creator>Kisso Bajslovski</dc:creator>
    <dc:date>2008-11-24T14:02:23</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13741">
    <title>Permutation parser with non mandatory perm.items</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13741</link>
    <description>
Hi, 
I tryed make my self permutation parser with possibility to have non
obligatory permutation item parsers. Evrithing goes well for me, but i cant
compile if i use main parse function with Skipper parser. Evidently i miss
somthing in my templates definition.
Here is source code for my pmut_p and pi_p types. 
http://www.nabble.com/file/p20625402/permutation.hpp permutation.hpp  If
some one have time and understund more then me of templates pls help me :)
(Im a template begginer)
Here is some grammar for testing:

struct test : public grammar&lt;test&gt;
{
   template &lt;typename ScannerT&gt;
   struct definition
   {
      definition(calculator const&amp; )
      {
         a = !ch_p('a');
         b = !ch_p('b');
         c = ch_p('c');
        
         file = !ch_p('&gt;') &gt;&gt; pmut_p( (pi_p(a), pi_p(b), pi_p(c)) ); 

BOOST_SPIRIT_DEBUG_RULE(a);
BOOST_SPIRIT_DEBUG_RULE(b);
BOOST_SPIRIT_DEBUG_RULE(c);
         BOOST_SPIRIT_DEBUG_RULE(file);
 
      }

        rule&lt;ScannerT &gt; a, b, c, file;
        rule&lt;ScannerT&gt; const&amp; start() const { return file; }
    };
};

this parser should parse phrases: abc, acb, bac, bca, cab, cba, bc, cb, ac,
ca, c (a and b are optional)
Naturally example with letters is just for test, the intent is to use like
pi_p( any parsing rule )

I test it without skipper parser, and it function, problem is when i call
parse with skipper parser present.

Thx in advance for who will help me find a problem :)
ladislav
 




</description>
    <dc:creator>Ladislav</dc:creator>
    <dc:date>2008-11-24T08:03:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13732">
    <title>Help me getting started please</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13732</link>
    <description>-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/_______________________________________________
Spirit-general mailing list
Spirit-general&lt; at &gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spirit-general
</description>
    <dc:creator>Brett Stottlemyer</dc:creator>
    <dc:date>2008-11-22T20:44:50</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13731">
    <title>a new directive similar to lexeme_d that keeps newlines</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13731</link>
    <description>-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/_______________________________________________
Spirit-general mailing list
Spirit-general&lt; at &gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spirit-general
</description>
    <dc:creator>Behringer Behringer</dc:creator>
    <dc:date>2008-11-22T12:53:48</dc:date>
  </item>
  <textinput about="http://search.gmane.org/?group=$group=gmane.comp.parsers.spirit.general">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.parsers.spirit.general</link>
  </textinput>
</rdf:RDF>
