From 2eb08a603a6b7124b4d169e1f0e50ac3bcca3511 Mon Sep 17 00:00:00 2001 From: gereon Date: Wed, 28 Nov 2012 19:48:41 +0100 Subject: [PATCH] made stuff compile with new CMakeLists started a parser built with boost::spirit. It compiles, but does not do anything useful yet... --- CMakeLists.txt | 3 +++ src/parser/readPctlFile.cpp | 32 ++++++++++++++++++++++++++++++++ src/parser/readPctlFile.h | 15 +++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 src/parser/readPctlFile.cpp create mode 100644 src/parser/readPctlFile.h 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