<?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/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:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13731"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13719"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13708"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13705"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13704"/>
      </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/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 w</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
            %=
                le</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::f</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://mobli</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?  </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; </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>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13719">
    <title>stopping a parser via semantic actions</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13719</link>
    <description>
Ok so the only way I can figure out how to solve the problem I had  
with lazy , is to use a variable in the parser's struct to hold a
temporary symbol table such as an std:;set&lt;std::string&gt; since I don't  
need type info until the list is parsed,  A phoenix function can attempt
to insert a new entry and if it exists indicate an error,  using eps  
semantic predicates I can get the parser to fail and the iterators  
will be
correct , correct?   Now are inherited attributes modified in a called  
rule modified in the calling rule

foo =  bar(_val) % ',';

bar =  name [_a = _1]  &gt;&gt; eps( insert_and_check_dups(_r1,_a) ) ;

name %= lexeme[+alpha];


is foo's _val changed by bar, assuming it matches and  
insert_and_check_dups(....) changes _r1,



further _1,_2,etc are place holders for synthetic attributes of a  
called parser, but there is only one so what are _2,_3 etc good for??


Is there a way to write a functor_parser with inherited attributes?



-----------------------------------------------------</description>
    <dc:creator>Carl Barron</dc:creator>
    <dc:date>2008-11-17T18:59:20</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13708">
    <title>[spirit2] on_error</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13708</link>
    <description>In spirit2 we can use the (wonderful) on_error feature like

on_error&lt;fail&gt;
(
     xml ,
     std::cout
        &lt;&lt; val("Error! Expecting ")
        &lt;&lt; _4 // what failed?
        &lt;&lt; val(" here: \"")
        &lt;&lt; construct&lt;std::string&gt;(_3, _2) // iterators to error-pos, end
        &lt;&lt; val("\"")
        &lt;&lt; std::endl
 );

This works perfect with std::string::iterator etc.. However, if I use 
lexertl_lexer like :

    typedef std::string::iterator base_iterator_type;
   
    typedef lexertl_token&lt;
        base_iterator_type, boost::mpl::vector&lt;unsigned int, std::string&gt;
    &gt; token_type;
   
    typedef lexertl_lexer&lt;token_type&gt; lexer_type;
   
    typedef idl_tokens&lt;lexer_type&gt; idl_tokens;
   
    typedef lexer&lt;idl_tokens&gt;::iterator_type iterator_type;

I can pass this iterator_type to a grammar keeping the compiler happy, 
but the construct&lt;std::string&gt;(_3, _2) will not work. Is there a way to 
use on_error with this iterator_type, so that I can access the 
underlying base_iterator?

Juergen


-------------------</description>
    <dc:creator>Jürgen Hofmann</dc:creator>
    <dc:date>2008-11-10T20:00:56</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13705">
    <title>[spirit2] bug in qi::in_state?</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13705</link>
    <description>Hi,

I don't know about the official way to report bugs...

Some of the lex-samples in boost 1.37.0 don't compile (e.g. example3, 
example5, example6).

They all complain about

    template &lt;typename Char, typename Traits, typename Allocator&gt;
    inline typename proto::terminal&lt;in_state_tag&lt;Char const*&gt; &gt;::type
    in_state(std::basic_string&lt;Char, Traits, Allocator&gt; const&amp; s)
    {
        typedef std::basic_string&lt;Char, Traits, Allocator&gt; string_type;

        typename proto::terminal&lt;in_state_tag&lt;string_type&gt; &gt;::type that;
 &gt;&gt;        that.s = s;

        return that;
    }

's' : is not a member of 'boost::proto::exprns_::expr&lt;Tag,Args&gt;'

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-10T18:54:38</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13704">
    <title>wave and support_option_insert_whitespace</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13704</link>
    <description>Hi,

probably I miss the point...

The wave documentation says: "If the support_option_insert_whitespace 
flag is set, the Wave library  inserts additional whitespace between 
tokens where the concatenated string representation of the two tokens 
would form another valid C++ token. This is very importatnt to avoid 
mis-interpretations of the generated output if it is going to be 
processed by a C++ compiler afterwards."  

If I pre-process a file with wave (using the cpp-lexer and 
support_option_insert_whitespace) containing an erroneous fragment like 
"int 1abc;"  it generates "int 1 abc;"

Is this intended (the compiler produces different error messages, which 
may be confusing)?

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-co</description>
    <dc:creator>Jürgen Hofmann</dc:creator>
    <dc:date>2008-11-10T18:40:26</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.parsers.spirit.general/13695">
    <title>position_iterator bug (Boost 1.37.0)</title>
    <link>http://comments.gmane.org/gmane.comp.parsers.spirit.general/13695</link>
    <description>In boost::spirit::position_iterator::equal:

         return (_isend &amp;&amp; x_is_end) || (this-&gt;base() == rhs.base());

This is incorrect.  If either iterator is an end iterator created by 
default construction, it is not safe to compare the underlying iterators 
because they may be uninitialized.  This error has two possible symptoms:
   - It can cause a crash, if the iterator is of a type that cannot be 
safely compared when default-constructed.  (This is what happened in my 
case.)
   - It can cause an end iterator to compare equal to a non-end 
iterator, if the end iterator happens to have the correct bit pattern in 
its underlying iterator.

Corrected code:
         return (_isend != x_is_end)
           &amp;&amp; (_isend ? true : this-&gt;base() == rhs.base());


</description>
    <dc:creator>Rainer Deyke</dc:creator>
    <dc:date>2008-11-08T05:34:50</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>
