Kai-Mikael Jää-Aro <[EMAIL PROTECTED]> 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 OK. 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.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost