23 lines
488 B
C++
23 lines
488 B
C++
#pragma once
|
|
|
|
#include "fesa/core/AnalysisState.hpp"
|
|
#include "fesa/core/Domain.hpp"
|
|
|
|
namespace fesa::analysis {
|
|
|
|
class Analysis {
|
|
public:
|
|
virtual ~Analysis() = default;
|
|
|
|
virtual const char* name() const noexcept = 0;
|
|
|
|
void run(const fesa::core::Domain& domain, fesa::core::AnalysisState& state) {
|
|
doRun(domain, state);
|
|
}
|
|
|
|
protected:
|
|
virtual void doRun(const fesa::core::Domain& domain, fesa::core::AnalysisState& state) = 0;
|
|
};
|
|
|
|
} // namespace fesa::analysis
|