489 Commits

Author SHA1 Message Date
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
6f21cec444
!40 refactor: 优化和重构字符串扫描器,完善词法分析功能
Merge pull request !40 from Luke/feature/optimize-lexical-error-messages
2025-07-18 03:41:42 +00: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
69b4a418ba refactor: 优化词法分析器引擎代码
- 格式化代码,提高可读性
- 修改错误消息构造方式,简化为接收完整消息字符串- 更新注释,准备后续具体功能改动
2025-07-17 11:18:35 +08:00
2093201173 test: 修改为最新的bug 2025-07-17 00:04:16 +08:00
268f1aa09a refactor: 简化词法异常错误信息
- 移除了错误信息中的"词法错误:"前缀,使信息更加简洁
- 保留了非法字符序列和位置信息,确保错误定位准确
2025-07-16 23:52:22 +08:00
cc106f57e1 refactor: 优化编译流程,词法分析有错误时立即终止
- 在语法分析之前增加对词法分析错误的检查
- 若词法阶段存在错误,立即终止编译,避免进入后续的语法及语义分析
- 这种优化可以减少不必要的计算,提高编译效率
2025-07-16 23:37:15 +08:00
93a553ea93 fix: 修复数字和标识符区分错误
- 新增 skipInvalidLexeme 方法,用于跳过无效的标识符和数字字符
- 修改错误处理逻辑,遇到词法错误时调用 skipInvalidLexeme 方法
2025-07-16 23:16:12 +08:00
f23e15339c refactor: 删除了 LexicalException 类中的冗余空行 2025-07-16 22:21:56 +08:00
2be4848735 refactor: 移除词法分析中的异常抛出 2025-07-16 22:21:41 +08:00
c4d9be8403 fix: 修复数字字面量解析中的错误处理
- 增加对数字后紧跟未知标识符的错误处理
- 增加对数字后紧跟下划线的错误处理
- 优化数字类型后缀的处理逻辑,防止多字符后缀
2025-07-16 22:14:40 +08:00
4a26bd50ca refactor: 优化词法分析错误输出格式
-将错误信息前的缩进从两个空格改为一个制表符,提高可读性
2025-07-16 21:34:11 +08:00
e931d9ec06 style:优化代码格式和注释 2025-07-16 21:31:07 +08:00
f540d7fad5 refactor: 移除词法异常中的错误消息 2025-07-16 18:00:38 +08:00
3d35e81a97 refactor: 优化词法错误异常信息格式
- 修改了 LexicalException 类中错误信息的显示格式
- 新格式:文件名 + "行 " +行号 + ", 列 " + 列号 + ": " +错误类型 + ": " +详细信息
- 旧格式:文件名 + ":" + 行号 + ":" + 列号 + ": " + 错误类型 + " '" + 详细信息 + "'"
2025-07-16 11:26:12 +08:00
f6382c4ccd refactor(compiler): 修改词法错误信息为中文
- 将 LexicalException 类中的英文错误信息改为中文
- 例:将 "Lexical error: Illegal character sequence '@' at 2:19" 改为 "词法错误:非法字符序列 '@' at2:19"
2025-07-16 10:57:44 +08:00
cd64137148 refactor: 优化词法异常的错误信息提示
- 将英文错误信息改为中文,提高用户的可读性和理解度
2025-07-16 10:57:29 +08:00
eae66eac8c docs: 优化 LexicalError 类的文档注释
- 为 LexicalError 类添加详细的类文档注释,说明其用途
- 为所有字段和构造方法添加规范的参数注释
- 优化 toString 方法的注释,明确其返回值内容
2025-07-16 10:57:13 +08:00
85d3b129ae
!39 refactor: 重构循环语句解析器
Merge pull request !39 from Luke/feature/optimize-the-loop
2025-07-16 02:15:15 +00:00
zhangxun
3b168a134a fix: 对齐 ASTPrinter 中 loop 的输出(cond 和 step) 2025-07-16 09:23:49 +08:00
zhangxun
59fdc6b39e docs: 对齐注释 2025-07-16 09:22:26 +08:00
2a31d57a53 chore: 删除规则文件说明 2025-07-15 22:18:35 +08:00