1/********************************************************************** 2 3 constant.h - 4 5 $Author$ 6 created at: Sun Nov 15 00:09:33 2009 7 8 Copyright (C) 2009 Yusuke Endoh 9 10**********************************************************************/ 11#ifndef CONSTANT_H 12#define CONSTANT_H 13 14typedef enum { 15 CONST_PUBLIC = 0x00, 16 CONST_PRIVATE = 0x01 17} rb_const_flag_t; 18 19typedef struct rb_const_entry_struct { 20 rb_const_flag_t flag; 21 VALUE value; /* should be mark */ 22 VALUE file; 23 int line; 24} rb_const_entry_t; 25 26VALUE rb_mod_private_constant(int argc, VALUE *argv, VALUE obj); 27VALUE rb_mod_public_constant(int argc, VALUE *argv, VALUE obj); 28void rb_free_const_table(st_table *tbl); 29VALUE rb_public_const_get(VALUE klass, ID id); 30VALUE rb_public_const_get_at(VALUE klass, ID id); 31VALUE rb_public_const_get_from(VALUE klass, ID id); 32int rb_public_const_defined(VALUE klass, ID id); 33int rb_public_const_defined_at(VALUE klass, ID id); 34int rb_public_const_defined_from(VALUE klass, ID id); 35 36#endif /* CONSTANT_H */ 37