What are the disadvantages of the Spirit parser-generator framework from boost.org?

It is a quite cool idea, and I liked it; it was especially useful to really learn how to use C++ templates. But their documentation recommends the usage of spirit for small to medium-size parsers. A parser for a full language would take ages to compile. I will list three reasons. Scannerless parsing. While it’s … Read more

What is the name of this unusual C++ template feature used by Boost.Spirit?

The arguments to a template do not necessarily have to be defined to be used. The use of “class roman” actually declares the class roman. Here is some example code: #include <iostream> template <class T> void foo(); template<> void foo<class roman>() { // allowed because roman is declared roman* pointer1; // not allowed because romania … Read more

more spirit madness – parser-types (rules vs int_parser) and meta-programming techniques

I’m not so sure I get the full extent of the question, but here are a few hints The line commented with // THIS is what I need to do. compiles fine with me (problem solved? I’m guessing you actually meant assigning a parser, not a rule?) Initialization of function-local static has been defined to … Read more