packages feed

crux-llvm-0.8: c-src/includes/crucible-model.h

#ifndef CRUCIBLE_MODEL_H
#define CRUCIBLE_MODEL_H

#ifdef __cplusplus__
extern "C" {
#endif //__cplusplus__

#include <stdint.h>
#include <stddef.h>

#define crux_names(ty)     crucible_names_##ty
#define crux_values(ty)    crucible_values_##ty
#define crux_value_num(ty) crucible_values_number_##ty

#define mk_model_ty(ty) \
  extern const size_t  crux_value_num(ty); \
  extern const char*   crux_names(ty)[]; \
  extern const ty      crux_values(ty) [];

mk_model_ty(int8_t)
mk_model_ty(int16_t)
mk_model_ty(int32_t)
mk_model_ty(int64_t)
mk_model_ty(float)
mk_model_ty(double)

#ifdef __cplusplus__
}
#endif //__cplusplus__

#endif