Пример #1
0
static void generate_if(struct vec *v,OBJ ast)
{
	char* label1;
	char* label2;

	generate_r(v,obj_if_test(ast));
	emit(v,JUMP_UNLESS);
	label1 = declare_label(v);
	generate_r(v,obj_if_consequent(ast));
	emit(v,JUMP);
	label2 = declare_label(v);
	make_label(v,label1);
	generate_r(v,obj_if_alternate(ast));
	make_label(v,label2);
}
Пример #2
0
/*
 * Define a special backend label
 */
void backend_label(const char *label, int32_t segment, int64_t offset)
{
    if (!declare_label(label, LBL_BACKEND, NULL))
        return;

    define_label(label, segment, offset, false);
}