void genrval(int *lv) { if (NULL == lv) return; gentext(); if (!lv[LVSYM]) { genind(lv[LVPRIM]); } else if (CAUTO == Stcls[lv[LVSYM]]) { if (PCHAR == lv[LVPRIM]) queue(auto_byte, Vals[lv[LVSYM]], NULL); else queue(auto_word, Vals[lv[LVSYM]], NULL); } else if (CLSTATC == Stcls[lv[LVSYM]]) { if (PCHAR == lv[LVPRIM]) queue(static_byte, Vals[lv[LVSYM]], NULL); else queue(static_word, Vals[lv[LVSYM]], NULL); } else { if (PCHAR == lv[LVPRIM]) queue(globl_byte, 0, Names[lv[LVSYM]]); else queue(globl_word, 0, Names[lv[LVSYM]]); } }
void rvalue(int *lv) { if (NULL == lv) return; gentext(); if (!lv[LVSYM]) { genind(lv[LVPRIM]); } else if (CAUTO == symbols[lv[LVSYM]].stcl) { if (PCHAR == lv[LVPRIM]) queue(auto_byte, symbols[lv[LVSYM]].value, NULL); else queue(auto_word, symbols[lv[LVSYM]].value, NULL); } else if (CLSTATC == symbols[lv[LVSYM]].stcl) { if (PCHAR == lv[LVPRIM]) queue(static_byte, symbols[lv[LVSYM]].value, NULL); else queue(static_word, symbols[lv[LVSYM]].value, NULL); } else { if (PCHAR == lv[LVPRIM]) queue(globl_byte, 0, symbols[lv[LVSYM]].name); else queue(globl_word, 0, symbols[lv[LVSYM]].name); } }