Beispiel #1
0
static void Method_p(CTX, ksfp_t *sfp, int pos, kwb_t *wb, int level)
{
	kMethod *mtd = sfp[pos].mtd;
	kParam *pa = kMethod_param(mtd);
	DBG_ASSERT(IS_Method(mtd));
	if(level != 0) {
		MethodAttribute_p(_ctx, mtd, wb);
	}
	kwb_printf(wb, "%s %s.%s%s", TY_t(pa->rtype), TY_t(mtd->cid), T_mn(mtd->mn));
	if(level != 0) {
		size_t i;
		kwb_putc(wb, '(');
		for(i = 0; i < pa->psize; i++) {
			if(i > 0) {
				kwb_putc(wb, ',', ' ');
			}
			if(FN_isCOERCION(pa->p[i].fn)) {
				kwb_printf(wb, "@Coercion ");
			}
			kwb_printf(wb, "%s %s", TY_t(pa->p[i].ty), SYM_t(pa->p[i].fn));
		}
//		if(Param_isVARGs(DP(mtd)->mp)) {
//			knh_write_delimdots(_ctx, w);
//		}
		kwb_putc(wb, ')');
	}
}
Beispiel #2
0
static void MethodAttribute_p(CTX, kMethod *mtd, kwb_t *wb)
{
	uintptr_t i;
	for(i = 0; i < 30; i++) {
		if(attrs[i].aname == NULL) break;
		if((attrs[i].flag & mtd->flag) == attrs[i].flag) {
			kwb_printf(wb, "@%s ", attrs[i].aname);
		}
	}
	if(kMethod_isCast(mtd)) {
		kwb_printf(wb, "@Cast ");
	}
//	if(kMethod_isTransCast(mtd)) {
//		kwb_printf(wb, "@T ");
//	}
}
Beispiel #3
0
static void Log_p(CTX, ksfp_t *sfp, int pos, kwb_t *wb)
{
	kRawPtr *self = (kRawPtr *) sfp[0].asObject;
	struct Log *log = (struct Log *) self->rawptr;
	int i;
	char *data = log_get_data(log);
	uint16_t klen, vlen;
	kwb_printf(wb, "{");
	for (i = 0; i < log->logsize; ++i) {
		char kbuf[64] = {};
		char vbuf[64] = {};
		char *next = log_iterator(log, data, i);
		klen = log_get_length(log, i*2+0);
		vlen = log_get_length(log, i*2+1);
		memcpy(kbuf, data,klen);
		memcpy(vbuf, data+klen, vlen);
		kwb_printf(wb, "'%s': '%s' ", kbuf, vbuf);
		data = next;
	}
	kwb_printf(wb, "}");
}