add PIC_TT_IREP

This commit is contained in:
Yuichi Nishiwaki 2014-01-18 16:51:54 +09:00
parent b62374b4b4
commit 586b228156
6 changed files with 16 additions and 3 deletions

View File

@ -102,7 +102,8 @@ enum pic_tt {
PIC_TT_SYNTAX,
PIC_TT_SC,
PIC_TT_LIB,
PIC_TT_VAR
PIC_TT_VAR,
PIC_TT_IREP
};
#define PIC_OBJECT_HEADER \

View File

@ -679,11 +679,11 @@ codegen(codegen_state *state, pic_value obj, bool tailpos)
case PIC_TT_SYNTAX:
case PIC_TT_SC:
case PIC_TT_LIB:
case PIC_TT_VAR: {
case PIC_TT_VAR:
case PIC_TT_IREP:
pic_error(pic, "invalid expression given");
}
}
}
static void
codegen_call(codegen_state *state, pic_value obj, bool tailpos)

View File

@ -428,6 +428,9 @@ gc_mark_object(pic_state *pic, struct pic_object *obj)
}
break;
}
case PIC_TT_IREP: {
break;
}
case PIC_TT_NIL:
case PIC_TT_BOOL:
case PIC_TT_FLOAT:
@ -567,6 +570,9 @@ gc_finalize_object(pic_state *pic, struct pic_object *obj)
case PIC_TT_VAR: {
break;
}
case PIC_TT_IREP: {
break;
}
case PIC_TT_NIL:
case PIC_TT_BOOL:
case PIC_TT_FLOAT:

View File

@ -547,6 +547,7 @@ macroexpand(pic_state *pic, pic_value expr, struct pic_senv *senv)
case PIC_TT_SYNTAX:
case PIC_TT_LIB:
case PIC_TT_VAR:
case PIC_TT_IREP:
pic_error(pic, "unexpected value type");
return pic_undef_value(); /* unreachable */
}

View File

@ -84,6 +84,8 @@ pic_type_repr(enum pic_tt tt)
return "lib";
case PIC_TT_VAR:
return "var";
case PIC_TT_IREP:
return "irep";
}
/* logic flaw */
abort();

View File

@ -146,6 +146,9 @@ write(pic_state *pic, pic_value obj)
case PIC_TT_VAR:
printf("#<var %p>", pic_ptr(obj));
break;
case PIC_TT_IREP:
printf("#<irep %p>", pic_ptr(obj));
break;
}
}