You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.3 KiB
35 lines
1.3 KiB
#pragma once
|
|
|
|
#include "storm-pgcl/storage/pgcl/PgclProgram.h"
|
|
#include "storm-pgcl/storage/pgcl/Statement.h"
|
|
|
|
namespace storm {
|
|
namespace pgcl {
|
|
/**
|
|
* This abstract class handles the branching statements. Every branch
|
|
* statement has a right and a left branch. Since branch statements are
|
|
* compound statements, every branch is again a complete PGCL program
|
|
* itself.
|
|
*/
|
|
class BranchStatement : public Statement {
|
|
public:
|
|
BranchStatement() = default;
|
|
BranchStatement(const BranchStatement& orig) = default;
|
|
virtual ~BranchStatement() = default;
|
|
virtual void accept(class AbstractStatementVisitor&) = 0;
|
|
/**
|
|
* Returns the left branch of the statement.
|
|
* @return The left branch PGCL program.
|
|
*/
|
|
std::shared_ptr<storm::pgcl::PgclBlock> const& getLeftBranch() const;
|
|
/**
|
|
* Returns the right branch of the statement.
|
|
* @return The right branch PGCL program.
|
|
*/
|
|
std::shared_ptr<storm::pgcl::PgclBlock> const& getRightBranch() const;
|
|
protected:
|
|
std::shared_ptr<storm::pgcl::PgclBlock> leftBranch;
|
|
std::shared_ptr<storm::pgcl::PgclBlock> rightBranch;
|
|
};
|
|
}
|
|
}
|