diff --git a/include/picrin.h b/include/picrin.h index 0d250f7b..a2fafe9e 100644 --- a/include/picrin.h +++ b/include/picrin.h @@ -33,6 +33,7 @@ extern "C" { #include #include #include +#include #include #include "xvect/xvect.h" diff --git a/include/picrin/value.h b/include/picrin/value.h index 69bf2139..6fa2b75d 100644 --- a/include/picrin/value.h +++ b/include/picrin/value.h @@ -156,6 +156,8 @@ typedef struct pic_blob pic_blob; static inline enum pic_tt pic_type(pic_value); static inline const char *pic_type_repr(enum pic_tt); +static inline bool pic_valid_int(double); + static inline pic_value pic_nil_value(); static inline pic_value pic_true_value(); static inline pic_value pic_false_value(); @@ -256,6 +258,12 @@ pic_type_repr(enum pic_tt tt) return 0; /* logic flaw */ } +static inline bool +pic_valid_int(double v) +{ + return INT_MIN <= v && v <= INT_MAX; +} + static inline pic_value pic_nil_value() {