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; } }
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; }