|  | 7fab3cc662 | feat: 检查全局变量重复声明 - 在 FunctionChecker 类中增加了对全局变量重复声明的检查
- 如果全局变量已经存在,则添加语义错误信息 | 2025-08-03 00:36:34 +08:00 |  | 
			
				
					|  | b7e9c8121e | refactor: 重构 RetCommand 并添加日志记录 - 更新导入语句,明确导入模块
- 使用 LoggingUtils 替代 System.out.println 输出日志
- 添加换行符改善日志可读性 | 2025-07-31 14:11:09 +08:00 |  | 
			
				
					|  | 466b6ca2be | refactor: 移除 VMCodeGenerator 中的冗余字段 - 删除了 VMCodeGenerator 类中不再使用的 currentFn 字段- 将 currentFn 作为局部变量在 generate 方法中使用
- 这个改动简化了类的结构,减少了冗余代码 | 2025-07-31 12:48:10 +08:00 |  | 
			
				
					|  | cadace165a | feat: 改进函数调用和模块处理机制 - 补充模块名以生成全限定函数名,增强模块间调用的准确性
- 重构 IRProgramBuilder 以更清晰地处理模块和函数
- 优化 VMCodeGenerator 和 VMProgramBuilder 以支持新的全限定名机制 | 2025-07-31 12:43:17 +08:00 |  | 
			
				
					|  | 1293ac1f83 | refactor: 优化数字字面量的语义分析与错误提示 - 重构了类型推断逻辑,支持更精确的类型判断
- 实现了智能的错误提示策略,根据不同情况给出具体建议
- 优化了范围校验逻辑,提高了代码的健壮性
- 改进了代码结构和注释,提高了可读性和可维护性 | 2025-07-31 00:26:44 +08:00 |  | 
			
				
					|  | fdeaa36366 | feat: 增强数字字面量的语义分析和错误提示 - 添加类型推断和范围校验逻辑,支持 byte、short、int、long、float 和 double 类型
- 实现溢出和格式错误的统一处理,提供详细的错误提示
- 优化代码结构,增加私有方法以提高可读性和可维护性 | 2025-07-30 12:03:41 +08:00 |  | 
			
				
					|  | 63835a1cce | refactor: 优化变量声明语句的处理逻辑 - 澄清变量声明语句的处理流程,特别是带有初始值的情况
- 引入新分配的虚拟寄存器,确保变量和初始值表达式中的变量物理上独立
- 优化类型设置和作用域声明的顺序,提高代码的可读性和维护性 | 2025-07-29 11:50:06 +08:00 |  | 
			
				
					|  | 7c0a5e2524 | docs: 优化 BreakStatementParser 类的文档注释 | 2025-07-29 11:23:01 +08:00 |  | 
			
				
					|  | 7395256b5a | feat: 添加 continue 语句支持 - 新增 ContinueNode、ContinueAnalyzer 和 ContinueStatementParser 类
- 在 AnalyzerRegistrar 中注册 continue 语句分析器
- 在 StatementBuilder 中添加 continue 语句的处理逻辑
- 更新 StatementParserFactory 和 TokenFactory 以支持 continue 关键字 | 2025-07-29 11:20:46 +08:00 |  | 
			
				
					|  | 187ec7e0e9 | Merge branch 'main' into dev # Conflicts:
#	.run/Demo1.run.xml
#	.run/Demo10.run.xml
#	.run/Demo11.run.xml
#	.run/Demo12.run.xml
#	.run/Demo13.run.xml
#	.run/Demo14.run.xml
#	.run/Demo2.run.xml
#	.run/Demo3.run.xml
#	.run/Demo4.run.xml
#	.run/Demo5.run.xml
#	.run/Demo6.run.xml
#	.run/Demo7.run.xml
#	.run/Demo8.run.xml
#	.run/Demo9.run.xml
#	src/main/java/org/jcnc/snow/pkg/tasks/CompileTask.java | 2025-07-29 09:21:03 +08:00 |  | 
			
				
					|  | 856d113b53 | feat: 添加 break 语句支持 - 新增 BreakNode、BreakAnalyzer 和 BreakStatementParser 类
- 在 AnalyzerRegistrar 中注册 break 语句分析器
- 在 ASTPrinter 中添加 break 语句的打印处理
- 在 StatementBuilder 中实现 break 语句的 IR 构建逻辑
- 更新 StatementParserFactory 和 TokenFactory,支持 break 关键字 | 2025-07-28 18:00:41 +08:00 |  | 
			
				
					|  | 9132c79c54 | feat: 添加整数和浮点数的取余运算指令 - 在 IROpCode枚举中添加了 MOD_B8、MOD_S16、MOD_I32、MOD_L64、MOD_F32 和 MOD_D64 指令
- 更新了 IROpCodeMapper 映射,增加了取余运算的后端指令
- 修改了 IROpCodeMappings 类,添加了取余运算符与 IR 操作码的映射 | 2025-07-28 17:11:25 +08:00 |  | 
			
				
					|  | 21ca6e6cab | feat: 支持模块全局变量声明 - 在 ModuleNode 中添加 globals 字段,用于存储全局变量声明
- 实现 globals 区块的解析逻辑,支持全局变量的声明
- 更新 ASTJsonSerializer 以支持全局变量的序列化
- 修改 FunctionChecker 和 IRProgramBuilder 以支持全局变量 | 2025-07-28 13:39:33 +08:00 |  | 
			
				
					|  | f5a6443c8a | refactor: 将调试标志从 -debug 改为 --debug | 2025-07-28 10:25:13 +08:00 |  | 
			
				
					|  | 210fdb62f0 | feat: 添加全局调试选项并更新相关功能 - 在 CLIUtils 中添加了全局调试标志集合,支持 "-debug" 和 "--debug" 选项
- 在 CompileTask 中更新了调试选项的处理逻辑,支持新的 "--debug" 标志
- 在 SnowCLI 中引入了 Mode 和 SnowConfig 类,以支持调试模式的配置 | 2025-07-24 12:36:56 +08:00 |  | 
			
				
					|  | b826fc43aa | chore:优化 Native Image 相关代码 - 移除 module-info.java 中对 org.graalvm.nativeimage 的直接引用
- 修改 VMUtils 中的 isNativeImage 方法,使用反射调用 ImageInfo | 2025-07-24 11:23:55 +08:00 |  | 
			
				
					|  | 1486a1e3a5 | docs: 更新 LocalVariableStore 类的注释 | 2025-07-23 10:49:34 +08:00 |  | 
			
				
					|  | 80deaa9c4f | feat: 添加对 GraalVM native-image 的支持 - 在 LocalVariableStore 中添加对 native-image环境的检测
- 在 VMUtils 中实现 isNativeImage 方法
- 更新 module-info.java,添加对 org.graalvm.nativeimage 的依赖
- 优化调试模式下的 UI 显示逻辑,避免在 native-image 环境中显示 Swing 窗口 | 2025-07-23 10:42:38 +08:00 |  | 
			
				
					|  | ebb9524db0 | refactor: 保留 cloud模式下的 "run" 和 "-debug" 标志 | 2025-07-23 10:24:49 +08:00 |  | 
			
				
					|  | 6f81feab3f | refactor: 重构虚拟机和编译器的调试输出逻辑 | 2025-07-22 22:34:15 +08:00 |  | 
			
				
					|  | da7fc0b046 | feat: 添加全局配置和调试输出工具类 - 新增 SnowConfig 类,用于统一设置程序运行模式
- 提供调试模式下的日志输出方法
- 支持判断当前运行模式 | 2025-07-22 22:33:50 +08:00 |  | 
			
				
					|  | 0dbe39eff3 | refactor: 重构枚举类并统一模式定义 - 新增 Mode 枚举类,用于统一定义程序的运行和调试模式- 删除 VMMode 枚举类,使用新的 Mode 枚举替代
- 通过重构简化代码结构,提高代码可维护性 | 2025-07-22 22:33:41 +08:00 |  | 
			
				
					|  | 1605390f08 | fix: 修复函数末尾 CALL 指令的未解析符号问题 - 在函数开始时登记函数入口地址
- 在函数末尾强制添加 RET 或 HALT 指令
- 优化了代码注释和格式 | 2025-07-22 16:37:53 +08:00 |  | 
			
				
					|  | 70feb1fe5e | style: 优化 RetCommand 类的输出格式 | 2025-07-22 16:36:23 +08:00 |  | 
			
				
					|  | 07b7d5c40e | refactor: 优化程序终止和函数调用的输出格式 - 在 CallCommand 中添加换行符,改善函数调用的输出可读性
- 修改 HaltCommand 中的终止消息格式,提高信息的清晰度 | 2025-07-22 16:35:43 +08:00 |  | 
			
				
					|  | 6d79e28c51 | refactor: 重构 SyscallCommand 类并优化文档注释- 重新组织类结构,优化代码布局 - 更新文档注释,使其更加清晰和详细
- 优化部分方法实现,提高可读性和可维护性 | 2025-07-21 23:42:03 +08:00 |  | 
			
				
					|  | b30b6aeaaa | feat: 添加引用类型控制指令 - 新增 R_PUSH、R_LOAD 和 R_STORE 指令,用于处理对象引用类型
- 这些指令分别用于推送、加载和存储对象引用到操作栈或本地变量表 | 2025-07-21 17:26:42 +08:00 |  | 
			
				
					|  | 33d89e9908 | feat: 添加 R_STORE指令的实现 - 新增 RStoreCommand 类,实现 Command接口
- 添加 R_STORE指令的执行逻辑
- 更新虚拟机的指令集,支持 R_STORE 指令 | 2025-07-21 17:24:57 +08:00 |  | 
			
				
					|  | 5ef36d5700 | feat: 添加 R_PUSH指令类 - 新增 RPushCommand 类实现 Command 接口,用于处理引用类型推入操作
- 支持将字符串字面量等引用类型数据推入操作栈 | 2025-07-21 17:23:43 +08:00 |  | 
			
				
					|  | a7117717bd | refactor: 更新命令工厂中的引用命令路径 - 将 RLoadCommand、RPushCommand 和 RStoreCommand 的导入路径从 type.control.ref 改为 ref.control
- 这个改动统一了引用类型命令的包结构,与其他类型命令保持一致 | 2025-07-21 17:19:05 +08:00 |  | 
			
				
					|  | 6098a290b1 | feat: 添加 R_LOAD指令的实现 - 新增 RLoadCommand 类,实现 Command接口
- 该指令用于从局部变量表中加载引用对象,并将其推入操作数栈- 指令格式:R_LOAD <slot>
- 其中 <slot> 是局部变量表中的索引
- 执行过程包括解析索引、获取引用、推入栈顶和更新程序计数器 | 2025-07-21 17:18:30 +08:00 |  | 
			
				
					|  | e7c7451004 | refactor: 重构 CallCommand 类并优化文档注释 - 重新组织类文档,增加对 CallCommand 功能和行为的详细描述
- 添加 execute 方法的详细注释,明确参数和返回值的用途
- 优化代码结构,提高可读性和可维护性 | 2025-07-21 17:17:10 +08:00 |  | 
			
				
					|  | 8eeed6f6b9 | refactor: 调整操作数栈打印格式 - 在操作数栈状态打印时,增加空行以提高可读性 | 2025-07-21 17:10:20 +08:00 |  | 
			
				
					|  | 6a339149f1 | feat: 增强 LoadConstGenerator 功能并优化代码结构 - 优化类注释,明确类的功能和额外支持的特性
- 重构 generate 方法,提高代码可读性和维护性- 增加对字符串常量的处理,支持 syscall 降级场景
- 完善类型前缀处理,增加 'R' 前缀用于字符串常量 | 2025-07-21 17:09:26 +08:00 |  | 
			
				
					|  | 3aef7cd906 | refactor: 重构 ExpressionBuilder 类 - 优化了代码结构,提高了代码的可读性和可维护性
- 添加了详细的注释,解释了各个方法的功能和实现细节
- 改进了对不同表达式类型的处理逻辑,增强了表达式构建的能力
- 优化了寄存器的使用和管理,提高了 IR 指令生成的效率 | 2025-07-21 17:06:40 +08:00 |  | 
			
				
					|  | 970976ecc5 | feat: 添加 VM退出时的提示信息 - 在 VMLauncher 启动后增加提示信息 "=== Launching VM ==="
- 在 VM 退出后增加提示信息 "=== VM exited ===" | 2025-07-21 16:57:50 +08:00 |  | 
			
				
					|  | 7a52c7dd78 | feat: 支持 syscall 调用的 VM指令生成 - 新增对 syscall 调用的特殊处理逻辑
- 支持 IRConstant 直接字面量和虚拟寄存器绑定的字符串常量作为 syscall 子命令
- 实现了 syscall 调用中参数压栈和 SYSCALL指令生成的逻辑
-优化了普通函数调用的指令生成流程 | 2025-07-21 16:56:18 +08:00 |  | 
			
				
					|  | fec9fe3527 | refactor: 重构 BuiltinTypeRegistry 类并优化文档注释 - 重新整理基础类型表,添加 boolean 类型
- 优化文档注释,增加类和方法的详细描述
- 改进代码结构,提高可读性和可维护性 | 2025-07-21 16:51:30 +08:00 |  | 
			
				
					|  | 2cb428ed9b | feat: 新增引用控制命令 - 添加 RPushCommand、RLoadCommand 和 RStoreCommand 三个引用控制命令类
- 在 CommandFactory 中注册这三个命令 | 2025-07-21 16:48:50 +08:00 |  | 
			
				
					|  | c6067a8758 | feat: 增加引用类型常量支持并优化反码映射 - 在 OPCODE_MAP 中添加 R_PUSH、R_LOAD 和 R_STORE 指令- 优化反码映射逻辑,支持十六进制表示的指令码
- 在 getConstType 方法中增加对 String 类型的支持 | 2025-07-21 16:46:34 +08:00 |  | 
			
				
					|  | 3aa38027c8 | feat: 添加对字符串字面量的支持 - 在 ExpressionBuilder 类中增加了处理字符串字面量的逻辑
- 新增 buildStringLiteral 方法用于生成字符串常量寄存器
- 更新了 build 方法的 switch 语句,支持 StringLiteralNode 类型
- 优化了代码结构,提高了可读性和可维护性 | 2025-07-20 20:45:17 +08:00 |  | 
			
				
					|  | b332c76ef8 | feat: 增加自动导入模块函数调用支持 - 实现了在当前模块未找到目标函数时,自动遍历所有已导入模块寻找唯一同名函数的功能
- 如果多个导入模块含有同名函数,会报错提示函数调用不明确
- 这个改动扩展了函数调用的范围,提高了代码的灵活性和可复用性 | 2025-07-20 20:14:52 +08:00 |  | 
			
				
					|  | 983a287c42 | refactor: 更新 BuiltinUtils 中 syscall 函数的参数类型 - 移除了 BuiltinUtils 中的 print 和 println函数
- 将 syscall 函数的第二个参数类型从 STRING 改为 INT | 2025-07-20 20:14:12 +08:00 |  | 
			
				
					|  | 64cefebee5 | feat: 实现 BuiltinUtils 标准库并更新相关机制 - 重构 BuiltinTypeRegistry 类,扩展内置类型和模块的注册功能
- 新增 BuiltinUtils 标准库模块,提供 print 和 println 函数
- 实现 syscall 内核函数,供 BuiltinUtils 内部使用
- 更新测试用例,添加 Demo14 项目以验证新功能 | 2025-07-19 17:04:49 +08:00 |  | 
			
				
					|  | 4e3de185b8 | refactor:重构 PRINT 和 PRINTLN 功能并优化输出方法 - 重构了 PRINT 和 PRINTLN 指令的实现,支持更多数据类型输出
- 新增通用的 output辅助方法,统一处理各种类型的输出
- 扩展了输出功能,支持基本类型、数组和任意对象的打印
- 优化了代码结构,提高了可读性和可维护性 | 2025-07-19 00:09:17 +08:00 |  | 
			
				
					|  | 8ec5120e54 | docs: 更新子命令支持状态 - 移除 PRINT / PRINTLN 命令的 TODO 注释
- 修正其它自定义 syscall 子命令的 TODO 注释 | 2025-07-18 23:33:13 +08:00 |  | 
			
				
					|  | dad69eabfb | feat(vm): 实现 UNIX风格的文件描述符 I/O 操作 - 新增 FDTable 类,用于管理文件描述符和 NIO Channel 的映射
- 重构 SyscallCommand 类,实现多个 I/O 相关的 syscall 子命令
- 支持文件操作(open、close、read、write、seek)、管道、网络套接字、I/O 多路复用等功能
- 优化异常处理机制,统一处理 syscall内部异常 | 2025-07-18 18:06:19 +08:00 |  | 
			
				
					|  | c388edd0cf | Merge branch 'feature/optimize-lexical-error-messages' into feature/add-naitve-print | 2025-07-18 11:40:56 +08:00 |  | 
			
				
					| 
							
							
								 zhangxun | 3dd06261e2 | refactor: 移除对浮点数字面量后缀 D 的支持 | 2025-07-18 11:15:35 +08:00 |  | 
			
				
					| 
							
							
								 zhangxun | 901d2f842a | fix: 数值字面量后紧挨着标识符时,报错信息输出完整标识符 | 2025-07-18 11:03:21 +08:00 |  |