#include #include #include #include std::map fileToPackage; std::map packageToNameSpace; std::map packageToFile; std::map fileNameToURI; std::map classToNameSpace; std::vector headers; std::vector sources; std::vector examples; std::vector all; std::vector read_lines(const std::string &filename){ std::ifstream stream(filename.c_str()); std::string line; std::vector lines; while(std::getline(stream,line)){ lines.push_back(line); } return lines; } void write_lines(const std::string &filename, const std::vector &lines){ std::ofstream stream(filename.c_str()); for(size_t i=0;i level; int main(){ std::vector packages = tok("ICLCore ICLCV ICLFilter ICLGeom ICLIO ICLMarkers ICLMath ICLQt ICLUtils"," "); level["ICLUtils"] = level["utils"] = 0; level["ICLMath"] = level["math"] = 1; level["ICLCore"] = level["core"] = 2; level["ICLFilter"] = level["filter"] = 3; level["ICLIO"] = level["io"] = 4; level["ICLQt"] = level["qt"] = 5; level["ICLGeom"] = level["geom"] = 6; level["ICLCV"] = level["cv"] = 7; level["ICLMarkers"] = level["markers"] = 8; int N = packages.size(); std::cout << "analyzing ..." << std::endl; fileToPackage["RSBImage.pb.h"] = "ICLIO"; packageToFile["ICLIO"] = "RSBImage.pb.h"; packageToNameSpace["ICLCore"] = "core"; packageToNameSpace["ICLCV"] = "cv"; packageToNameSpace["ICLFilter"] = "filter"; packageToNameSpace["ICLGeom"] = "geom"; packageToNameSpace["ICLIO"] = "io"; packageToNameSpace["ICLMarkers"] = "markers"; packageToNameSpace["ICLMath"] = "math"; packageToNameSpace["ICLQt"] = "qt"; packageToNameSpace["ICLUtils"] = "utils"; for(int i=0;i headersAndSources = headers; std::copy(sources.begin(),sources.end(),std::back_inserter(headersAndSources)); for(size_t i=0;i lines= read_lines(fh); bool inNamespace = false; for(size_t j=0;j lines = read_lines(fh); for(size_t j=0;jpackage map // * find classnames text-parts and prepend package namespace (not for the current package) // 2.) for source and example files: add using directives for all neccessary namespaces // * Example: using namespace icl::core; // * again, find class name expressions; // * memorize used classes and their packages; // * add using directives after last #include statement }