示例#1
0
文件: kernel.c 项目: mtmiron/toi
void
Init_kernel()
{
	if (!cObject)
		cObject = define_class(intern("Object"), Qnil);
	if (!cKernel)
		cKernel = define_class(intern("Kernel"), cObject);

	define_global_function(intern("!"), kernel_not, 1);
	define_global_function(intern("puts"), kernel_puts_thunk, -1);
	define_global_function(intern("write"), kernel_write, 1);
	define_global_function(intern("print"), kernel_write, 1);
	define_global_function(intern("exit"), kernel_exit, -1);
	define_global_function(intern("sleep"), kernel_sleep, 1);

	define_global_function(intern("self"), kernel_s_self, 0);
}
示例#2
0
文件: m_macos.c 项目: x768/fox-lang
void define_module(RefNode *m, const FoxStatic *a_fs, FoxGlobal *a_fg)
{
    fs = a_fs;
    fg = a_fg;
    mod_macos = m;

    define_func(m);
    define_class(m);
}
示例#3
0
文件: m_sqlite.c 项目: x768/fox-lang
void define_module(RefNode *m, const FoxStatic *a_fs, FoxGlobal *a_fg)
{
    fs = a_fs;
    fg = a_fg;
    mod_sqlite = m;

    define_const(m);
    define_class(m);
}
示例#4
0
文件: proc.cpp 项目: Zoxc/mirb
	void Proc::initialize()
	{
		context->proc_class = define_class("Proc", context->object_class);
		
		singleton_method<Arg::Block, &rb_new>(context->proc_class, "new");

		method<Self<Proc>, Arg::Block, Arg::Count, Arg::Values, &call>(context->proc_class, "call");
		method<Self<Proc>, Arg::Block, Arg::Count, Arg::Values, &call>(context->proc_class, "[]");
	}
示例#5
0
void define_module(RefNode *m, const FoxStatic *a_fs, FoxGlobal *a_fg)
{
    fs = a_fs;
    fg = a_fg;
    mod_textedit = m;

    mod_gui = fs->get_module_by_name("foxtk", -1, TRUE, FALSE);
    ftk = mod_gui->u.m.ext;
    define_class(m);
}
示例#6
0
文件: gc.c 项目: mtmiron/toi
void
Init_gc()
{
    cGC = define_class(intern("GC"), cObject);

    define_singleton_method(cGC, intern("run"), gc_s_run, 0);

    gc_never_free(get_variable(intern("ARGV")));
    gc_never_free(get_variable(intern("stdin")));
    gc_never_free(get_variable(intern("stdout")));
    gc_never_free(get_variable(intern("stderr")));
}
示例#7
0
文件: dir.cpp 项目: Zoxc/mirb
	void Dir::initialize()
	{
		context->dir_class = define_class("Dir", context->object_class);
		
		singleton_method<String, &mkdir>(context->dir_class, "mkdir");
		singleton_method<String, &rb_delete>(context->dir_class, "delete");
		singleton_method<String, Arg::Block, &chdir>(context->dir_class, "chdir");
		singleton_method<String, &entries>(context->dir_class, "entries");
		singleton_method<String, &rb_glob>(context->dir_class, "glob");
		singleton_method<String, &rb_glob>(context->dir_class, "[]");

		singleton_method<&pwd>(context->dir_class, "pwd");
	}
示例#8
0
文件: io.cpp 项目: Zoxc/mirb
void IO::initialize()
{
    context->io_class = define_class("IO", context->object_class);

    singleton_method<String, &rb_readlines>(context->io_class, "readlines");

    method<Self<IO>, &rb_close>(context->io_class, "close");
    method<Self<IO>, Optional<Arg::Fixnum>, &rb_read>(context->io_class, "read");
    method<Self<IO>, Arg::Block, &rb_each_line>(context->io_class, "each_line");
    method<Self<IO>, Arg::Count, Arg::Values, &rb_print>(context->io_class, "print");
    method<Self<IO>, Arg::Count, Arg::Values, &rb_puts>(context->io_class, "puts");
    method<Self<IO>, &rb_gets>(context->io_class, "gets");
}
示例#9
0
文件: exception.c 项目: mtmiron/toi
void
Init_exception()
{
	cException = define_class(intern("Exception"), cObject);

	Qretry = NEW_OBJ(struct goon);
	OBJ_SETUP(Qretry, T_RETRY);
	BASIC(Qretry).klass = cException;
	gc_never_free(Qretry);

	define_global_function(intern("fail"), throw_exc, -1);
	define_global_function(intern("throw"), throw_exc, -1);
	define_global_function(intern("retry"), exception_retry, 0);
}
示例#10
0
文件: float.c 项目: mtmiron/toi
void
Init_float()
{
	cFloat = define_class(intern("Float"), cNumeric);

	define_singleton_method(cFloat, intern("new"), (void*)float_s_new, 1);

	define_method(cFloat, intern("*"), float_multiply, 1);
	define_method(cFloat, intern("+"), float_addition, 1);
	define_method(cFloat, intern("-"), float_subtract, 1);
	define_method(cFloat, intern("/"), float_divide, 1);
	define_method(cFloat, intern("**"), float_pow, 1);

	define_method(cFloat, intern("to_f"), float_to_f, 0);
	define_method(cFloat, intern("to_i"), float_to_i, 0);
	define_method(cFloat, intern("to_s"), float_to_s, 0);
}
示例#11
0
文件: thread.c 项目: mtmiron/toi
void
Init_thread()
{
	if (!thr_stk)
		thr_stk = vector_new();
	if (!cur_thr)
		cur_thr = thread_new();

	cThread = define_class(intern("Thread"), cObject);
	OBJ_SETUP(cur_thr, T_THREAD);
	BASIC(cur_thr).klass = cThread;
	define_method(cThread, intern("call"), eval_thread, 1);

	define_singleton_method(cThread, intern("main"), main_thread, 0);
	define_singleton_method(cThread, intern("current"), thread_s_current, 0);
	define_singleton_method(cThread, intern("critical"), thread_get_critical, 0);
	define_singleton_method(cThread, intern("setcritical"), thread_set_critical, 1);

}
示例#12
0
文件: hash.cpp 项目: Zoxc/mirb
	void Hash::initialize()
	{
		context->hash_class = define_class("Hash", context->object_class);
		
		internal_allocator<Hash, &Context::hash_class>();
		
		method<Self<Hash>, Optional<Value>, Arg::Block, &rb_initialize>(context->hash_class, "initialize");
		
		method<Self<Hash>, &rb_empty>(context->hash_class, "empty?");
		method<Self<Hash>, Value, Arg::Block, &rb_delete>(context->hash_class, "delete");
		method<Self<Hash>, &keys>(context->hash_class, "keys");
		method<Self<Hash>, &values>(context->hash_class, "values");

		method<Self<Hash>, Arg::Block, &each>(context->hash_class, "each");

		method<Self<Hash>, &to_s>(context->hash_class, "to_s");
		method<Self<Hash>, Value, &get>(context->hash_class, "[]");
		method<Self<Hash>, Value, Value, &set>(context->hash_class, "[]=");
	}
示例#13
0
void define_module(RefNode *m, const FoxStatic *a_fs, FoxGlobal *a_fg)
{
    fs = a_fs;
    fg = a_fg;
    mod_markdown = m;
    mod_xml = fs->get_module_by_name("marshal.xml", -1, TRUE, FALSE);
    xst = mod_xml->u.m.ext;

    fs->add_unresolved_ptr(m, mod_xml, "XMLElem", &cls_xmlelem);
    fs->add_unresolved_ptr(m, mod_xml, "XMLText", &cls_xmltext);
    fs->add_unresolved_ptr(m, mod_xml, "XMLNodeList", &cls_nodelist);

    str_link_callback = fs->intern("link_callback", -1);
    str_image_callback = fs->intern("image_callback", -1);
    str_inline_plugin = fs->intern("inline_plugin", -1);
    str_block_plugin = fs->intern("block_plugin", -1);

    define_class(m);
    define_function(m);
}
示例#14
0
文件: bignum.cpp 项目: Zoxc/mirb
	void Bignum::initialize()
	{
		context->bignum_class = define_class("Bignum", context->integer_class);

		method<Self<Bignum>, Optional<Arg::Fixnum>, &to_s>(context->bignum_class, "to_s");
		
		method<Self<Bignum>, &zero>(context->bignum_class, "zero?");
		method<Self<Bignum>, &neg>(context->bignum_class, "-@");
		
		method<Self<Bignum>, Arg::Fixnum, &lshift>(context->bignum_class, "<<");
		method<Self<Bignum>, Arg::Fixnum, &rshift>(context->bignum_class, ">>");
		method<Self<Bignum>, Value, &bitwise_and>(context->bignum_class, "&");
		method<Self<Bignum>, Value, &bitwise_xor>(context->bignum_class, "^");
		method<Self<Bignum>, Value, &bitwise_or>(context->bignum_class, "|");

		method<Self<Bignum>, Arg::Fixnum, &pow>(context->bignum_class, "**");
		method<Self<Bignum>, Value, &add>(context->bignum_class, "+");
		method<Self<Bignum>, Value, &sub>(context->bignum_class, "-");
		method<Self<Bignum>, Value, &mul>(context->bignum_class, "*");
		method<Self<Bignum>, Value, &div>(context->bignum_class, "/");
		method<Self<Bignum>, Value, &mod>(context->bignum_class, "%");
		method<Self<Bignum>, Value, &compare>(context->bignum_class, "<=>");
		method<Self<Bignum>, Value, &coerce>(context->bignum_class, "coerce");
	}
示例#15
0
文件: hash.c 项目: mtmiron/toi
void
Init_hash()
{
	cHash = define_class(intern("Hash"), cObject);
}
示例#16
0
文件: numeric.c 项目: mtmiron/toi
void
Init_numeric()
{
	cNumeric = define_class(intern("Numeric"), cObject);
}
示例#17
0
文件: method.cpp 项目: Zoxc/mirb
	void Method::initialize()
	{
		context->method_class = define_class("Method", context->object_class);
	}