10 #include <unordered_map> 11 #include <unordered_set> 15 #include <hilti/ast/node-ref.h> 16 #include <hilti/base/intrusive-ptr.h> 34 void insertNotFound(
const ID&
id);
37 bool has(
const ID&
id)
const {
return ! _findID(
id).empty(); }
47 std::vector<Referee>
lookupAll(
const ID&
id)
const {
return _findID(
id); }
50 std::optional<Referee>
lookup(
const ID&
id)
const {
51 if (
auto ids = _findID(
id); ! ids.empty() )
58 void clear() { _items.clear(); }
61 const auto&
items()
const {
return _items; }
69 void render(std::ostream& out,
const std::string& prefix =
"")
const;
87 using ItemMap = std::map<std::string, std::unordered_set<NodeRef, NodeRefHash, NodeRefEqual>>;
89 std::vector<Referee> _findID(
const ID&
id,
bool external =
false)
const;
90 std::vector<Referee> _findID(
const Scope* scope,
const ID&
id,
bool external =
false)
const;
bool has(const ID &id) const
Definition: scope.h:37
Definition: intrusive-ptr.h:28
NodeRef node
Definition: scope.h:41
const auto & items() const
Definition: scope.h:61
std::optional< Referee > lookup(const ID &id) const
Definition: scope.h:50
std::string qualified
Definition: scope.h:42
void clear()
Definition: scope.h:58
Definition: node-ref.h:45
void render(std::ostream &out, const std::string &prefix="") const
Definition: scope.cc:107
std::vector< Referee > lookupAll(const ID &id) const
Definition: scope.h:47
bool external
Definition: scope.h:43