Exemple #1
0
void Value::doConvert(Type newType) {
    switch (type) {
    case TYPE_I32:
        type = newType;
        switch (newType) {
        case TYPE_I8:  constant.i8  =  S08(constant.i32); return;
        case TYPE_I16: constant.i16 = S16(constant.i32); return;
        case TYPE_I32: constant.i32 = S32(constant.i32); return;
        case TYPE_I64: constant.i64 = S64(constant.i32); return;
        case TYPE_F32: constant.f32 = F32(constant.i32); return;
        case TYPE_F64: constant.f64 = F64(constant.i32); return;
        default:
            assert_always("Unimplemented case");
            return;
        }
    case TYPE_I64:
        type = newType;
        switch (newType) {
        case TYPE_I8:  constant.i8  =  S08(constant.i64); return;
        case TYPE_I16: constant.i16 = S16(constant.i64); return;
        case TYPE_I32: constant.i32 = S32(constant.i64); return;
        case TYPE_I64: constant.i64 = S64(constant.i64); return;
        case TYPE_F32: constant.f32 = F32(constant.i64); return;
        case TYPE_F64: constant.f64 = F64(constant.i64); return;
        default:
            assert_always("Unimplemented case");
            return;
        }
    case TYPE_F32:
        type = newType;
        switch (newType) {
        case TYPE_I8:  constant.i8  =  S08(constant.f32); return;
        case TYPE_I16: constant.i16 = S16(constant.f32); return;
        case TYPE_I32: constant.i32 = S32(constant.f32); return;
        case TYPE_I64: constant.i64 = S64(constant.f32); return;
        case TYPE_F32: constant.f32 = F32(constant.f32); return;
        case TYPE_F64: constant.f64 = F64(constant.f32); return;
        default:
            assert_always("Unimplemented case");
            return;
        }
    case TYPE_F64:
        type = newType;
        switch (newType) {
        case TYPE_I8:  constant.i8  =  S08(constant.f64); return;
        case TYPE_I16: constant.i16 = S16(constant.f64); return;
        case TYPE_I32: constant.i32 = S32(constant.f64); return;
        case TYPE_I64: constant.i64 = S64(constant.f64); return;
        case TYPE_F32: constant.f32 = F32(constant.f64); return;
        case TYPE_F64: constant.f64 = F64(constant.f64); return;
        default:
            assert_always("Unimplemented case");
            return;
        }
    default:
        assert_always("Unimplemented case");
        return;
    }
}
Exemple #2
0
enum parseType S()
{
	char *save = next;
	if (!S01()) {
		next = save;
		if (!S02()) {
			next = save;
			if (!S03()) {
				next = save;
				if (!S04()) {
					next = save;
					if (!S05()) {
						next = save;
						goto S06_above;
					} else return tS05;
				} else return tS04;
			} else return tS03;
		} else return tS02;
	} else return tS01;
S06_above:
	if (!S06()) {
		next = save;
		if (!S07()) {
			next = save;
			if (!S08()) {
				next = save;
				if (!S09()) {
					next = save;
					if (!S10()) {
						next = save;
						goto S11_above;
					} else return tS10;
				} else return tS09;
			} else return tS08;
		} else return tS07;
	} else return tS06;
S11_above:
	if (!S11()) {
		next = save;
		if (!S12()) {
			next = save;
			if (!S13()) {
				next = save;
				if (!S14()) {
					next = save;
					if (!S15()) {
						next = save;
						goto S16_above;
					} else return tS15;
				} else return tS14;
			} else return tS13;
		} else return tS12;
	} else return tS11;
S16_above:
	if (!S16()) {
		next = save;
		if (!S17()) {
			next = save;
			if (!S18()) {
				next = save;
				if (!S19()) {
					next = save;
					if (!S20()) {
						goto S21_above;
					} else return tS20;
				} else return tS19;
			} else return tS18;
		} else return tS17;
	} else return tS16;
S21_above:
	if (!S21()) {
		return tERR;
	} else return tS21;
	return tERR;
}