コード例 #1
0
ファイル: except.cpp プロジェクト: leeeqian/csuneido
Value Except::call(Value self, Value member, 
	short nargs, short nargnames, ushort* argnames, int each)
	{
	static Value As("As");
	static Value Callstack("Callstack");
	if (member == As)
		{
		argseach(nargs, nargnames, argnames, each);
		if (nargs != 1)
			except("usage: exception.As(string)");
		return new Except(*this, ARG(0).gcstr());
		}
	if (member == Callstack)
		{
		argseach(nargs, nargnames, argnames, each);
		NOARGS("exception.Callstack()");
		return calls();
		}
	else
		return SuString::call(self, member, nargs, nargnames, argnames, each);
	}
コード例 #2
0
ファイル: sufunction.cpp プロジェクト: apmckinlay/csuneido
Value SuFunction::call(Value self, Value member, short nargs, short nargnames,
	short* argnames, int each) {
	static Value Disasm("Disasm");
	static Value Source("Source");

	if (member == CALL) {
		args(nargs, nargnames, argnames, each);

		if (flags)
			dotParams(self);

		Framer frame(this, self);
		return tls().proc->fp->run();
	} else if (member == Disasm) {
		NOARGS("function.Disasm()");
		OstreamStr oss;
		disasm(oss);
		return new SuString(oss.str());
	} else if (member == Source) {
		return new SuString(src);
	} else
		return Func::call(self, member, nargs, nargnames, argnames, each);
}