diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-06-10 14:40:32 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-06-10 14:40:32 +0900 |
| commit | 4e877bc92f4faac950d2b6269cd4f8a0d153a432 (patch) | |
| tree | 09fafe804bf2fb9dcf63ece0b71815a03ecbedf3 | |
| parent | 20ef86bea0f107ba74e0be21ae9bf0000ab3df2e (diff) | |
| download | mruby-4e877bc92f4faac950d2b6269cd4f8a0d153a432.tar.gz mruby-4e877bc92f4faac950d2b6269cd4f8a0d153a432.zip | |
restructure header files; move non config lines away from mrbconf.h
| -rw-r--r-- | include/mrbconf.h | 68 | ||||
| -rw-r--r-- | include/mruby.h | 4 | ||||
| -rw-r--r-- | include/mruby/value.h | 69 |
3 files changed, 72 insertions, 69 deletions
diff --git a/include/mrbconf.h b/include/mrbconf.h index 0d65ae13a..57148d428 100644 --- a/include/mrbconf.h +++ b/include/mrbconf.h @@ -7,9 +7,6 @@ #ifndef MRUBYCONF_H #define MRUBYCONF_H -#include <stdint.h> -#include <stddef.h> - /* configuration options: */ /* add -DMRB_USE_FLOAT to use float instead of double for floating point numbers */ //#define MRB_USE_FLOAT @@ -67,49 +64,6 @@ /* end of configuration */ -#ifdef MRB_USE_FLOAT - typedef float mrb_float; -# define mrb_float_to_str(buf, i) sprintf(buf, "%.7e", i) -# define str_to_mrb_float(buf) strtof(buf, NULL) -#else - typedef double mrb_float; -# define mrb_float_to_str(buf, i) sprintf(buf, "%.16e", i) -# define str_to_mrb_float(buf) strtod(buf, NULL) -#endif - -#if defined(MRB_INT16) && defined(MRB_INT64) -# error "You can't define MRB_INT16 and MRB_INT64 at the same time." -#endif - -#if defined(MRB_INT64) -# ifdef MRB_NAN_BOXING -# error Cannot use NaN boxing when mrb_int is 64bit -# else - typedef int64_t mrb_int; -# define MRB_INT_MIN INT64_MIN -# define MRB_INT_MAX INT64_MAX -# define PRIdMRB_INT PRId64 -# define PRIiMRB_INT PRIi64 -# define PRIoMRB_INT PRIo64 -# define PRIxMRB_INT PRIx64 -# define PRIXMRB_INT PRIX64 -# endif -#elif defined(MRB_INT16) - typedef int16_t mrb_int; -# define MRB_INT_MIN INT16_MIN -# define MRB_INT_MAX INT16_MAX -#else - typedef int32_t mrb_int; -# define MRB_INT_MIN INT32_MIN -# define MRB_INT_MAX INT32_MAX -# define PRIdMRB_INT PRId32 -# define PRIiMRB_INT PRIi32 -# define PRIoMRB_INT PRIo32 -# define PRIxMRB_INT PRIx32 -# define PRIXMRB_INT PRIX32 -#endif -typedef short mrb_sym; - /* define ENABLE_XXXX from DISABLE_XXX */ #ifndef DISABLE_STDIO #define ENABLE_STDIO @@ -118,28 +72,6 @@ typedef short mrb_sym; #define DISABLE_DEBUG #endif -#ifdef _MSC_VER -# define _ALLOW_KEYWORD_MACROS -# include <float.h> -# define inline __inline -# define snprintf _snprintf -# define isnan _isnan -# define isinf(n) (!_finite(n) && !_isnan(n)) -# define strtoll _strtoi64 -# define PRId32 "I32d" -# define PRIi32 "I32i" -# define PRIo32 "I32o" -# define PRIx32 "I32x" -# define PRIX32 "I32X" -# define PRId64 "I64d" -# define PRIi64 "I64i" -# define PRIo64 "I64o" -# define PRIx64 "I64x" -# define PRIX64 "I64X" -#else -# include <inttypes.h> -#endif - #ifdef ENABLE_STDIO # include <stdio.h> #endif diff --git a/include/mruby.h b/include/mruby.h index ce2fa79ae..33a15de0e 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -32,8 +32,10 @@ extern "C" { #endif -#include "mrbconf.h" +#include <stdint.h> +#include <stddef.h> +#include "mrbconf.h" #include "mruby/value.h" typedef uint32_t mrb_code; diff --git a/include/mruby/value.h b/include/mruby/value.h index 86f51eae2..06241ec76 100644 --- a/include/mruby/value.h +++ b/include/mruby/value.h @@ -7,6 +7,71 @@ #ifndef MRUBY_VALUE_H #define MRUBY_VALUE_H +#ifdef MRB_USE_FLOAT + typedef float mrb_float; +# define mrb_float_to_str(buf, i) sprintf(buf, "%.7e", i) +# define str_to_mrb_float(buf) strtof(buf, NULL) +#else + typedef double mrb_float; +# define mrb_float_to_str(buf, i) sprintf(buf, "%.16e", i) +# define str_to_mrb_float(buf) strtod(buf, NULL) +#endif + +#if defined(MRB_INT16) && defined(MRB_INT64) +# error "You can't define MRB_INT16 and MRB_INT64 at the same time." +#endif + +#if defined(MRB_INT64) +# ifdef MRB_NAN_BOXING +# error Cannot use NaN boxing when mrb_int is 64bit +# else + typedef int64_t mrb_int; +# define MRB_INT_MIN INT64_MIN +# define MRB_INT_MAX INT64_MAX +# define PRIdMRB_INT PRId64 +# define PRIiMRB_INT PRIi64 +# define PRIoMRB_INT PRIo64 +# define PRIxMRB_INT PRIx64 +# define PRIXMRB_INT PRIX64 +# endif +#elif defined(MRB_INT16) + typedef int16_t mrb_int; +# define MRB_INT_MIN INT16_MIN +# define MRB_INT_MAX INT16_MAX +#else + typedef int32_t mrb_int; +# define MRB_INT_MIN INT32_MIN +# define MRB_INT_MAX INT32_MAX +# define PRIdMRB_INT PRId32 +# define PRIiMRB_INT PRIi32 +# define PRIoMRB_INT PRIo32 +# define PRIxMRB_INT PRIx32 +# define PRIXMRB_INT PRIX32 +#endif +typedef short mrb_sym; + +#ifdef _MSC_VER +# define _ALLOW_KEYWORD_MACROS +# include <float.h> +# define inline __inline +# define snprintf _snprintf +# define isnan _isnan +# define isinf(n) (!_finite(n) && !_isnan(n)) +# define strtoll _strtoi64 +# define PRId32 "I32d" +# define PRIi32 "I32i" +# define PRIo32 "I32o" +# define PRIx32 "I32x" +# define PRIX32 "I32X" +# define PRId64 "I64d" +# define PRIi64 "I64i" +# define PRIo64 "I64o" +# define PRIx64 "I64x" +# define PRIX64 "I64X" +#else +# include <inttypes.h> +#endif + typedef uint8_t mrb_bool; struct mrb_state; @@ -16,6 +81,10 @@ struct mrb_state; # error ---->> MRB_NAN_BOXING and MRB_USE_FLOAT conflict <<---- #endif +#ifdef MRB_INT64 +# error ---->> MRB_NAN_BOXING and MRB_INT64 conflict <<---- +#endif + enum mrb_vtype { MRB_TT_FALSE = 1, /* 1 */ MRB_TT_FREE, /* 2 */ |
