diff --git a/CMakeLists.txt b/CMakeLists.txt index 06b47443a..212274456 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,9 @@ set (MRMC_CPP_VERSION_MAJOR 1) set (MRMC_CPP_VERSION_MINOR 0) option(DEFINE_UNIX "Defines the UNIX flag for compilation." OFF) +set (GTEST_INCLUDE_DIR resources/3rdparty/gtest-1.6.0/include) +set (GTEST_LIBRARY ${PROJECT_SOURCE_DIR}/resources/3rdparty/gtest-1.6.0/libgtest.a) +set (GTEST_MAIN_LIBRARY ${PROJECT_SOURCE_DIR}/resources/3rdparty/gtest-1.6.0/libgtest_main.a) #Configurations for GCC if(CMAKE_COMPILER_IS_GNUCC) diff --git a/src/parser/readPctlFile.cpp b/src/parser/readPctlFile.cpp new file mode 100644 index 000000000..1c9325758 --- /dev/null +++ b/src/parser/readPctlFile.cpp @@ -0,0 +1,32 @@ +#include "src/parser/readPctlFile.h" + +#include +#include +#include +#include + +namespace bs = boost::spirit; +namespace bsq = bs::qi; + +namespace +{ + using namespace bsq; + struct Parser : public bsq::grammar< char const* > + { + typedef rule< char const* > rule_t; + + rule_t atom, term, formula; + + Parser() : Parser::base_type(formula, "PCTL parser") + { + atom = double_ | (char_('(') >> formula >> char_(')') ); + term = atom >> *( char_('*') >> atom ); + formula = term >> *( char_('+') >> term ); + } + }; +} + +void readPctlFile(const char* filename) +{ + Parser p; +} \ No newline at end of file diff --git a/src/parser/readPctlFile.h b/src/parser/readPctlFile.h new file mode 100644 index 000000000..77e5fd3a4 --- /dev/null +++ b/src/parser/readPctlFile.h @@ -0,0 +1,15 @@ +#ifndef READPCTLFILE_H_ +#define READPCTLFILE_H_ + +namespace mrmc { +namespace parser { + +/*! + * @brief Load PCTL file + */ +void readPctlFile(const char * filename); + +} // namespace parser +} // namespace mrmc + +#endif /* READPCTLFILE_H_ */ \ No newline at end of file