Browse Source
Added parsing support for expressions. Now working on parsing probabilistic programs.
tempestpy_adaptions
Added parsing support for expressions. Now working on parsing probabilistic programs.
tempestpy_adaptions
dehnert
12 years ago
8 changed files with 465 additions and 56 deletions
-
24src/ir/Module.h
-
35src/ir/Program.h
-
24src/ir/RewardModel.h
-
66src/ir/expressions/BooleanConstantExpression.h
-
66src/ir/expressions/DoubleConstantExpression.h
-
3src/ir/expressions/Expressions.h
-
66src/ir/expressions/IntegerConstantExpression.h
-
237src/parser/PrismParser.h
@ -0,0 +1,24 @@ |
|||||
|
/* |
||||
|
* Module.h |
||||
|
* |
||||
|
* Created on: 04.01.2013 |
||||
|
* Author: chris |
||||
|
*/ |
||||
|
|
||||
|
#ifndef MODULE_H_ |
||||
|
#define MODULE_H_ |
||||
|
|
||||
|
namespace storm { |
||||
|
|
||||
|
namespace ir { |
||||
|
|
||||
|
class Module { |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
#endif /* MODULE_H_ */ |
@ -0,0 +1,35 @@ |
|||||
|
/* |
||||
|
* Program.h |
||||
|
* |
||||
|
* Created on: 04.01.2013 |
||||
|
* Author: chris |
||||
|
*/ |
||||
|
|
||||
|
#ifndef PROGRAM_H_ |
||||
|
#define PROGRAM_H_ |
||||
|
|
||||
|
#include "src/ir/expressions/ConstantExpression.h" |
||||
|
#include "Module.h" |
||||
|
#include "RewardModel.h" |
||||
|
|
||||
|
namespace storm { |
||||
|
|
||||
|
namespace ir { |
||||
|
|
||||
|
class Program { |
||||
|
public: |
||||
|
enum ModelType {DTMC, CTMC, MDP, CTMDP} modelType; |
||||
|
std::map<std::string, storm::ir::expressions::ConstantExpression> undefinedConstantExpressions; |
||||
|
std::vector<storm::ir::Module> modules; |
||||
|
std::map<std::string, storm::ir::RewardModel> rewards; |
||||
|
|
||||
|
std::string toString() { |
||||
|
return std::string("prog!"); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
#endif /* PROGRAM_H_ */ |
@ -0,0 +1,24 @@ |
|||||
|
/* |
||||
|
* RewardModel.h |
||||
|
* |
||||
|
* Created on: 04.01.2013 |
||||
|
* Author: chris |
||||
|
*/ |
||||
|
|
||||
|
#ifndef REWARDMODEL_H_ |
||||
|
#define REWARDMODEL_H_ |
||||
|
|
||||
|
namespace storm { |
||||
|
|
||||
|
namespace ir { |
||||
|
|
||||
|
class RewardModel { |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
#endif /* REWARDMODEL_H_ */ |
@ -0,0 +1,66 @@ |
|||||
|
/* |
||||
|
* BooleanConstantExpression.h |
||||
|
* |
||||
|
* Created on: 04.01.2013 |
||||
|
* Author: chris |
||||
|
*/ |
||||
|
|
||||
|
#ifndef BOOLEANCONSTANTEXPRESSION_H_ |
||||
|
#define BOOLEANCONSTANTEXPRESSION_H_ |
||||
|
|
||||
|
#include "ConstantExpression.h" |
||||
|
|
||||
|
namespace storm { |
||||
|
|
||||
|
namespace ir { |
||||
|
|
||||
|
namespace expressions { |
||||
|
|
||||
|
class BooleanConstantExpression : public ConstantExpression { |
||||
|
public: |
||||
|
BooleanConstantExpression(std::string constantName) : ConstantExpression(constantName) { |
||||
|
defined = false; |
||||
|
value = false; |
||||
|
} |
||||
|
|
||||
|
virtual ~BooleanConstantExpression() { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
virtual std::string toString() const { |
||||
|
std::string result = this->constantName; |
||||
|
if (defined) { |
||||
|
result += "[" + boost::lexical_cast<std::string>(value) + "]"; |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
bool isDefined() { |
||||
|
return defined; |
||||
|
} |
||||
|
|
||||
|
bool getValue() { |
||||
|
return value; |
||||
|
} |
||||
|
|
||||
|
void define(bool value) { |
||||
|
defined = true; |
||||
|
this->value = value; |
||||
|
} |
||||
|
|
||||
|
bool value; |
||||
|
bool defined; |
||||
|
}; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
BOOST_FUSION_ADAPT_STRUCT( |
||||
|
storm::ir::expressions::BooleanConstantExpression, |
||||
|
(std::string, constantName) |
||||
|
) |
||||
|
|
||||
|
#endif /* BOOLEANCONSTANTEXPRESSION_H_ */ |
@ -0,0 +1,66 @@ |
|||||
|
/* |
||||
|
* DoubleConstantExpression.h |
||||
|
* |
||||
|
* Created on: 04.01.2013 |
||||
|
* Author: chris |
||||
|
*/ |
||||
|
|
||||
|
#ifndef DOUBLECONSTANTEXPRESSION_H_ |
||||
|
#define DOUBLECONSTANTEXPRESSION_H_ |
||||
|
|
||||
|
#include "ConstantExpression.h" |
||||
|
|
||||
|
namespace storm { |
||||
|
|
||||
|
namespace ir { |
||||
|
|
||||
|
namespace expressions { |
||||
|
|
||||
|
class DoubleConstantExpression : public ConstantExpression { |
||||
|
public: |
||||
|
DoubleConstantExpression(std::string constantName) : ConstantExpression(constantName) { |
||||
|
defined = false; |
||||
|
value = 0.0; |
||||
|
} |
||||
|
|
||||
|
virtual ~DoubleConstantExpression() { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
virtual std::string toString() const { |
||||
|
std::string result = this->constantName; |
||||
|
if (defined) { |
||||
|
result += "[" + boost::lexical_cast<std::string>(value) + "]"; |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
bool isDefined() { |
||||
|
return defined; |
||||
|
} |
||||
|
|
||||
|
double getValue() { |
||||
|
return value; |
||||
|
} |
||||
|
|
||||
|
void define(double value) { |
||||
|
defined = true; |
||||
|
this->value = value; |
||||
|
} |
||||
|
|
||||
|
double value; |
||||
|
bool defined; |
||||
|
}; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
BOOST_FUSION_ADAPT_STRUCT( |
||||
|
storm::ir::expressions::DoubleConstantExpression, |
||||
|
(std::string, constantName) |
||||
|
) |
||||
|
|
||||
|
#endif /* DOUBLECONSTANTEXPRESSION_H_ */ |
@ -0,0 +1,66 @@ |
|||||
|
/* |
||||
|
* IntegerConstantExpression.h |
||||
|
* |
||||
|
* Created on: 04.01.2013 |
||||
|
* Author: chris |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INTEGERCONSTANTEXPRESSION_H_ |
||||
|
#define INTEGERCONSTANTEXPRESSION_H_ |
||||
|
|
||||
|
#include "ConstantExpression.h" |
||||
|
|
||||
|
namespace storm { |
||||
|
|
||||
|
namespace ir { |
||||
|
|
||||
|
namespace expressions { |
||||
|
|
||||
|
class IntegerConstantExpression : public ConstantExpression { |
||||
|
public: |
||||
|
IntegerConstantExpression(std::string constantName) : ConstantExpression(constantName) { |
||||
|
defined = false; |
||||
|
value = 0; |
||||
|
} |
||||
|
|
||||
|
virtual ~IntegerConstantExpression() { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
virtual std::string toString() const { |
||||
|
std::string result = this->constantName; |
||||
|
if (defined) { |
||||
|
result += "[" + boost::lexical_cast<std::string>(value) + "]"; |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
bool isDefined() { |
||||
|
return defined; |
||||
|
} |
||||
|
|
||||
|
int getValue() { |
||||
|
return value; |
||||
|
} |
||||
|
|
||||
|
void define(int value) { |
||||
|
defined = true; |
||||
|
this->value = value; |
||||
|
} |
||||
|
|
||||
|
int value; |
||||
|
bool defined; |
||||
|
}; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
BOOST_FUSION_ADAPT_STRUCT( |
||||
|
storm::ir::expressions::IntegerConstantExpression, |
||||
|
(std::string, constantName) |
||||
|
) |
||||
|
|
||||
|
#endif /* INTEGERCONSTANTEXPRESSION_H_ */ |
Write
Preview
Loading…
Cancel
Save
Reference in new issue