add new predicates mrb_string_p(),mrb_array_p(),mrb_hash_p()

This commit is contained in:
Yukihiro Matz Matsumoto
2012-11-04 05:02:39 +09:00
parent 051777dc5d
commit d2d2e9f5f9
8 changed files with 32 additions and 29 deletions
+4 -1
View File
@@ -153,13 +153,16 @@ mrb_float_value(mrb_float f)
#define mrb_float_p(o) (mrb_type(o) == MRB_TT_FLOAT)
#define mrb_undef_p(o) (mrb_type(o) == MRB_TT_UNDEF)
#define mrb_nil_p(o) (mrb_type(o) == MRB_TT_FALSE && !(o).value.i)
#define mrb_symbol_p(o) (mrb_type(o) == MRB_TT_SYMBOL)
#define mrb_array_p(o) (mrb_type(o) == MRB_TT_ARRAY)
#define mrb_string_p(o) (mrb_type(o) == MRB_TT_STRING)
#define mrb_hash_p(o) (mrb_type(o) == MRB_TT_HASH)
#define mrb_test(o) (mrb_type(o) != MRB_TT_FALSE)
#include "mruby/object.h"
#define IMMEDIATE_P(x) (mrb_type(x) <= MRB_TT_MAIN)
#define SPECIAL_CONST_P(x) IMMEDIATE_P(x)
#define mrb_symbol_p(o) (mrb_type(o) == MRB_TT_SYMBOL)
#define RTEST(o) mrb_test(o)
#define FL_ABLE(x) (!SPECIAL_CONST_P(x))