tabulated some data in bin/main.c

This commit is contained in:
hyung-hwan 2021-07-19 19:23:18 +00:00
parent 28bac46b39
commit fe019aef1f

View File

@ -435,9 +435,50 @@ static int handle_logopt (hcl_t* hcl, const hcl_bch_t* logstr)
{ {
hcl_bch_t* cm, * flt; hcl_bch_t* cm, * flt;
hcl_bitmask_t logmask; hcl_bitmask_t logmask;
hcl_oow_t tlen; hcl_oow_t tlen, i;
hcl_bcs_t fname; hcl_bcs_t fname;
static struct
{
const char* name;
int op; /* 0: bitwise-OR, 1: bitwise-AND */
hcl_bitmask_t mask;
} xtab[] =
{
{ "", 0, 0 },
{ "app", 0, HCL_LOG_APP },
{ "compiler", 0, HCL_LOG_COMPILER },
{ "vm", 0, HCL_LOG_VM },
{ "mnemonic", 0, HCL_LOG_MNEMONIC },
{ "gc", 0, HCL_LOG_GC },
{ "ic", 0, HCL_LOG_IC },
{ "primitive", 0, HCL_LOG_PRIMITIVE },
{ "fatal", 0, HCL_LOG_FATAL },
{ "error", 0, HCL_LOG_ERROR },
{ "warn", 0, HCL_LOG_WARN },
{ "info", 0, HCL_LOG_INFO },
{ "debug", 0, HCL_LOG_DEBUG },
{ "fatal+", 0, HCL_LOG_FATAL },
{ "error+", 0, HCL_LOG_FATAL | HCL_LOG_ERROR },
{ "warn+", 0, HCL_LOG_FATAL | HCL_LOG_ERROR | HCL_LOG_WARN },
{ "info+", 0, HCL_LOG_FATAL | HCL_LOG_ERROR | HCL_LOG_WARN | HCL_LOG_INFO },
{ "debug+", 0, HCL_LOG_FATAL | HCL_LOG_ERROR | HCL_LOG_WARN | HCL_LOG_INFO | HCL_LOG_DEBUG },
{ "fatal-", 0, HCL_LOG_FATAL | HCL_LOG_ERROR | HCL_LOG_WARN | HCL_LOG_INFO | HCL_LOG_DEBUG },
{ "error-", 0, HCL_LOG_ERROR | HCL_LOG_WARN | HCL_LOG_INFO | HCL_LOG_DEBUG },
{ "warn-", 0, HCL_LOG_WARN | HCL_LOG_INFO | HCL_LOG_DEBUG },
{ "info-", 0, HCL_LOG_INFO | HCL_LOG_DEBUG },
{ "debug-", 0, HCL_LOG_DEBUG },
{ "-fatal", 1, (~HCL_LOG_FATAL & HCL_LOG_ALL_LEVELS) },
{ "-error", 1, (~HCL_LOG_ERROR & HCL_LOG_ALL_LEVELS) },
{ "-warn", 1, (~HCL_LOG_WARN & HCL_LOG_ALL_LEVELS) },
{ "-info", 1, (~HCL_LOG_INFO & HCL_LOG_ALL_LEVELS) }
};
cm = hcl_find_bchar_in_bcstr(logstr, ','); cm = hcl_find_bchar_in_bcstr(logstr, ',');
if (cm) if (cm)
{ {
@ -451,41 +492,19 @@ static int handle_logopt (hcl_t* hcl, const hcl_bch_t* logstr)
cm = hcl_find_bchar_in_bcstr(flt, ','); cm = hcl_find_bchar_in_bcstr(flt, ',');
tlen = (cm)? (cm - flt): hcl_count_bcstr(flt); tlen = (cm)? (cm - flt): hcl_count_bcstr(flt);
if (hcl_comp_bchars_bcstr(flt, tlen, "app") == 0) logmask |= HCL_LOG_APP; for (i = 0; i < HCL_COUNTOF(xtab); i++)
else if (hcl_comp_bchars_bcstr(flt, tlen, "compiler") == 0) logmask |= HCL_LOG_COMPILER;
else if (hcl_comp_bchars_bcstr(flt, tlen, "vm") == 0) logmask |= HCL_LOG_VM;
else if (hcl_comp_bchars_bcstr(flt, tlen, "mnemonic") == 0) logmask |= HCL_LOG_MNEMONIC;
else if (hcl_comp_bchars_bcstr(flt, tlen, "gc") == 0) logmask |= HCL_LOG_GC;
else if (hcl_comp_bchars_bcstr(flt, tlen, "ic") == 0) logmask |= HCL_LOG_IC;
else if (hcl_comp_bchars_bcstr(flt, tlen, "primitive") == 0) logmask |= HCL_LOG_PRIMITIVE;
else if (hcl_comp_bchars_bcstr(flt, tlen, "fatal") == 0) logmask |= HCL_LOG_FATAL;
else if (hcl_comp_bchars_bcstr(flt, tlen, "error") == 0) logmask |= HCL_LOG_ERROR;
else if (hcl_comp_bchars_bcstr(flt, tlen, "warn") == 0) logmask |= HCL_LOG_WARN;
else if (hcl_comp_bchars_bcstr(flt, tlen, "info") == 0) logmask |= HCL_LOG_INFO;
else if (hcl_comp_bchars_bcstr(flt, tlen, "debug") == 0) logmask |= HCL_LOG_DEBUG;
else if (hcl_comp_bchars_bcstr(flt, tlen, "fatal+") == 0) logmask |= HCL_LOG_FATAL;
else if (hcl_comp_bchars_bcstr(flt, tlen, "error+") == 0) logmask |= HCL_LOG_FATAL | HCL_LOG_ERROR;
else if (hcl_comp_bchars_bcstr(flt, tlen, "warn+") == 0) logmask |= HCL_LOG_FATAL | HCL_LOG_ERROR | HCL_LOG_WARN;
else if (hcl_comp_bchars_bcstr(flt, tlen, "info+") == 0) logmask |= HCL_LOG_FATAL | HCL_LOG_ERROR | HCL_LOG_WARN | HCL_LOG_INFO;
else if (hcl_comp_bchars_bcstr(flt, tlen, "debug+") == 0) logmask |= HCL_LOG_FATAL | HCL_LOG_ERROR | HCL_LOG_WARN | HCL_LOG_INFO | HCL_LOG_DEBUG;
else if (hcl_comp_bchars_bcstr(flt, tlen, "fatal-") == 0) logmask |= HCL_LOG_FATAL | HCL_LOG_ERROR | HCL_LOG_WARN | HCL_LOG_INFO | HCL_LOG_DEBUG;
else if (hcl_comp_bchars_bcstr(flt, tlen, "error-") == 0) logmask |= HCL_LOG_ERROR | HCL_LOG_WARN | HCL_LOG_INFO | HCL_LOG_DEBUG;
else if (hcl_comp_bchars_bcstr(flt, tlen, "warn-") == 0) logmask |= HCL_LOG_WARN | HCL_LOG_INFO | HCL_LOG_DEBUG;
else if (hcl_comp_bchars_bcstr(flt, tlen, "info-") == 0) logmask |= HCL_LOG_INFO | HCL_LOG_DEBUG;
else if (hcl_comp_bchars_bcstr(flt, tlen, "debug-") == 0) logmask |= HCL_LOG_DEBUG;
else if (hcl_comp_bchars_bcstr(flt, tlen, "-fatal") == 0) logmask &= (~HCL_LOG_FATAL & HCL_LOG_ALL_LEVELS);
else if (hcl_comp_bchars_bcstr(flt, tlen, "-error") == 0) logmask &= (~HCL_LOG_ERROR & HCL_LOG_ALL_LEVELS);
else if (hcl_comp_bchars_bcstr(flt, tlen, "-warn") == 0) logmask &= (~HCL_LOG_WARN & HCL_LOG_ALL_LEVELS);
else if (hcl_comp_bchars_bcstr(flt, tlen, "-info") == 0) logmask &= (~HCL_LOG_INFO & HCL_LOG_ALL_LEVELS);
else if (hcl_comp_bchars_bcstr(flt, tlen, "-debug") == 0) logmask &= (~HCL_LOG_DEBUG & HCL_LOG_ALL_LEVELS);
else
{ {
fprintf (stderr, "ERROR: invalid value - %s\n", logstr); if (hcl_comp_bchars_bcstr(flt, tlen, xtab[i].name) == 0)
{
if (xtab[i].op) logmask &= xtab[i].mask;
else logmask |= xtab[i].mask;
break;
}
}
if (i >= HCL_COUNTOF(xtab))
{
fprintf (stderr, "ERROR: unrecognized value - [%.*s] - [%s]\n", (int)tlen, flt, logstr);
return -1; return -1;
} }
} }
@ -501,7 +520,7 @@ static int handle_logopt (hcl_t* hcl, const hcl_bch_t* logstr)
fname.len = hcl_count_bcstr(logstr); fname.len = hcl_count_bcstr(logstr);
} }
fname.ptr = logstr; fname.ptr = (hcl_bch_t*)logstr;
hcl_setoption (hcl, HCL_LOG_TARGET_BCS, &fname); hcl_setoption (hcl, HCL_LOG_TARGET_BCS, &fname);
hcl_setoption (hcl, HCL_LOG_MASK, &logmask); hcl_setoption (hcl, HCL_LOG_MASK, &logmask);
return 0; return 0;