|
|
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 |
|
|
|
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 |
|
|
|
b4c933e3d4
|
test: 更新 Demo14 示例程序
- 修改导入模块,使用 os 模块替代 BuiltinUtils
- 更新 syscall 调用,增加表达式计算
|
2025-07-21 17:10:42 +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 |
|
|
|
b8c57b6c49
|
test: 修改示例代码
|
2025-07-20 20:15:07 +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 |
|
|
|
72982c1127
|
chore: 添加 Demo14运行配置
|
2025-07-20 18:48:54 +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
|
6fb24f3f2f
|
test: 修改 Demo13 以支持新版语法(移除对字面量 D 的支持)
|
2025-07-18 11:17:00 +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 |
|
zhangxun
|
e2d4f97d75
|
docs: 移除默认整数和浮点数的后缀
|
2025-07-18 10:43:55 +08:00 |
|
zhangxun
|
f44fc18c52
|
docs: Snow-Lang 语法规范不能跳转的问题
|
2025-07-18 02:36:32 +00:00 |
|
|
|
08cfc1ffb9
|
test: 修改 Bug1
|
2025-07-17 17:06:39 +08:00 |
|
|
|
59aef0c661
|
feat: 添加 SYSCALL 操作码的详细注释并移除未使用的 DEBUG_TRAP 操作码
- 为 SYSCALL 操作码添加了详细的注释,说明了其执行步骤和实现类- 注释掉了未使用的 DEBUG_TRAP 操作码
- 引入了 SyscallCommand 类以实现 SYSCALL 操作码的功能
|
2025-07-17 17:05:48 +08:00 |
|
|
|
23c6de3601
|
feat: 添加 SyscallCommand 类实现系统调用功能
- 新增 SyscallCommand 类,用于处理系统调用命令(opcode =0x0401)
|
2025-07-17 17:04:38 +08:00 |
|
|
|
bf9190dec6
|
refactor: 移除调试用指令 DEBUG_TRAP
移除了 OpHelper 类中 DEBUG_TRAP 指令的映射,以减少不必要的代码。这个修改对现有的功能没有影响,只是为了简化代码结构。
|
2025-07-17 17:04:12 +08:00 |
|
|
|
3758e3da40
|
feat: 添加 SyscallCommand 实现
- 在 CommandFactory 中为 VMOpCode.SYSCALL 添加了 SyscallCommand 实现
- 解除了对 SYSCALL 命令的注释,使其可以被使用
|
2025-07-17 17:03:49 +08:00 |
|
|
|
bfcfcbb107
|
refactor: 优化字符串扫描器代码
- 移除了类 StringTokenScanner 中的作者和年份信息
- 删除了冗余的代码注释,提高了代码的可读性和维护性
|
2025-07-17 15:25:25 +08:00 |
|
|
|
e6ad4ff282
|
refactor: 重构字符串扫描器实现
- 优化了 StringTokenScanner 类的文档注释,增加了状态机说明
-重新组织了代码结构,提高了可读性和可维护性
- 添加了对未闭合字符串的处理逻辑,增强了健壮性
- 优化了状态机实现,保证了字符串解析的准确性
|
2025-07-17 15:24:46 +08:00 |
|
|
|
5f0931155d
|
Merge remote-tracking branch 'gitee/feature/optimize-lexical-error-messages' into feature/optimize-lexical-error-messages
|
2025-07-17 15:23:46 +08:00 |
|
|
|
e4c6faf923
|
docs: 更新构造函数重载示例
- 删除了示例代码中的多余空行
- 修正了示例代码的格式问题
|
2025-07-17 15:22:58 +08:00 |
|
|
|
593930ccfc
|
docs: 更新 Snow-Lang 语法规范文档链接
- 移除了文档链接末尾的 ".md" 后缀
- 统一文档链接格式,与其他文档链接保持一致
|
2025-07-17 15:22:58 +08:00 |
|
|
|
7f09b0e501
|
refactor: 移除 OperatorTokenScanner 中的冗余状态管理
- 删除了未使用的 State 枚举类
- 移除了冗余的 currentState 变量和相关逻辑
- 简化了代码结构,提高了代码可读性
|
2025-07-17 15:22:57 +08:00 |
|
|
|
9acb52a7e1
|
docs: 更新构造函数重载示例
- 删除了示例代码中的多余空行
- 修正了示例代码的格式问题
|
2025-07-17 15:22:15 +08:00 |
|
|
|
5c6f61f25a
|
docs: 更新 Snow-Lang 语法规范文档链接
- 移除了文档链接末尾的 ".md" 后缀
- 统一文档链接格式,与其他文档链接保持一致
|
2025-07-17 15:09:48 +08:00 |
|
|
|
f185b12620
|
refactor(compiler): 移除 OperatorTokenScanner 中的冗余状态管理
- 删除了未使用的 State 枚举类
- 移除了冗余的 currentState 变量和相关逻辑
- 简化了代码结构,提高了代码可读性
|
2025-07-17 15:09:02 +08:00 |
|
|
|
d0e8cee6bd
|
feat: 支持数字字面量中的下划线分隔符
- 增加了对数字中下划线的处理逻辑
- 添加了防止下划线连续出现、以下划线开头或结尾的校验
- 优化了小数部分的下划线检查
- 修复了数字后紧跟下划线的错误处理
- 最后返回的数字字面量中将移除所有的下划线
|
2025-07-17 11:47:19 +08:00 |
|
|
|
ac5b73e320
|
feat: 适配 Windows 换行符
- 修改 NewlineTokenScanner 以支持 \r\n 换行符
- 增加对 \r 换行符的处理
- 优化 scanToken 方法,兼容不同操作系统换行符
|
2025-07-17 11:27:03 +08:00 |
|