2025-04-27 07:49:33 -04:00

316 lines
18 KiB
C

/* ************************************************************************* */
/* * Debug printing include for XRW modules * */
/* ************************************************************************* */
#ifndef XRWORD_P_INCLUDED
#define XRWORD_P_INCLUDED
#if PG_DEBUG || PG_DEBUG_MAC
/* ============================================================ */
#if PG_DEBUG_MAC
#include "xrw_deb.h"
#else
#include "pg_debug.h"
#endif /* PG_DEBUG_MAC */
#define printx printw
#define printfw printw
/* ---------------------- XrWordS -------------------------------- */
#define XRW_UTIL_1 \
\
if (look != NOPRINT) \
printfw("\n XRWS Alloc: %ld bytes allocated for XRWS\n", size); \
#define XRWS_S \
\
#define XRWS_0
#define XRWS_1 \
\
if (mpr > -10) \
{ \
printx("\n"); \
if (!xrcm->inverse) gprintf(76,24,2,0,"D%2d", lstep); \
else gprintf(76,24,4,0,"I%2d",lstep); \
} \
if (look == VOCWPRINT) printx("\n\n Wordcut %2d, B.A. %d ", lstep, xrcm->cur_ba); \
#define XRWS_2
#define XRWS_3 \
\
if (look == VOCWPRINT) \
{ \
_SHORT i; \
_UCHAR word[w_lim]; \
\
for (i = 0; i < clp.tag_size && (*clp.out_tags)[i].weight != 0; i++) \
{ \
_INT id = 0; \
\
memmove(word, (*clp.out_tags)[i].word, (clp.lstep+1)); \
word[(clp.lstep+1)] = 0; \
if (xrcm->inverse) strrev((p_CHAR)word); \
\
if ((*clp.out_tags)[i].l_sym.sd[XRWD_N_VOC].l_status) id |= XRWD_SRCID_VOC; \
if ((*clp.out_tags)[i].l_sym.sd[XRWD_N_TR ].l_status) id |= XRWD_SRCID_TR; \
if ((*clp.out_tags)[i].l_sym.sd[XRWD_N_CS ].l_status) id |= XRWD_SRCID_CS; \
if ((*clp.out_tags)[i].l_sym.sd[XRWD_N_LD ].l_status) id |= XRWD_SRCID_LD; \
if ((*clp.out_tags)[i].l_sym.sd[XRWD_N_PT ].l_status) id |= XRWD_SRCID_SPT; \
printfw("\n%6s dctlv %2x w: %3d cut %2d penl: %2d pw: %2d bc: %2d p: %d:%d:%d:%d:%d srcs %2x:%08x",\
(p_CHAR)word, \
id, \
(*clp.out_tags)[i].weight, \
(*clp.out_tags)[i].trace_pos, \
(_INT)(*clp.out_tags)[i].penalty, \
(_INT)(*clp.out_tags)[i].ppd_penalty, \
(_INT)(*clp.out_tags)[i].best_count, \
(*clp.out_tags)[i].l_sym.sd[XRWD_N_VOC].penalty, \
(*clp.out_tags)[i].l_sym.sd[XRWD_N_TR ].penalty, \
(*clp.out_tags)[i].l_sym.sd[XRWD_N_CS ].penalty, \
(*clp.out_tags)[i].l_sym.sd[XRWD_N_LD ].penalty, \
(*clp.out_tags)[i].l_sym.sd[XRWD_N_PT ].penalty, \
(*clp.out_tags)[i].l_sym.sources, \
~(*clp.out_tags)[i].sym_srcs_mask \
); \
} \
printfw("\n"); \
}
#define XRWS_4 \
\
if (xrcm->inverse) {if (look != NOPRINT) gprintf(76,24,2,0,"Done");} \
else {if(look == VOCWPRINT) printx("\n\n *** Reverse pass ***\n\n");} \
#define XRWS_5 \
\
DbgFillAWData(answr); \
\
/* ---------------------- XrMc ------------------------------------------ */
#define XRCM_ALLOC_1 \
\
if (look != NOPRINT) \
printfw("\n XrcmAlloc: %ld bytes allocated for XRMC\n", alloc_size); \
#define COUNT_SYM_1 \
\
if (look == MATRPRINT) \
{ \
printfw("\n "); \
printfw("\n-------- CountSym: Sym: %c, Var#: %d ---------", xrcm->sym, v); \
printfw("\n "); \
} \
#define COUNT_VAR_1 \
\
if (look == MATRPRINT) \
{ \
_INT i; \
\
printfw("\n "); \
for (i = xrcm->src_st; i < xrcm->src_end + DTI_XR_SIZE && i < xrcm->xrinp_len; i ++) \
{ \
printfw("%3d", i); put_xr((*xrcm->xrinp)[i], 0); \
} \
} \
#define COUNT_VAR_2 \
\
if (look == MATRPRINT) \
{ \
xrinp_type xrv; \
_INT i; \
\
xrv.type = (_UCHAR)((xrcm->xrp->type >> 5) | ((xrcm->xrp->penl >> 1) & 0xF8)); \
xrv.height = (_UCHAR)(1); \
xrv.attrib = xrcm->xrp->attr; \
xrv.penalty= (_UCHAR)(xrcm->xrp->penl & 0x0F); \
xrv.shift = (_UCHAR)(xrcm->xrp->xsc); \
xrv.depth = (_UCHAR)(xrcm->xrp->xzc); \
xrv.orient = (_UCHAR)(xrcm->xrp->xoc); \
printfw("\n"); \
put_xr(xrv, 0); \
printfw(" "); \
for (i = xrcm->src_st; i < xrcm->inp_end; i ++) \
{ \
_INT col = 7; \
\
if (xrcm->xrp_htr) col = xrcm->xrp_htr->vects[i - xrcm->xrp_htr->st];\
if (col == 0) col = 1; \
if (xrcm->p_hlayout) \
{ \
p_letlayout_hdr_type plsym = xrcm->p_hlayout->llhs[xrcm->cur_let_num];\
_INT on_tr = (plsym->realsym == xrcm->sym); \
\
if (plsym->var_num != xrcm->cur_var_num) on_tr = 0; \
\
if (on_tr) \
{ \
_INT t; \
\
for (t = 0; t < plsym->len; t ++) \
{ \
if (plsym->trp[t].xrp_num == n && plsym->trp[t].inp_pos == i) \
/*col += 8; */ col = 14; \
} \
} \
} \
\
if (i >= xrcm->inp_start) gprintf(0,0,col,0," %3d", (*xrcm->out_line)[i]); \
else printfw(" "); \
} \
} \
// if (i >= xrcm->inp_start) printfw(" %3d", (*xrcm->out_line)[i]); \
// else printfw(" "); \
#define MERGE_VAR_RES_1 \
\
if (look == MATRPRINT) \
{ \
printfw("\n\n ======= MergeVarRes ==============================", (_INT)xrcm->wwc, (_INT)xrcm->wwc_pos); \
printfw("\n Vexes: "); \
} \
#define MERGE_VAR_RES_2 \
\
// if (look == MATRPRINT) \
// { \
// if (vste[v].end == 0) printfw("V%d: X ", v); \
// } \
#define MERGE_VAR_RES_3 \
\
if (look == MATRPRINT) \
{ \
printfw("V%d: %d, ", v, vex); \
} \
#define MERGE_VAR_RES_4 \
\
if (look == MATRPRINT) \
{ \
_INT i; \
\
printfw("\n "); \
printfw("\n "); \
for (i = xrcm->v_start; i < xrcm->v_end; i ++) \
{ \
printfw("%3d", i); put_xr((*xrcm->xrinp)[i], 0); \
} \
printfw("\n "); \
for (i = xrcm->v_start; i < xrcm->v_end; i ++) \
{ \
_INT col = 7; \
\
if (xrcm->sym_htr) col = xrcm->sym_htr->merge_vect[i] + 1; \
if (col > 15) col = 7; \
if (xrcm->p_hlayout) \
{ \
p_letlayout_hdr_type plsym = xrcm->p_hlayout->llhs[xrcm->cur_let_num];\
_INT on_tr = (plsym->realsym == xrcm->word[xrcm->cur_let_num]) ? 1 : 0;\
\
if (on_tr) \
{ \
if (plsym->trp[plsym->len-1].inp_pos == i) \
/*col += 8; */ col = 14; \
} \
} \
\
gprintf(0,0,col,0," %3d", (*xrcm->s_out_line)[i]); \
} \
printfw("\n ======= MergeVarRes: wwc: %d, wwc_pos: %d ========", (_INT)xrcm->wwc, (_INT)xrcm->wwc_pos); \
} \
#define COUNT_LETTER_1 \
\
if (look == MATRPRINT) \
{ \
_INT i; \
\
printfw("\n\n ******** CoutLetterRes: wwc: %d, wwc_pos: %d, realsym %c ********", (_INT)xrcm->wwc, (_INT)xrcm->wwc_pos, xrcm->realsym); \
printfw("\n "); \
printfw("\n "); \
for (i = xrcm->v_start; i < xrcm->v_end; i ++) \
{ \
printfw("%3d", i); put_xr((*xrcm->xrinp)[i], 0); \
} \
printfw("\n "); \
for (i = xrcm->v_start; i < xrcm->v_end; i ++) \
{ \
_INT col = 7; \
\
if (xrcm->let_htr) col = xrcm->let_htr->merge_vect[i] + 2; \
if (col > 15) col = 7; \
if (xrcm->p_hlayout) \
{ \
p_letlayout_hdr_type plsym = xrcm->p_hlayout->llhs[xrcm->cur_let_num];\
_INT on_tr = (plsym->realsym == xrcm->word[xrcm->cur_let_num]) ? 1 : 0;\
\
if (on_tr) \
{ \
if (plsym->trp[plsym->len-1].inp_pos == i) \
/*col += 8; */ col = 14; \
} \
} \
gprintf(0,0,col,0," %3d", (*xrcm->s_out_line)[i]); \
} \
} \
// gprintf(0,0,j,0,"\nAlt %d", sl); \
#else /* = !PG_DEBUG =================================================== */
#define XRW_UTIL_1
#define XRWS_S
#define XRWS_0
#define XRWS_1
#define XRWS_2
#define XRWS_3
#define XRWS_4
#define XRWS_5
#define XRWS_6
#define XRCM_ALLOC_1
#define COUNT_SYM_1
#define COUNT_VAR_1
#define COUNT_VAR_2
#define MERGE_VAR_RES_1
#define MERGE_VAR_RES_2
#define MERGE_VAR_RES_3
#define MERGE_VAR_RES_4
#define COUNT_LETTER_1
#endif
#endif
/* ************************************************************************* */
/* * END OF ALLLLL * */
/* ************************************************************************* */