#define CDMUTILITIES_H_
#include<iostream>
+#include<vector>
#include<cstddef>
namespace CDMUtilities
const typename Container::value_type& s,
const typename Container::value_type& delimiters,
empties_t empties = empties_ok
- );
+ )
+ {
+ result.clear();
+ size_t current;
+ size_t next = -1;
+ do
+ {
+ if (empties == no_empties)
+ {
+ next = s.find_first_not_of(delimiters, next + 1);
+ if (next == Container::value_type::npos)
+ {
+ break;
+ }
+ next -= 1;
+ }
+ current = next + 1;
+ next = s.find_first_of(delimiters, current);
+ result.push_back(s.substr(current, next - current));
+ }
+ while (next != Container::value_type::npos);
+ return result;
+ }
};
/**
* @return line stringified.
*/
std::string stringify(const std::string& line);
+
+ //CMakeLists file handling
+ /**
+ * Type definition for the value of a syntax element for CMakeLists files
+ */
+ typedef std::vector<std::string> cmdValue;
+
+ /**
+ * Type definition for the type of a syntax element for CMakeLists files
+ */
+ typedef std::string cmdType;
+
+ /**
+ * Type definition for syntax elements of a CMakeLists file
+ */
+ typedef std::pair<cmdType,cmdValue> syntaxElement;
+
+ /**
+ * Type definition for describing a CMakeLists file content
+ */
+ typedef std::vector<syntaxElement> CMLFile;
+
+ /**
+ * Reads a file as string and returns the read data.
+ * @param file_path Full path of the CMakeLists file.
+ * @return A string with the contents of the given file.
+ */
+ std::string readFile(const std::string& file_path);
+ /**
+ * Writes the given string into a file and returns whether the operation is successful.
+ * @param file_path Full path of the CMakeLists file.
+ * @param st string to write.
+ * @return True if the operation was successful.
+ */
+ bool writeFile(const std::string& file_path, const std::string& st);
+
+ /**
+ * Reads a CMakeLists file and returns the read data.
+ * @param file_path Full path of the CMakeLists file.
+ * @return A CMLFile with the contents of the given file.
+ */
+ CMLFile readCMLFile(const std::string& file_path);
+
+ /**
+ * Writes the given data into specified CMakeLists file.
+ * @param file_path Full path of the CMakeLists file.
+ * @param data CMakeLists data.
+ * @return True if the operation was successful.
+ */
+ bool writeCMLFile(const std::string& file_path, const CMLFile& data);
+
+ /**
+ * @param st Strips all space character at the beginning and at the end of the string.
+ */
+ void normalizeStr(std::string& st);
+
};
#endif /* CDMUTILITIES_H_ */