551 Commits

Author SHA1 Message Date
c334dd3e28
!46 feat: loop 循环实现了 break 关键字的支持
Merge pull request !46 from Luke/feature/add-break-operator
2025-07-29 01:17:42 +00:00
5b15b2d170
!45 feat: 编译器补齐对 取模运算符 % 的完整支持
Merge pull request !45 from Luke/feature/add-mod-operator
2025-07-29 01:17:32 +00:00
21e4668b16 chore: 更新测试配置文件 2025-07-28 18:02:36 +08:00
5b8d7b98f3 chore: 更新 Demo16 和 Demo17 的运行配置 2025-07-28 18:01:41 +08:00
63e8b0163a test: 添加 Demo17 2025-07-28 18:01:06 +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
0cb2132e80 chore: 添加 Demo16运行配置 2025-07-28 17:35:49 +08:00
83b2122bd7 test: 添加 Demo16 2025-07-28 17:35:38 +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
12fc14e6e7
!44 feat: 实现 globals 关键字
Merge pull request !44 from Luke/feature/add-globals-keyword
2025-07-28 07:26:34 +00:00
52d811b6aa test: 更新 Demo15 文件 2025-07-28 15:25:09 +08:00
e0ad945202 test: 更新 Demo15 文件 2025-07-28 13:43:27 +08:00
2e4b76dfe2 chore: 更新测试配置文件
- 在测试配置文件中添加了 Demo14 和 Demo15 两个新的测试用例
2025-07-28 13:42:22 +08:00
9fb2dfae51 chore: 在 Demo 运行配置中添加 --debug 参数
- 在所有 Demo 示例的 run.xml 文件中添加 --debug 参数
- 此修改有助于在调试时提供更多详细信息
2025-07-28 13:39:55 +08:00
21ca6e6cab feat: 支持模块全局变量声明
- 在 ModuleNode 中添加 globals 字段,用于存储全局变量声明
- 实现 globals 区块的解析逻辑,支持全局变量的声明
- 更新 ASTJsonSerializer 以支持全局变量的序列化
- 修改 FunctionChecker 和 IRProgramBuilder 以支持全局变量
2025-07-28 13:39:33 +08:00
421eb0a0d9 chore: 修正 Debug 参数格式 2025-07-28 10:26:18 +08:00
f5a6443c8a refactor: 将调试标志从 -debug 改为 --debug 2025-07-28 10:25:13 +08:00
8d992001f9 chore: 添加 Demo15运行配置文件 2025-07-28 10:00:41 +08:00
4081d7d928 chore: 移除代码覆盖率配置 2025-07-28 10:00:30 +08:00
16a5d8d6ac test: 添加 Demo15 项目 2025-07-28 09:56:09 +08:00
9a4ebaadce
!43 release: 合并 v0.5.0 版本至 main 分支
Merge pull request !43 from Luke/release/v0.5.0
v0.5.0
2025-07-24 14:33:19 +00:00
a86fb4826d docs: 更新操作码文档结构和内容
- 添加新的 Reference Control 分类
- 更新各分类的名称和描述,使其更加清晰
2025-07-24 13:31:34 +08:00
589b0a96b9 docs: 在 README 中添加支持我们的章节 2025-07-24 13:04:08 +08:00
f81dba0210 docs:优化 README 中语言特性描述
- 移除了代码关键字的 Markdown 格式加粗,保持一致性
2025-07-24 13:00:52 +08:00
688d6d7393 docs: 更新文档内容
- 移除加粗样式
- 更新 CLI 命令列表,增加 debug 命令
- 添加词法分析和语义分析的示例输出
- 调整编译流程和命令选项的描述
2025-07-24 12:59:26 +08:00
34e5de0454 chore: 在 Demo14运行配置中添加调试参数
- 在 Demo14.run.xml 文件中添加了 -debug 参数到 PROGRAM_PARAMETERS 选项
- 此修改便于在运行 Demo14 时进行调试
2025-07-24 12:45:01 +08:00
210fdb62f0 feat: 添加全局调试选项并更新相关功能
- 在 CLIUtils 中添加了全局调试标志集合,支持 "-debug" 和 "--debug" 选项
- 在 CompileTask 中更新了调试选项的处理逻辑,支持新的 "--debug" 标志
- 在 SnowCLI 中引入了 Mode 和 SnowConfig 类,以支持调试模式的配置
2025-07-24 12:36:56 +08:00
ebc322668e chore: 更新运行配置并添加新配置 2025-07-24 12:36:28 +08:00
4860aba07f chore: 更新项目版本至 v0.5.0
- 修改 pom.xml 中的版本号为 0.5.0
- 更新 README.md 中的版本徽章为 v0.5.0
- 在 issue 模板中更新软件版本选项,将 v0.4.2 替换为 v0.5.0
2025-07-24 11:32:51 +08:00
b826fc43aa chore:优化 Native Image 相关代码
- 移除 module-info.java 中对 org.graalvm.nativeimage 的直接引用
- 修改 VMUtils 中的 isNativeImage 方法,使用反射调用 ImageInfo
2025-07-24 11:23:55 +08:00
f777841937 chore: 更新运行配置并移除代码覆盖率设置
- 在所有 Demo 运行配置中添加 -debug 参数
- 移除所有 Demo 运行配置中的代码覆盖率设置
2025-07-24 11:13:41 +08:00
4ccff72a5b
!42 refactor: 重构虚拟机和编译器的调试输出逻辑并且增加debug参数
Merge pull request !42 from Luke/feature/add-debug-mod
2025-07-23 13:51:38 +00:00
e788e9c437
!41 feat: 核心引擎与标准库重构及功能增强
Merge pull request !41 from Luke/feature/add-naitve-print
2025-07-23 13:51:26 +00: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
e84aedc100 test: 修改模块名称为小写 2025-07-21 23:13:50 +08:00
074f0b6809 chore: 添加库函数实现打印功能 2025-07-21 22:54:49 +08:00
a454eed26f test: 重构 Demo14 演示代码
- 移除了 Main.snow 文件中的直接系统调用
- 新增 OS.snow 文件,实现 print 函数封装
- 修改 Main.snow,使用新的 print 函数替代系统调用
2025-07-21 22:52:40 +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