33 lines
962 B
33 lines
962 B
#pragma once
|
|
|
|
#include <vector>
|
|
#include <map>
|
|
#include <string>
|
|
|
|
namespace storm {
|
|
namespace automata {
|
|
class APSet {
|
|
public:
|
|
// TODO: uint32
|
|
typedef std::size_t alphabet_element;
|
|
|
|
APSet();
|
|
|
|
unsigned int size() const;
|
|
std::size_t alphabetSize() const;
|
|
void add(const std::string& ap);
|
|
unsigned int getIndex(const std::string& ap) const;
|
|
bool contains(const std::string& ap) const;
|
|
const std::string& getAP(unsigned int index) const;
|
|
const std::vector<std::string>& getAPs() const;
|
|
|
|
alphabet_element elementAllFalse() const;
|
|
alphabet_element elementAddAP(alphabet_element element, unsigned int ap) const;
|
|
|
|
const unsigned int MAX_APS = 32;
|
|
private:
|
|
std::map<std::string, unsigned int> ap_to_index;
|
|
std::vector<std::string> index_to_ap;
|
|
};
|
|
}
|
|
}
|