From 379d1adfc731158558ed3568da063a433e9602e3 Mon Sep 17 00:00:00 2001 From: Luke Date: Mon, 28 Apr 2025 14:33:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../semantic/core/SemanticAnalyzer.java | 5 +++ .../compiler/semantic/type/BuiltinType.java | 36 +++++++++++-------- test | 2 +- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/jcnc/snow/compiler/semantic/core/SemanticAnalyzer.java b/src/main/java/org/jcnc/snow/compiler/semantic/core/SemanticAnalyzer.java index 0b3c0af..9b8ca9a 100644 --- a/src/main/java/org/jcnc/snow/compiler/semantic/core/SemanticAnalyzer.java +++ b/src/main/java/org/jcnc/snow/compiler/semantic/core/SemanticAnalyzer.java @@ -32,6 +32,11 @@ public class SemanticAnalyzer { */ public static final Map BUILTIN_TYPES = Map.of( "int", BuiltinType.INT, + "long", BuiltinType.LONG, + "short", BuiltinType.SHORT, + "byte", BuiltinType.BYTE, + "float", BuiltinType.FLOAT, + "double", BuiltinType.DOUBLE, "string", BuiltinType.STRING, "void", BuiltinType.VOID ); diff --git a/src/main/java/org/jcnc/snow/compiler/semantic/type/BuiltinType.java b/src/main/java/org/jcnc/snow/compiler/semantic/type/BuiltinType.java index 164e261..e433c36 100644 --- a/src/main/java/org/jcnc/snow/compiler/semantic/type/BuiltinType.java +++ b/src/main/java/org/jcnc/snow/compiler/semantic/type/BuiltinType.java @@ -1,31 +1,39 @@ package org.jcnc.snow.compiler.semantic.type; /** - * 内置基础类型枚举:定义编译器中最基本的三种类型。 + * 内置基础类型枚举:定义编译器中常见的基础类型。 *

* 枚举值: *

*

- * 本枚举实现了 {@link Type} 接口,提供了基本的类型兼容性判断和友好的字符串表示方法。 + * 本枚举实现了 {@link Type} 接口,提供了基本的类型兼容性判断和 + * 友好的字符串表示方法。 */ public enum BuiltinType implements Type { - /** - * 整数类型,也可用于表示布尔值(真假值)。 - */ + /** 整数类型(32 位) */ INT, - - /** - * 字符串类型。 - */ + /** 长整数类型(64 位) */ + LONG, + /** 短整数类型(16 位) */ + SHORT, + /** 字节类型(8 位) */ + BYTE, + /** 单精度浮点数 */ + FLOAT, + /** 双精度浮点数 */ + DOUBLE, + /** 字符串类型 */ STRING, - - /** - * 空类型,通常用于无返回值的函数。 - */ + /** 空类型,通常用于无返回值的函数 */ VOID; /** diff --git a/test b/test index ea2cabf..d53221d 100644 --- a/test +++ b/test @@ -4,7 +4,7 @@ module: CommonTasks return num1 + num2 end body parameter: - declare num1: int + declare num1: double declare num2: int return_type: int end function