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