예제 #1
0
파일: i.c 프로젝트: shinpei/konoha-wand
static void knh_write_Method(CTX ctx, knh_OutputStream_t *w, const knh_ClassTBL_t *ct, knh_Method_t *o)
{
	knh_write_TAB(ctx, w);
	if(Method_isAbstract(o)) {
		knh_write_ascii(ctx, w, "@Abstract ");
	}
	knh_write_type(ctx, w, knh_type_tocid(ctx, knh_ParamArray_rtype(DP(o)->mp), ct->cid));
	knh_putc(ctx, w, ' ');
	if(Method_isStatic(o)) {
		knh_write_ascii(ctx, w, S_tochar(ct->sname));
		knh_putc(ctx, w, '.');
	}
	knh_write_mn(ctx, w, SP(o)->mn);
	knh_putc(ctx, w, '(');
	size_t i;
	for(i = 0; i < knh_Method_psize(o); i++) {
		knh_param_t *p = knh_ParamArray_get(DP(o)->mp, i);
		if(i > 0) {
			knh_write_delim(ctx, w);
		}
		knh_write_type(ctx, w, knh_type_tocid(ctx, p->type, ct->cid));
		knh_putc(ctx, w, ' ');
		knh_write_ascii(ctx, w, FN__(p->fn));
	}
	if(ParamArray_isVARGs(DP(o)->mp)) {
		knh_write_delim(ctx, w);
		knh_write_dots(ctx, w);
	}
	knh_putc(ctx, w, ')');
	knh_write_EOL(ctx, w);
}
예제 #2
0
파일: i.c 프로젝트: shinpei/konoha-wand
static void ClassTYPEMAP_man(CTX ctx, knh_OutputStream_t *w, const knh_ClassTBL_t *ct, knh_NameSpace_t *ns)
{
	size_t i;
	int hasCaption = 0;
	knh_Array_t *typemaps = ct->typemaps;
	for(i = 0; i < typemaps->size; i++) {
		if(hasCaption == 0) {
			knh_write_ctext(ctx, w, _("TYPEMAP"));
			hasCaption = 1;
		}
		knh_TypeMap_t *mpr = typemaps->trans[i];
		knh_write_TAB(ctx, w); /*knh_write_TAB(ctx, w);*/
		if(TypeMap_isInterface(mpr)) {
			knh_write_ascii(ctx, w, "interface ");
		}
		else {
			knh_write_ascii(ctx, w, "to ");
		}
		knh_write_cid(ctx, w, SP(mpr)->tcid);
		knh_write_EOL(ctx, w);
	}
	if(hasCaption == 1) {
		knh_write_EOL(ctx, w);
	}
}
예제 #3
0
파일: runtime.c 프로젝트: utrhira/mpik
static void knh_showSecurityAlert(CTX ctx, kOutputStream *w)
{
	if(SecurityAlertMessage != NULL /*&& CTX_isInteractive(ctx)*/) {
		knh_write_ascii(ctx, w, TERM_BBOLD(ctx));
		knh_write_ascii(ctx, w, "SECURITY ALERT: ");
		knh_write_ascii(ctx, w, SecurityAlertMessage);
		knh_write_ascii(ctx, w, TERM_EBOLD(ctx));
		knh_write_EOL(ctx, w); knh_write_EOL(ctx, w);
		knh_setSecurityAlertMessage(NULL, 0);
	}
}
예제 #4
0
파일: i.c 프로젝트: shinpei/konoha-wand
static void knh_write_ctext(CTX ctx, knh_OutputStream_t *w, const char *msg)
{
//	knh_write_ascii(ctx, w, TERM_BBOLD(ctx));
	knh_write_ascii(ctx, w, msg);
//	knh_write_ascii(ctx, w, TERM_EBOLD(ctx));
	knh_write_EOL(ctx, w);
}
예제 #5
0
파일: i.c 프로젝트: shinpei/konoha-wand
static void ClassOP_man(CTX ctx, knh_OutputStream_t *w, const knh_ClassTBL_t *ct, knh_NameSpace_t *ns)
{
	size_t i, cnt = 0, hasCaption = 0;
	knh_Array_t *a = ct->methods;
	int isBOL = 1;
	char buf[40];
	for(i = 0; i < knh_Array_size(a); i++) {
		knh_Method_t *mtd = a->methods[i];
		char *op = MNOP__(SP(mtd)->mn);
		if(op == NULL) continue;
		if(hasCaption == 0) {
			knh_write_ctext(ctx, w, _("OPERATOR"));
			hasCaption = 1;
		}
		if(isBOL == 1) {
			knh_write_TAB(ctx, w);
			isBOL = 0;
		}
		knh_snprintf(buf, sizeof(buf), "%-14s", op);
		knh_write_ascii(ctx, w, buf);
		if(cnt % 5 == 4) {
			knh_write_EOL(ctx, w);
			isBOL = 1;
		}
		cnt++;
	}
	if(isBOL != 1) {
		knh_write_EOL(ctx, w);
	}
	if(hasCaption == 1) {
		knh_write_EOL(ctx, w);
	}
}
예제 #6
0
파일: evidence.c 프로젝트: utrhira/mpik
static void knh_write_cline(CTX ctx, kOutputStream *w, const char *file, kuintptr_t line)
{
	knh_putc(ctx, w, '(');
	knh_write_ascii(ctx, w, knh_sfile(file));
	knh_putc(ctx, w, ':');
	knh_write_dfmt(ctx, w, K_INTPTR_FMT, line);
	knh_putc(ctx, w, ')');
	knh_putc(ctx, w, ' ');
}
예제 #7
0
파일: i.c 프로젝트: shinpei/konoha-wand
static void ClassNAME_man(CTX ctx, knh_OutputStream_t *w, const knh_ClassTBL_t *ct)
{
	knh_write_ctext(ctx, w, _("CLASS"));
	knh_write_TAB(ctx, w);
	knh_write_cid(ctx, w, ct->cid);
	knh_write_EOL(ctx, w);

	while(ct->supcid != CLASS_Object) {
		knh_class_t cid = ct->supcid;
		knh_write_TAB(ctx, w);
		knh_write_ascii(ctx, w, _("extends "));
		knh_write_cid(ctx, w, cid);
		knh_write_EOL(ctx, w);
		ct = ct->supTBL;
	}
	knh_write_EOL(ctx, w);
}
예제 #8
0
파일: evidence.c 프로젝트: utrhira/mpik
void knh_write_now(CTX ctx, kOutputStream *w)
{
	char buf[80];
	time_t t;
	struct tm tm;
	time(&t);
#if defined(K_USING_WINDOWS_)
#if defined(K_USING_MINGW_)
	tm = *localtime(&t);
#else
	localtime_s(&tm, &t);
#endif /* defined(K_USING_MINGW_) */
#else
	localtime_r(&t, &tm);
#endif /* defined(K_USING_WINDOWS_) */
	knh_write_ascii(ctx, w, knh_format_w3cdtf(buf, sizeof(buf), &tm));
}
예제 #9
0
static knh_String_t *Gamma_vperror(CTX ctx, int pe, const char *fmt, va_list ap)
{
	knh_String_t *msg = TS_EMPTY;
	int isPRINT = (pe <= KC_DWARN) ? 1 : 0;
	if(pe != KC_DEBUG && (CTX_isInteractive(ctx) || knh_isCompileOnly(ctx))) {
		isPRINT = 1;
	}
	if(Gamma_isQuiet(ctx->gma) || ctx->gma->uline == 0) {
		isPRINT = 0;
	}
	//DBG_P("/*isPRINT=%d*/ uline=%d", isPRINT, ctx->gma->uline);
	if(isPRINT == 1) {
		knh_cwb_t cwbbuf, *cwb = knh_cwb_open(ctx, &cwbbuf);
		knh_write_uline(ctx, cwb->w, ctx->gma->uline);
		knh_write_ascii(ctx, cwb->w, KC__(pe));
		knh_vprintf(ctx, cwb->w, fmt, ap);
		msg = knh_cwb_newString(ctx, cwb);
		knh_Array_add(ctx, DP(ctx->gma)->errmsgs, msg);
		fprintf(stderr, "%s - %s%s\n", TERM_BNOTE(ctx, pe), S_tochar(msg), TERM_ENOTE(ctx, pe));
	}
	return msg;
}