| 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 |