Groonga 3.0.9 Source Code Document
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Macros | Typedefs | Enumerations
value.h File Reference
#include <inttypes.h>
Include dependency graph for value.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  mrb_value
struct  RBasic
struct  RObject
struct  RFiber

Macros

#define mrb_float_to_str(buf, i)   sprintf(buf, "%.16e", i)
#define str_to_mrb_float(buf)   strtod(buf, NULL)
#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
#define MRB_TT_HAS_BASIC   MRB_TT_OBJECT
#define mrb_type(o)   (o).tt
#define mrb_ptr(o)   (o).value.p
#define mrb_float(o)   (o).value.f
#define MRB_SET_VALUE(o, ttt, attr, v)
#define mrb_cptr(o)   mrb_ptr(o)
#define mrb_fixnum_p(o)   (mrb_type(o) == MRB_TT_FIXNUM)
#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_bool(o)   (mrb_type(o) != MRB_TT_FALSE)
#define mrb_fixnum(o)   (o).value.i
#define mrb_symbol(o)   (o).value.sym
#define mrb_float_p(o)   (mrb_type(o) == MRB_TT_FLOAT)
#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_cptr_p(o)   (mrb_type(o) == MRB_TT_CPTR)
#define mrb_test(o)   mrb_bool(o)
#define MRB_OBJECT_HEADER
#define MRB_GC_GRAY   0
#define MRB_GC_WHITE_A   1
#define MRB_GC_WHITE_B   (1 << 1)
#define MRB_GC_BLACK   (1 << 2)
#define MRB_GC_WHITES   (MRB_GC_WHITE_A | MRB_GC_WHITE_B)
#define MRB_GC_COLOR_MASK   7
#define paint_gray(o)   ((o)->color = MRB_GC_GRAY)
#define paint_black(o)   ((o)->color = MRB_GC_BLACK)
#define paint_white(o)   ((o)->color = MRB_GC_WHITES)
#define paint_partial_white(s, o)   ((o)->color = (s)->current_white_part)
#define is_gray(o)   ((o)->color == MRB_GC_GRAY)
#define is_white(o)   ((o)->color & MRB_GC_WHITES)
#define is_black(o)   ((o)->color & MRB_GC_BLACK)
#define is_dead(s, o)   (((o)->color & other_white_part(s) & MRB_GC_WHITES) || (o)->tt == MRB_TT_FREE)
#define flip_white_part(s)   ((s)->current_white_part = other_white_part(s))
#define other_white_part(s)   ((s)->current_white_part ^ MRB_GC_WHITES)
#define mrb_basic_ptr(v)   ((struct RBasic*)(mrb_ptr(v)))
#define mrb_basic(v)   mrb_basic_ptr(v)
#define mrb_obj_ptr(v)   ((struct RObject*)(mrb_ptr(v)))
#define mrb_object(o)   mrb_obj_ptr(o)
#define mrb_immediate_p(x)   (mrb_type(x) <= MRB_TT_CPTR)
#define mrb_special_const_p(x)   mrb_immediate_p(x)
#define MRB_TT_VOIDP   MRB_TT_CPTR
#define mrb_voidp_value(m, p)   mrb_cptr_value((m),(p))
#define mrb_voidp(o)   mrb_cptr(o)
#define mrb_voidp_p(o)   mrb_cptr_p(o)

Typedefs

typedef double mrb_float
typedef int32_t mrb_int
typedef short mrb_sym
typedef uint8_t mrb_bool
typedef struct mrb_value mrb_value

Enumerations

enum  mrb_vtype {
  MRB_TT_FALSE = 0, MRB_TT_FREE, MRB_TT_TRUE, MRB_TT_FIXNUM,
  MRB_TT_SYMBOL, MRB_TT_UNDEF, MRB_TT_FLOAT, MRB_TT_CPTR,
  MRB_TT_OBJECT, MRB_TT_CLASS, MRB_TT_MODULE, MRB_TT_ICLASS,
  MRB_TT_SCLASS, MRB_TT_PROC, MRB_TT_ARRAY, MRB_TT_HASH,
  MRB_TT_STRING, MRB_TT_RANGE, MRB_TT_EXCEPTION, MRB_TT_FILE,
  MRB_TT_ENV, MRB_TT_DATA, MRB_TT_FIBER, MRB_TT_MAXDEFINE
}

Macro Definition Documentation

#define flip_white_part (   s)    ((s)->current_white_part = other_white_part(s))

Definition at line 356 of file value.h.

#define is_black (   o)    ((o)->color & MRB_GC_BLACK)

Definition at line 354 of file value.h.

#define is_dead (   s,
 
)    (((o)->color & other_white_part(s) & MRB_GC_WHITES) || (o)->tt == MRB_TT_FREE)

Definition at line 355 of file value.h.

#define is_gray (   o)    ((o)->color == MRB_GC_GRAY)

Definition at line 352 of file value.h.

#define is_white (   o)    ((o)->color & MRB_GC_WHITES)

Definition at line 353 of file value.h.

#define mrb_array_p (   o)    (mrb_type(o) == MRB_TT_ARRAY)

Definition at line 327 of file value.h.

#define mrb_basic (   v)    mrb_basic_ptr(v)

Definition at line 364 of file value.h.

#define mrb_basic_ptr (   v)    ((struct RBasic*)(mrb_ptr(v)))

Definition at line 362 of file value.h.

#define mrb_bool (   o)    (mrb_type(o) != MRB_TT_FALSE)

Definition at line 319 of file value.h.

#define mrb_cptr (   o)    mrb_ptr(o)

Definition at line 315 of file value.h.

#define mrb_cptr_p (   o)    (mrb_type(o) == MRB_TT_CPTR)

Definition at line 330 of file value.h.

#define mrb_fixnum (   o)    (o).value.i

Definition at line 323 of file value.h.

#define mrb_fixnum_p (   o)    (mrb_type(o) == MRB_TT_FIXNUM)

Definition at line 316 of file value.h.

#define mrb_float (   o)    (o).value.f

Definition at line 285 of file value.h.

#define mrb_float_p (   o)    (mrb_type(o) == MRB_TT_FLOAT)

Definition at line 325 of file value.h.

#define mrb_float_to_str (   buf,
 
)    sprintf(buf, "%.16e", i)

Definition at line 16 of file value.h.

#define MRB_GC_BLACK   (1 << 2)

Definition at line 344 of file value.h.

#define MRB_GC_COLOR_MASK   7

Definition at line 346 of file value.h.

#define MRB_GC_GRAY   0

Definition at line 341 of file value.h.

#define MRB_GC_WHITE_A   1

Definition at line 342 of file value.h.

#define MRB_GC_WHITE_B   (1 << 1)

Definition at line 343 of file value.h.

#define MRB_GC_WHITES   (MRB_GC_WHITE_A | MRB_GC_WHITE_B)

Definition at line 345 of file value.h.

#define mrb_hash_p (   o)    (mrb_type(o) == MRB_TT_HASH)

Definition at line 329 of file value.h.

#define mrb_immediate_p (   x)    (mrb_type(x) <= MRB_TT_CPTR)

Definition at line 373 of file value.h.

#define MRB_INT_MAX   INT32_MAX

Definition at line 44 of file value.h.

#define MRB_INT_MIN   INT32_MIN

Definition at line 43 of file value.h.

#define mrb_nil_p (   o)    (mrb_type(o) == MRB_TT_FALSE && !(o).value.i)

Definition at line 318 of file value.h.

#define mrb_obj_ptr (   v)    ((struct RObject*)(mrb_ptr(v)))

Definition at line 370 of file value.h.

#define mrb_object (   o)    mrb_obj_ptr(o)

Definition at line 372 of file value.h.

#define MRB_OBJECT_HEADER
Value:
enum mrb_vtype tt:8;\
uint32_t color:3;\
uint32_t flags:21;\
struct RClass *c;\
struct RBasic *gcnext

Definition at line 333 of file value.h.

#define mrb_ptr (   o)    (o).value.p

Definition at line 284 of file value.h.

#define MRB_SET_VALUE (   o,
  ttt,
  attr,
 
)
Value:
do {\
(o).tt = ttt;\
(o).attr = v;\
} while (0)

Definition at line 287 of file value.h.

#define mrb_special_const_p (   x)    mrb_immediate_p(x)

Definition at line 374 of file value.h.

#define mrb_string_p (   o)    (mrb_type(o) == MRB_TT_STRING)

Definition at line 328 of file value.h.

#define mrb_symbol (   o)    (o).value.sym

Definition at line 324 of file value.h.

#define mrb_symbol_p (   o)    (mrb_type(o) == MRB_TT_SYMBOL)

Definition at line 326 of file value.h.

#define mrb_test (   o)    mrb_bool(o)

Definition at line 331 of file value.h.

#define MRB_TT_HAS_BASIC   MRB_TT_OBJECT

Definition at line 271 of file value.h.

#define MRB_TT_VOIDP   MRB_TT_CPTR

Definition at line 457 of file value.h.

#define mrb_type (   o)    (o).tt

Definition at line 283 of file value.h.

#define mrb_undef_p (   o)    (mrb_type(o) == MRB_TT_UNDEF)

Definition at line 317 of file value.h.

#define mrb_voidp (   o)    mrb_cptr(o)

Definition at line 459 of file value.h.

#define mrb_voidp_p (   o)    mrb_cptr_p(o)

Definition at line 460 of file value.h.

#define mrb_voidp_value (   m,
 
)    mrb_cptr_value((m),(p))

Definition at line 458 of file value.h.

#define other_white_part (   s)    ((s)->current_white_part ^ MRB_GC_WHITES)

Definition at line 357 of file value.h.

#define paint_black (   o)    ((o)->color = MRB_GC_BLACK)

Definition at line 349 of file value.h.

#define paint_gray (   o)    ((o)->color = MRB_GC_GRAY)

Definition at line 348 of file value.h.

#define paint_partial_white (   s,
 
)    ((o)->color = (s)->current_white_part)

Definition at line 351 of file value.h.

#define paint_white (   o)    ((o)->color = MRB_GC_WHITES)

Definition at line 350 of file value.h.

#define PRIdMRB_INT   PRId32

Definition at line 45 of file value.h.

#define PRIiMRB_INT   PRIi32

Definition at line 46 of file value.h.

#define PRIoMRB_INT   PRIo32

Definition at line 47 of file value.h.

#define PRIxMRB_INT   PRIx32

Definition at line 48 of file value.h.

#define PRIXMRB_INT   PRIX32

Definition at line 49 of file value.h.

#define str_to_mrb_float (   buf)    strtod(buf, NULL)

Definition at line 17 of file value.h.

Typedef Documentation

typedef uint8_t mrb_bool

Definition at line 81 of file value.h.

typedef double mrb_float

Definition at line 15 of file value.h.

typedef int32_t mrb_int

Definition at line 42 of file value.h.

typedef short mrb_sym

Definition at line 51 of file value.h.

typedef struct mrb_value mrb_value

Enumeration Type Documentation

enum mrb_vtype
Enumerator:
MRB_TT_FALSE 
MRB_TT_FREE 
MRB_TT_TRUE 
MRB_TT_FIXNUM 
MRB_TT_SYMBOL 
MRB_TT_UNDEF 
MRB_TT_FLOAT 
MRB_TT_CPTR 
MRB_TT_OBJECT 
MRB_TT_CLASS 
MRB_TT_MODULE 
MRB_TT_ICLASS 
MRB_TT_SCLASS 
MRB_TT_PROC 
MRB_TT_ARRAY 
MRB_TT_HASH 
MRB_TT_STRING 
MRB_TT_RANGE 
MRB_TT_EXCEPTION 
MRB_TT_FILE 
MRB_TT_ENV 
MRB_TT_DATA 
MRB_TT_FIBER 
MRB_TT_MAXDEFINE 

Definition at line 189 of file value.h.