Line |
Branch |
Exec |
Source |
1 |
|
|
#ifndef LYTHON_METADATA_H |
2 |
|
|
#define LYTHON_METADATA_H |
3 |
|
|
|
4 |
|
|
#include "dtypes.h" |
5 |
|
|
// #include "ast/nodes.h" |
6 |
|
|
|
7 |
|
|
namespace lython { |
8 |
|
|
|
9 |
|
|
#define TYPES_METADATA(X) \ |
10 |
|
|
X(String, String) \ |
11 |
|
|
X(char, Char) \ |
12 |
|
|
X(int8, Int8) \ |
13 |
|
|
X(int16, Int16) \ |
14 |
|
|
X(int32, Int32) \ |
15 |
|
|
X(int64, Int64) \ |
16 |
|
|
X(uint8, UInt8) \ |
17 |
|
|
X(uint16, UInt16) \ |
18 |
|
|
X(uint32, UInt32) \ |
19 |
|
|
X(uint64, UInt64) \ |
20 |
|
|
X(float32, Float32) \ |
21 |
|
|
X(float64, Float64) |
22 |
|
|
|
23 |
|
|
namespace meta { |
24 |
|
|
#define DEFINE_METADATA(type, tname) \ |
25 |
|
|
template <> \ |
26 |
|
|
inline const char* type_name<type>() { \ |
27 |
|
|
static const char* name = meta::register_type<type>(#tname); \ |
28 |
|
|
return name; \ |
29 |
|
|
} |
30 |
|
|
|
31 |
|
|
TYPES_METADATA(DEFINE_METADATA) |
32 |
|
|
} // namespace meta |
33 |
|
|
|
34 |
|
|
void metadata_init_names(); |
35 |
|
|
|
36 |
|
|
void track_static(); |
37 |
|
|
|
38 |
|
|
void register_globals(); |
39 |
|
|
|
40 |
|
|
} // namespace lython |
41 |
|
|
|
42 |
|
|
#endif |
43 |
|
|
|