{ variable.c }
function rb_mod_name(module: Tvalue): Tvalue;
function rb_class_path(klass: Tvalue): Tvalue;
procedure rb_set_class_path(klass, under: Tvalue; const name: PChar);
function rb_path2class(const path: PChar): Tvalue;

procedure rb_name_class(klass: Tvalue; id: Tid);
procedure rb_autoload(const klass, filename: PChar);
function rb_f_autoload(obj, klass, f: Tvalue): Tvalue;
procedure rb_gc_mark_global_tbl;
function rb_f_trace_var(argc: Integer; argv: Pvalue): Tvalue;
function rb_f_untrace_var(argc: Integer; argv: Pvalue): Tvalue;
function rb_f_global_variables: Tvalue;
procedure rb_alias_variable(name1, name2: Tid);
function rb_generic_ivar_table(obj: Tvalue): PSTTable;
procedure rb_clone_generic_ivar(clone, obj: Tvalue);
procedure rb_mark_generic_ivar(obj: Tvalue);
procedure rb_mark_generic_ivar_tbl;
procedure rb_free_generic_ivar(obj: Tvalue);

function rb_ivar_get(obj: Tvalue; id: Tid): Tvalue;
function rb_ivar_set(obj: Tvalue; id: Tid; val: Tvalue): Tvalue;
function rb_ivar_defined(obj: Tvalue; id: Tid): Tvalue;

function rb_obj_instance_variables(obj: Tvalue): Tvalue;
function rb_obj_remove_instance_variable(obj, name: Tvalue): Tvalue;
function rb_mod_const_at(module, ary: Tvalue): Tvalue;
function rb_mod_constants(module: Tvalue): Tvalue;
function rb_mod_const_of(module, ary: Tvalue): Tvalue;
function rb_mod_remove_const(module, name: Tvalue): Tvalue;
function rb_const_defined_at(klass: Tvalue; id: Tid): Integer;
function rb_autoload_defined(id: Tid): Integer;
function rb_const_defined(klass: Tvalue; id: Tid): Integer;

