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); } }
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); } }
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); } }
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); }
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); }
KNHAPI(void) knh_OutputStream_writeLine(Ctx *ctx, knh_OutputStream_t *w, knh_bytes_t t, knh_bool_t isNEWLINE) { if(knh_OutputStream_isBOL(w)) { knh_write_BOL(ctx, w); } if(t.len > 0) { if(DP(w)->encNULL != NULL && !knh_bytes_isASCII(t)) { if(knh_bytes_in(ctx->bufa->bu, t.ubuf)) { KNH_TODO("write cwb->buf with encoding"); } else { knh_cwb_t cwbbuf, *cwb = knh_cwb_open(ctx, &cwbbuf); knh_StringEncoder_t *c = DP(w)->encNULL; c->dspi->enc(ctx, c->conv, t, cwb->ba); knh_write(ctx, w, knh_cwb_tobytes(cwb)); knh_cwb_close(cwb); } } else { knh_OutputStream_write(ctx, w, t); } } if(isNEWLINE) { knh_write_EOL(ctx, w); } }
void knh_vperror(Ctx *ctx, knh_uri_t uri, int line, int pe, const char *fmt, va_list ap) { DBG_ASSERT(pe <= LOG_DEBUG); if(knh_Gamma_isQuiet(ctx->gma)) { return; } // if(pe < KERR_DWARN) { // DP(ctx->gma)->statError += 1; // } // else if(pe < KERR_TINFO) { // DP(ctx->gma)->statBadManner += 1; // } if(knh_Context_isInteractive(ctx)) { goto L_PRINT; } if(pe > KERR_EWARN && !knh_Context_isCompiling(ctx)) { return; } L_PRINT:; if(line > 0) { knh_OutputStream_t *w = KNH_STDERR; knh_printf(ctx, w, " - [%s:%d]:%s ", FILENAME__(uri), (knh_intptr_t)line, KERR_tochar(pe)); knh_vprintf(ctx, w, fmt, ap); knh_write_EOL(ctx, w); } else { knh_vsyslog(ctx, pe, fmt, ap); } }
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); }
void knh_write_begin(Ctx *ctx, knh_OutputStream_t *w, int ch) { if(ch != 0) { knh_putc(ctx, w, ch); knh_write_EOL(ctx, w); } DP(w)->indent++; }
static void ClassFMT_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; for(i = 0; i < knh_Array_size(a); i++) { knh_Method_t *mtd = a->methods[i]; if(!MN_isFMT(mtd->mn)) continue; if(hasCaption == 0) { knh_write_ctext(ctx, w, _("FORMAT")); hasCaption = 1; } knh_write_TAB(ctx, w); knh_write_mn(ctx, w, mtd->mn); knh_write_EOL(ctx, w); cnt++; } if(hasCaption == 1) { knh_write_EOL(ctx, w); } }
KNHAPI(void) knh_write_BOL(Ctx *ctx, knh_OutputStream_t *w) { knh_intptr_t i, n = DP(w)->indent; if(!knh_OutputStream_isBOL(w)) { knh_write_EOL(ctx, w); } for(i = 0; i < n; i++) { knh_OutputStream_write(ctx, w, S_tobytes(DP(w)->TAB)); } knh_OutputStream_setBOL(w, 0); }
static void ClassCONST_man(CTX ctx, knh_OutputStream_t *w, const knh_ClassTBL_t *ct, knh_NameSpace_t *ns) { knh_DictMap_t *tcmap = ct->constDictCaseMapNULL; size_t i, size = knh_DictMap_size(tcmap); int hasCaption = 0; for(i = 0; i < size; i++) { if(!hasCaption) { knh_write_ctext(ctx, w, _("CONST")); hasCaption = 1; } knh_printf(ctx, w, "\t%s.%s: %O\n", S_tochar(ct->sname), S_tochar(knh_DictMap_keyAt(tcmap, i)), knh_DictMap_valueAt(tcmap, i)); } if(hasCaption == 1) { knh_write_EOL(ctx, w); } }
void knh_vperror(Ctx *ctx, knh_uri_t uri, int line, int pe, char *fmt, va_list ap) { KNH_ASSERT(pe <= KERR_INFO); if(knh_Context_isInteractive(ctx)) { goto L_PRINT; } if(pe > KERR_EWARN && !knh_Context_isCompiling(ctx)) { return; } L_PRINT:; { OutputStream *w = KNH_STDERR; knh_printf(ctx, w, " - [%s:%d]:%s ", knh_safefile(URIDN(uri)), (knh_intptr_t)line, KERR_MSG[pe]); knh_vprintf(ctx, w, fmt, ap); knh_write_EOL(ctx, w); ((Context*)ctx)->hasError = 1; } }
static void ClassMETHOD_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; for(i = 0; i < knh_Array_size(a); i++) { knh_Method_t *mtd = a->methods[i]; if(mtd->mn < MN_OPSIZE) continue; if(MN_isFMT(mtd->mn)) continue; if(Method_isHidden(mtd) && !knh_isSystemVerbose()) continue; if(hasCaption == 0) { knh_write_ctext(ctx, w, _("METHOD")); hasCaption = 1; } knh_write_Method(ctx, w, ct, mtd); cnt++; } if(hasCaption == 1) { knh_write_EOL(ctx, w); } }