Boost logo

Boost :

From: Kai-Mikael Jää-Aro (kai_at_[hidden])
Date: 2003-07-17 07:00:55

Joel de Guzman wrote:

> Kai-Mikael Jää-Aro <kai_at_[hidden]> wrote:
>>I obviously have not understood how spirit rules are supposed to work. The
>>simple program below fails to compile (spewing out 42 lines of error
>>messages). If I replace the application of 'Id' with int_p directly it works
>>What am I supposed to do to get the intended effect?
>>#include <iostream>
>>#include <boost/spirit.hpp>
>>using namespace std;
>>using namespace boost::spirit;
>>int main(int *argc, char *argv[])
>> int ID;
>> rule<> Id = int_p;
>> if (parse(argv[1],
>> Id [assign(ID)],
>> space_p).full)
>> {
>> cout << "Value = " << ID << endl;
>> }
>> else
>> {
>> cout << "Failed\n";
>> }
> Hi,
> See the FAQ "The Scanner Business". It's always a good idea
> to scan the FAQ first.

I have read, but not understood. I change the rule<> to rule<phrase_scanner_t>,
but I am still not allowed to perform the assignment. I suspect that I am
supposed to supply further arguments to the rule<> in order to specify its
return type so that the assignment gets properly interpreted, so I have
carefully gone through the manual pages for "The Rule", "Semantic Actions" and
"Predefined Actions", with quick dips into other sections, but I have not found
examples of how to do it.

Boost list run by bdawes at, gregod at, cpdaniel at, john at