diff --git a/src/formula/AbstractFormula.h b/src/formula/AbstractFormula.h new file mode 100644 index 000000000..8bd8b8782 --- /dev/null +++ b/src/formula/AbstractFormula.h @@ -0,0 +1,65 @@ +/* + * Abstractformula.h + * + * Created on: 19.10.2012 + * Author: Thomas Heinemann + */ + +#ifndef STORM_FORMULA_AbstractFORMULA_H_ +#define STORM_FORMULA_AbstractFORMULA_H_ + +#include + +namespace storm { namespace formula { +template class AbstractFormula; +}} + +#include "src/modelChecker/AbstractModelChecker.h" + +namespace storm { +namespace formula { + + +//abstract +/*! + * @brief + * Abstract base class for Abstract formulas in general. + * + * @attention This class is abstract. + * @note Formula classes do not have copy constructors. The parameters of the constructors are usually the subtrees, so + * the syntax conflicts with copy constructors for unary operators. To produce an identical object, the classes + * AbstractPathFormula and AbstractStateFormula offer the method clone(). + */ +template +class AbstractFormula { + +public: + /*! + * virtual destructor + */ + virtual ~AbstractFormula() { } + + /*! + * @note This function is not implemented in this class. + * @returns a string representation of the formula + */ + virtual std::string toString() const = 0; + + template