src/PredFinder/PredFinder.cpp
// Manual patterns are also called manual patterns.

Manual patterns are also called manual patterns.
Manual patterns are also called manual patterns .
void PredFinder::readManualPatterns(const std::string & path, std::vector<PatternSet_ptr>& patterns) {
	boost::filesystem::path full_path;
	bool is_simple_file(false);
	if (path.empty()) {
		std::ostringstream out;
		out << "Manual pattern input is empty";
		throw std::runtime_error(out.str().c_str());
	}
	if (boost::algorithm::ends_with(path, ".sexp")) {
		is_simple_file = true;
		full_path = boost::filesystem::system_complete(boost::filesystem::path(path));
	}
	else {
		full_path = boost::filesystem::system_complete(boost::filesystem::path(path));
	}
	if (!boost::filesystem::exists(full_path)) {
		std::ostringstream out;
		out << "Specified Manual pattern input (" << full_path << ") doesn't exist";
		throw std::runtime_error(out.str().c_str());
	}
	if (is_simple_file) {
		if (!boost::filesystem::is_regular_file(full_path)) {
			std::ostringstream out;
			out << "Manual pattern input (" << full_path << ") is not a regular file";
			throw std::runtime_error(out.str().c_str());
		}
		PredFinder::readManualPatternSet(full_path, patterns);
	} else if (boost::filesystem::is_directory(full_path)) {
		PredFinder::readManualPatternsFromDir(full_path, patterns);
	} else {
		PredFinder::readManualPatternsFromList(full_path, patterns);
	}
}
void PredFinder :: readManualPatterns ( const std :: string & path , std :: vector < PatternSet_ptr > & patterns ) { boost :: filesystem :: path full_path ; bool is_simple_file ( false ) ; if ( path . empty ( ) ) { std :: ostringstream out ; out << " " ; throw std :: runtime_error ( out . str ( ) . c_str ( ) ) ; } if ( boost :: algorithm :: ends_with ( path , " " ) ) { is_simple_file = true ; full_path = boost :: filesystem :: system_complete ( boost :: filesystem :: path ( path ) ) ; } else { full_path = boost :: filesystem :: system_complete ( boost :: filesystem :: path ( path ) ) ; } if ( ! boost :: filesystem :: exists ( full_path ) ) { std :: ostringstream out ; out << " " << full_path << " " ; throw std :: runtime_error ( out . str ( ) . c_str ( ) ) ; } if ( is_simple_file ) { if ( ! boost :: filesystem :: is_regular_file ( full_path ) ) { std :: ostringstream out ; out << " " << full_path << " " ; throw std :: runtime_error ( out . str ( ) . c_str ( ) ) ; } PredFinder :: readManualPatternSet ( full_path , patterns ) ; } else if ( boost :: filesystem :: is_directory ( full_path ) ) { PredFinder :: readManualPatternsFromDir ( full_path , patterns ) ; } else { PredFinder :: readManualPatternsFromList ( full_path , patterns ) ; } }
Manual patterns are also called manual patterns.
Manual patterns are also called manual patterns .
// Read list of pattern files or walk through a directory of pattern files
 // Return the pattern read from the specified pattern file
 // Read patterns iteratively directory by directory
 // Return all of the patterns read from each pattern file specified in the specified list
