Pnode Confinement::item(Pnode ts) { Token tok = ts->tok(); Pnode cnst(new Cnst(tok, ts, Cnst::eTsnum)); Pnode term(new Term(tok, cnst, Term::eCnst)); Expr * r_expr = new Expr(tok); r_expr->typ = Expr::eTerm; r_expr->addChild(term); Pnode expr(r_expr); Item * r_item = new Item(tok); r_item->typ = Item::eExpr; r_item->addChild(expr); Pnode itm(r_item); return itm; }
void main( int argc, char *argv[], char *envp[]) { int32_t i, j; for(i = 0; i < NUMOPCODES - 1; i++){ printf("\t%s\t", m88k_opcodes[i].name); if(m88k_opcodes[i].op[0].type == NIL) printf("\n"); for(j = 0; j < 3 && m88k_opcodes[i].op[j].type != NIL; j++){ switch(m88k_opcodes[i].op[j].type){ case CNST: #ifdef SIGNED_IMMEDIATES case SCNST: #endif printf("0x%04x", cnst() ); break; case REG: printf("r%d", reg() ); break; case BF: printf("%d<%d>", reg(), reg() ); break; case REGSC: printf("[r%d]", reg() ); break; case CRREG: printf("cr%d", creg() ); break; case FCRREG: printf("fcr%d", creg() ); break; case PCREL: printf("undef"); break; case CONDMASK: print_cond(); break; case CMPRSLT: print_cmp(); break; case ROT: printf("<%d>", reg() ); break; case E4ROT: printf("<%d>", creg() & ~0x3); break; case EREG: printf("r%d", reg() & ~0x1); break; case XREG: printf("x%d", reg()); break; } if(j == 2 || m88k_opcodes[i].op[j+1].type == NIL) printf("\n"); else if(m88k_opcodes[i].op[j+1].type != REGSC) printf(","); } } }