+ psi_token_free(&i->token);
+ if (i->num) {
+ if (i->num == &i->inc) {
+ switch (i->inc.op) {
+ case PSI_T_NUMBER:
+ psi_number_free(&i->inc.data.n);
+ break;
+ case PSI_T_PLUS:
+ psi_num_exp_free(&i->inc.data.b.lhs);
+ psi_num_exp_free(&i->inc.data.b.rhs);
+ break;
+ default:
+ assert(0);
+ }
+ } else {
+ psi_num_exp_free(&i->num);
+ }