int main(int argc, char* argv[])
{
	try{
		FileManager fileManager;
		fileManager.parseCmdLine(argc, argv);
		std::vector<std::string> files = fileManager.listFiles();
		std::cout << "\nFound files:";
		for (auto file : files){
			std::cout << "\n " << file;
		}
		bool isDisplayLess = fileManager.showFuncSizeAndComplexityOnly();
		std::cout << "\nDisplay only function size and complexity: " << (isDisplayLess ? "true" : "false") << "\n\n";
		std::cout << "Demonstrating with cmd line args in the order Path, Pattern and Options:";
		FileManager fileManager3;
		int nCmdParams = 6;
		char* cmdParams3[] = { "", "..//TEST", "*.cpp", "*.h", "/s", "/b" };
		for (int i = 1; i < nCmdParams; i++){
			std::cout << "\n arg:" << cmdParams3[i];
		}
		fileManager3.parseCmdLine(nCmdParams, cmdParams3);
		files = fileManager3.listFiles();
		std::cout << "\nFound files:";
		for (auto file : files){
			std::cout << "\n " << file;
		}
		isDisplayLess = fileManager3.showFuncSizeAndComplexityOnly();
		std::cout << "\nDisplay only function size and complexity: " << (isDisplayLess ? "true" : "false") << "\n\n";
		std::cout << "Demonstrating with options '/s', /b' appearing anywhere on the command line:";
		FileManager fileManager2; nCmdParams = 6;
		char* cmdParams2[] = { "", "/b", "..//TEST", "*.cpp", "*.h", "/s" };
		for (int i = 1; i < nCmdParams; i++){
			std::cout << "\n arg:" << cmdParams2[i];
		}
		fileManager2.parseCmdLine(nCmdParams, cmdParams2);
		files = fileManager2.listFiles();
		std::cout << "\nFound files:";
		for (auto file : files){
			std::cout << "\n " << file;
		}
		isDisplayLess = fileManager2.showFuncSizeAndComplexityOnly();
		std::cout << "\nDisplay only function size and complexity: " << (isDisplayLess ? "true" : "false");
		std::cout << "\n\n";
	}
	catch (std::exception ex){
	std::cout << ex.what();
	}
	return 0; 
}