ConceptCore/ccl/cclLang/test/utils/FakeTermContext.hpp
2024-04-15 22:16:14 +03:00

25 lines
685 B
C++

#pragma once
#include "ccl/lang/LexicalTerm.h"
#include "ccl/lang/EntityTermContext.hpp"
class FakeContext : public ccl::lang::EntityTermContext {
std::unordered_map<std::string, ccl::lang::LexicalTerm> terms{};
public:
void Clear() noexcept { terms.clear(); }
void Insert(const std::string& entity, const ccl::lang::LexicalTerm& term) {
terms.emplace(std::pair{ entity , term });
}
bool Contains(const std::string& entity) const override {
return terms.contains(entity);
}
const ccl::lang::LexicalTerm* At(const std::string& entity) const override {
if (!Contains(entity)) {
return nullptr;
} else {
return &terms.at(entity);
}
}
};