The first C++ package I looked at was ancient, but updated incrementally over the years. Consequently it was a mess. Some source files were written in C, some were in C++. There were multiple flex generated parsers mixed in the same program, and a lot of communication was performed using global variables. Needless to say I passed on that one.
The second one I looked at seemed clean at first, but contained a lot of simple C++ mistakes like passing std::string objects by value instead of const references, out of bounds array access and memory leakss. However, it seems to do what I want, and seems well enough contained that I should be able to extract the actual parsing parts without too much trouble. Now the question is if I try to go through and clean things up on the insides.