1#ifndef INTERNAL_SYMBOL_H                                 
    2#define INTERNAL_SYMBOL_H 
   13#include "internal/compilers.h"  
   15#ifdef rb_sym_intern_ascii_cstr 
   16# undef rb_sym_intern_ascii_cstr 
   20void rb_sym_global_symbols_mark_and_move(
void);
 
   23VALUE rb_sym_intern_ascii(
const char *ptr, 
long len);
 
   24VALUE rb_sym_intern_ascii_cstr(
const char *ptr);
 
   25int rb_is_const_name(
VALUE name);
 
   26int rb_is_class_name(
VALUE name);
 
   27int rb_is_instance_name(
VALUE name);
 
   28int rb_is_local_name(
VALUE name);
 
   29PUREFUNC(
int rb_is_const_sym(
VALUE sym));
 
   30PUREFUNC(
int rb_is_attrset_sym(
VALUE sym));
 
   31ID rb_make_internal_id(
void);
 
   32ID rb_make_temporary_id(
size_t n);
 
   33bool rb_obj_is_symbol_table(
VALUE obj);
 
   34void rb_sym_global_symbol_table_foreach_weak_reference(
int (*callback)(
VALUE *key, 
void *data), 
void *data);
 
   35void rb_gc_free_dsymbol(
VALUE);
 
   36int rb_static_id_valid_p(
ID id);
 
   37void rb_free_global_symbol_table(
void);
 
   39#if __has_builtin(__builtin_constant_p) 
   40#define rb_sym_intern_ascii_cstr(ptr) \ 
   41    (__builtin_constant_p(ptr) ? \ 
   42        rb_sym_intern_ascii((ptr), (long)strlen(ptr)) : \ 
   43        rb_sym_intern_ascii_cstr(ptr)) 
int len
Length of the buffer.
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.
uintptr_t VALUE
Type that represents a Ruby object.