diff --git a/src/main/java/org/jcnc/snow/compiler/backend/utils/TypePromoteUtils.java b/src/main/java/org/jcnc/snow/compiler/backend/utils/TypePromoteUtils.java index 4fcc995..207377e 100644 --- a/src/main/java/org/jcnc/snow/compiler/backend/utils/TypePromoteUtils.java +++ b/src/main/java/org/jcnc/snow/compiler/backend/utils/TypePromoteUtils.java @@ -1,25 +1,35 @@ package org.jcnc.snow.compiler.backend.utils; /** - * 基本数值类型提升工具: - * 类型优先级低的类型转为优先级高的类型,去参与比较、计算等等, - * 比如 int + long,那么结果的类型应为 long + * 工具类:提供基本数值类型的提升与类型转换辅助功能。 + *
+ * 在进行数值类型运算、比较等操作时,低优先级的类型会被提升为高优先级类型参与运算。 + * 例如 int + long 运算,int 会被提升为 long,最终运算结果类型为 long。 + *
+ * 类型优先级从高到低依次为: + * D(double):6 + * F(float) :5 + * L(long) :4 + * I(int) :3 + * S(short) :2 + * B(byte) :1 + * 未识别类型 :0 */ public class TypePromoteUtils { + /** - * 类型宽度优先级:D > F > L > I > S > B - *
+ * 支持的类型标记字符包括:B(byte)、S(short)、I(int)、L(long)、F(float)、D(double)。 + * 所有可能的类型转换均已覆盖,如下所示: + * B → S/I/L/F/D + * S → B/I/L/F/D + * I → B/S/L/F/D + * L → B/S/I/F/D + * F → B/S/I/L/D + * D → B/S/I/L/F * * @param from 源类型标记字符 * @param to 目标类型标记字符 - * @return 转换指令名,如“L2I”;无转换返回 {@code null} + * @return 类型转换指令名(如 "L2I"),如无须转换则返回 null */ public static String convert(char from, char to) { if (from == to) return null;