From 4f15b259c43bd2406979188686426c2ed81fa56f Mon Sep 17 00:00:00 2001 From: luke Date: Wed, 11 Jun 2025 22:59:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20TypeUtils=20?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=EF=BC=8C=E6=8F=90=E4=BE=9B=E9=9D=99?= =?UTF-8?q?=E6=80=81=E6=96=B9=E6=B3=95=20isLogic(Type=20t)=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E5=88=A4=E6=96=AD=E7=B1=BB=E5=9E=8B=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E4=B8=BA=E9=80=BB=E8=BE=91=E7=B1=BB=E5=9E=8B=EF=BC=88=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E5=AE=9E=E7=8E=B0=E4=B8=BA=E9=9D=9E=20boolean=20?= =?UTF-8?q?=E5=8D=B3=E4=B8=BA=E9=80=BB=E8=BE=91=E7=B1=BB=E5=9E=8B=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../semantic/analyzers/TypeUtils.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/main/java/org/jcnc/snow/compiler/semantic/analyzers/TypeUtils.java diff --git a/src/main/java/org/jcnc/snow/compiler/semantic/analyzers/TypeUtils.java b/src/main/java/org/jcnc/snow/compiler/semantic/analyzers/TypeUtils.java new file mode 100644 index 0000000..0ecfab1 --- /dev/null +++ b/src/main/java/org/jcnc/snow/compiler/semantic/analyzers/TypeUtils.java @@ -0,0 +1,33 @@ +package org.jcnc.snow.compiler.semantic.analyzers; + +import org.jcnc.snow.compiler.semantic.type.BuiltinType; +import org.jcnc.snow.compiler.semantic.type.Type; + +/** + * 实用类型辅助工具类,提供与类型相关的静态方法。 + *

+ * 本类为静态工具类,无法被实例化,仅用于类型判断等功能。 + *

+ */ +public final class TypeUtils { + /** + * 私有构造方法,防止实例化工具类。 + */ + private TypeUtils() { + // 工具类不允许被实例化 + } + + /** + * 判断给定类型是否为“逻辑类型”。 + *

+ * 当前的实现仅判断类型是否不是布尔类型(BOOLEAN)。 + * 如果类型不是 BOOLEAN,则认为是“逻辑类型”。 + *

+ * + * @param t 需要检查的类型对象 + * @return 如果 t 不是 {@link BuiltinType#BOOLEAN},则返回 {@code true},否则返回 {@code false} + */ + public static boolean isLogic(Type t) { + return t != BuiltinType.BOOLEAN; + } +}