forked from jckarter/clay
-
Notifications
You must be signed in to change notification settings - Fork 0
/
env.hpp
37 lines (25 loc) · 1.04 KB
/
env.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef __ENV_HPP
#define __ENV_HPP
#include "clay.hpp"
namespace clay {
void addGlobal(ModulePtr module,
IdentifierPtr name,
Visibility visibility,
ObjectPtr value);
ObjectPtr lookupPrivate(ModulePtr module, IdentifierPtr name);
ObjectPtr lookupPublic(ModulePtr module, IdentifierPtr name);
ObjectPtr safeLookupPublic(ModulePtr module, IdentifierPtr name);
void addLocal(EnvPtr env, IdentifierPtr name, ObjectPtr value);
ObjectPtr lookupEnv(EnvPtr env, IdentifierPtr name);
ObjectPtr safeLookupEnv(EnvPtr env, IdentifierPtr name);
ModulePtr safeLookupModule(EnvPtr env);
llvm::DINameSpace lookupModuleDebugInfo(EnvPtr env);
ObjectPtr lookupEnvEx(EnvPtr env, IdentifierPtr name,
EnvPtr nonLocalEnv, bool &isNonLocal,
bool &isGlobal);
ExprPtr foreignExpr(EnvPtr env, ExprPtr expr);
ExprPtr lookupCallByNameExprHead(EnvPtr env);
Location safeLookupCallByNameLocation(EnvPtr env);
bool lookupExceptionAvailable(const Env* env);
} // namespace clay
#endif // __ENV_HPP