20#ifndef LLVMEXPR_ANALYSIS_FRAMEWORK_ANALYSIS_MANAGER_HPP
21#define LLVMEXPR_ANALYSIS_FRAMEWORK_ANALYSIS_MANAGER_HPP
35 bool mirror_boundary_in,
int expected_final_depth_in = 1);
37 template <
typename PassT>
typename PassT::Result&
getResult() {
40 auto result = pass.run(tokens, *
this);
41 results.template setResult<PassT>(std::move(result));
46 template <
typename PassT>
const typename PassT::Result&
getResult()
const {
50 template <
typename PassT> [[nodiscard]]
bool hasResult()
const {
56 [[nodiscard]]
const std::vector<Token>&
getTokens()
const {
return tokens; }
61 return expected_final_depth;
65 const std::vector<Token>& tokens;
68 int expected_final_depth;
const PassT::Result & getResult() const
bool getMirrorBoundary() const
const std::vector< Token > & getTokens() const
int getExpectedFinalDepth() const
AnalysisManager(const std::vector< Token > &tokens_in, bool mirror_boundary_in, int expected_final_depth_in=1)
PassT::Result & getResult()
void invalidate(const PreservedAnalyses &pa)