|
|
4b633bae70
|
feat: 丰富 IRConstant 类功能
- 添加通用工厂方法 fromObject
- 实现数字字面量解析方法 fromNumber
- 增加字符串和布尔字面量工厂方法
- 改进 toString 方法,提供调试友好的输出
|
2025-08-29 17:45:17 +08:00 |
|
|
|
8f59f91766
|
feat: 维护结构体字段布局的全局静态表
- 新增 STRUCT_LAYOUTS静态字段,用于存储结构体字段布局
- 添加 registerStructLayout 方法,注册结构体字段布局
- 实现 lookupFieldIndex 和 getStructLayout 方法,用于查询字段布局
- 优化跨模块常量导入和查询逻辑
- 重构部分代码,提高可读性和维护性
|
2025-08-29 17:43:29 +08:00 |
|
|
|
37c03cf248
|
test: 修改 Demo28
|
2025-08-29 17:41:52 +08:00 |
|
|
|
a8f1789fe0
|
chore: 修改测试配置
|
2025-08-29 17:41:23 +08:00 |
|
|
|
cdfcbf0d6f
|
refactor: 重构函数语义检查器并增强错误提示
- 重构 FunctionChecker 类,优化函数体语义检查流程- 增加全局符号表构建和局部变量声明的详细注释
- 改进错误提示信息,提高代码可读性和可维护性
|
2025-08-29 17:40:45 +08:00 |
|
|
|
b56824d935
|
feat: 支持以 'this' 开头的表达式并优化赋值语句解析
- 允许 'this'作为表达式起始,支持 'this.xxx' 形式的赋值
- 优化赋值语句解析逻辑,支持更复杂的左值表达式
- 新增对 'this' 成员赋值的特殊处理,降级为普通变量赋值
- 改进错误处理,对不支持的赋值左值类型抛出异常
|
2025-08-29 17:38:55 +08:00 |
|
|
|
2dd5e64c3a
|
feat: 支持以 'this' 开头的表达式并优化赋值语句解析
- 允许 'this'作为表达式起始,支持 'this.xxx' 形式的赋值
- 优化赋值语句解析逻辑,支持更复杂的左值表达式
- 新增对 'this' 成员赋值的特殊处理,降级为普通变量赋值
- 改进错误处理,对不支持的赋值左值类型抛出异常
|
2025-08-29 17:35:04 +08:00 |
|
|
|
5b259a01d8
|
feat: 支持 new 表达式并优化成员访问
- 新增对 new 表达式(如 new Array())的支持,实现数组/对象的动态创建
- 优化成员访问表达式处理,支持字段回退机制
- 重构标识符解析逻辑,提高变量查找效率
-改进函数调用表达式处理,支持更多调用场景
|
2025-08-29 17:30:39 +08:00 |
|
|
|
82578880ae
|
chore: 在 Demo22运行配置中添加 --debug 参数
|
2025-08-29 17:16:24 +08:00 |
|
|
|
fb441c01af
|
feat: 增强变量声明语句解析功能
- 支持类型标识符与自定义结构体名
- 支持带初始值的声明
- 增加对常量声明的支持(使用 const 关键字)
- 优化错误处理,提高语法错误提示的准确性
|
2025-08-29 17:16:14 +08:00 |
|
|
|
1a34e3e436
|
refactor: 重构语义分析上下文类
- 优化 Context 类的结构和功能,提高可读性和可维护性- 添加当前模块名管理方法,增强模块作用域支持
- 改进类型解析方法,支持更复杂的类型查找逻辑
- 统一错误收集和日志输出接口
|
2025-08-29 17:02:14 +08:00 |
|
|
|
4a64659856
|
refactor: 重构编译任务代码
- 将类 CompileTask 改为记录类型,简化构造方法和成员变量定义
- 优化代码结构,按功能分块组织代码
- 改进注释,增加代码可读性
- 简化部分变量和方法名,提高代码清晰度
|
2025-08-29 16:56:29 +08:00 |
|
|
|
325ca67872
|
refactor: 重构代码以提高可读性和可维护性
- 优化了方法结构,减少了冗余代码
- 提高了错误提示的详细程度
- 增加了类型前缀处理方法,简化了类型判断逻辑
- 调整了参数加载逻辑,提高了代码复用性
|
2025-08-29 15:46:57 +08:00 |
|
|
|
86a78bd1c6
|
feat: 增强函数调用表达式的语义分析
- 支持三种函数调用形式:模块函数调用、结构体实例方法调用、普通函数调用
- 增加对结构体方法调用的支持
- 优化模块和函数解析逻辑
- 增强错误处理,包括对私有函数访问控制的检查
- 代码注释和文档进行了详细补充,以提高可读性和可维护性
|
2025-08-29 15:26:39 +08:00 |
|
|
|
50f4fbb82d
|
feat: 添加对结构体节点的打印支持
- 增加了对 StructNode 类型的处理逻辑
- 打印结构体名称、字段、初始化函数和方法
- 优化了打印结构体信息的输出格式
|
2025-08-29 15:23:21 +08:00 |
|
|
|
3dd71ff742
|
feat: 添加 Struct 节点的序列化支持
- 在 ModuleNode 中添加 structs 字段,支持结构体定义的序列化
- 新增 StructNode 处理逻辑,实现结构体节点的序列化
- 为结构体添加字段、初始化方法和成员方法的序列化支持
|
2025-08-29 15:22:42 +08:00 |
|
|
|
8fce695e8f
|
feat: 添加了 NewExpressionNode 的分析器注册
|
2025-08-29 15:10:54 +08:00 |
|
|
|
45a13fd15e
|
refactor: 去掉token打印
|
2025-08-29 09:40:42 +08:00 |
|
|
|
e758b7ad86
|
test: 修复 getName 方法并优化代码结构
|
2025-08-29 01:56:25 +08:00 |
|
|
|
df2fb3a7f4
|
chore: 添加 Demo28运行配置
|
2025-08-28 18:16:02 +08:00 |
|
|
|
35bf118abc
|
test: 删除多余的空行并优化代码格式
|
2025-08-28 18:15:54 +08:00 |
|
|
|
df4997600b
|
chore: 添加 Demo27运行配置
|
2025-08-28 18:15:33 +08:00 |
|
|
|
306f6f91e1
|
test: 增加 Demo27 示例代码
|
2025-08-28 18:01:04 +08:00 |
|
|
|
f75af0dc9b
|
test: 重构 Demo27 模块的示例代码
|
2025-08-28 17:47:46 +08:00 |
|
|
|
3583e9c67c
|
test: 面向对象的初步示例代码
|
2025-08-27 22:59:02 +08:00 |
|
|
|
7b6e9fa3f0
|
test: 添加 Demo27
|
2025-08-27 22:21:27 +08:00 |
|
|
|
5b3d807bbc
|
!67 release: 合并 v0.8.0 版本至 main 分支
Merge pull request !67 from Luke/release/v0.8.0
v0.8.0
|
2025-08-27 07:44:23 +00:00 |
|
|
|
44b2ebb64a
|
chore: 优化多平台打包
|
2025-08-27 15:24:58 +08:00 |
|
|
|
eb7e2e7e93
|
chore: 更新项目版本至 0.8.0
- 修改 .env 文件中的 SNOW_VERSION 从 0.7.0 到 0.8.0
- 更新 Gitee 问题模板中的软件版本选项
- 修改 pom.xml 中的项目版本号
- 更新 README.md 中的项目版本徽章链接
|
2025-08-27 14:52:30 +08:00 |
|
|
|
77eddb83f4
|
!65 enhancement: 支持字符串转义与 Unicode
Merge pull request !65 from Luke/feature/add-escape-characters
|
2025-08-27 03:17:00 +00:00 |
|
|
|
4181ff8ae2
|
refactor: 移除 StringEscape 类中未使用的 escape 方法
- 删除了 StringEscape 类中的 escape 方法,该方法用于将普通字符串编码为可安全存储的转义字符串
- 保留了unescape方法,并简化了其文档注释
|
2025-08-27 10:44:44 +08:00 |
|
|
|
49b5e61e8e
|
feat: 增加字符串字面量的转义符和 Unicode 转义解析
- 引入 StringEscape 工具类用于字符串转义
- 在解析字符串字面量时,去除首尾引号
- 对字符串内部内容进行转义符和 Unicode 转义解析
|
2025-08-27 10:43:34 +08:00 |
|
|
|
e75a60026d
|
test: 新增 Demo26 演示程序
|
2025-08-27 10:42:11 +08:00 |
|
|
|
83eb29fa3c
|
chore: 更新测试配置文件
- 在测试配置文件中添加了 Demo21、Demo22、Demo23、Demo24 和 Demo25 应用
|
2025-08-27 10:41:34 +08:00 |
|
|
|
bc512fd02d
|
feat: 添加字符串转义/反转义工具类
- 新增 StringEscape 类,提供编译期和运行期的字符串转义/反转义功能
- 支持常见控制字符、特殊字符和 Unicode 字符的转义/反转义
- 适用于 .water指令文件的保存和虚拟机执行时的字符串还原
|
2025-08-27 10:41:19 +08:00 |
|
|
|
0bbd82e9ce
|
chore: 删除 Run 配置文件
|
2025-08-27 10:39:28 +08:00 |
|
|
|
2fc2a93414
|
feat: 增强引用推送指令功能
- 支持字符串字面量和数组字面量的解析
- 添加对不同数据类型(如浮点数、长整型等)的解析支持
- 优化了代码结构,提高了可读性和可维护性
- 增加了对 Unicode 逃逸序列的支持
- 添加了详细的类和方法注释,提高了文档质量
|
2025-08-27 10:39:21 +08:00 |
|
|
|
9bdc6245bf
|
fix: 修复字符串常量在 VM 代码中的表示问题
- 在 LoadConstGenerator 中添加字符串转义功能,确保字符串常量在 VM 代码中正确表示
- 优化 formatConst 方法,对字符串常量进行转义处理
- 新增 escape 方法,用于字符串转义,包括控制字符和非 ASCII 字符的处理
|
2025-08-27 10:35:23 +08:00 |
|
|
|
16ba11c391
|
!64 feature: 实现私有函数(下划线开头仅限本模块访问)语义检查
Merge pull request !64 from Luke/feature/add-function-access-control
|
2025-08-26 10:12:30 +00:00 |
|
|
|
19e473e93c
|
chore: 添加 Demo25运行配置
|
2025-08-26 18:09:15 +08:00 |
|
|
|
5537a448e8
|
test: 添加 Demo25 示例项目
|
2025-08-26 18:09:01 +08:00 |
|
|
|
caa62b0bfb
|
feat: 增加模块私有函数访问控制
- 新增规则:以"_"开头的函数名只允许在本模块访问,禁止跨模块访问
- 在 CallExpressionAnalyzer 中实现该规则的检查逻辑
|
2025-08-26 18:08:46 +08:00 |
|
|
|
3595631e2c
|
!63 feat: 增强语义分析与全局常量处理
Merge pull request !63 from Luke/feature/add-constant
|
2025-08-26 09:31:01 +00:00 |
|
|
|
b033d53d28
|
test: Demo24 增加更多测试用例
|
2025-08-26 17:30:15 +08:00 |
|
|
|
8eda4fcbce
|
chore: 修改 Demo24 配置文件
|
2025-08-26 17:29:51 +08:00 |
|
|
|
b02af0728a
|
test: 修改 Demo24
|
2025-08-26 16:59:25 +08:00 |
|
|
|
b058ee4526
|
refactor: 优化全局变量处理和常量折叠逻辑
- 过滤与函数参数重名的全局声明,避免命名冲突
- 优化常量折叠逻辑,支持跨模块常量优化- 修复字符串字面量和布尔字面量的处理
- 优化代码结构,提高可读性和可维护性
|
2025-08-26 16:29:29 +08:00 |
|
|
|
71cbb3a737
|
test: 增加 Demo 24
|
2025-08-26 16:22:53 +08:00 |
|
|
|
ac0d3b9785
|
chore: 添加 Demo23 和 Demo24 的运行配置文件
|
2025-08-26 16:22:28 +08:00 |
|
|
|
f69dd85365
|
test: 增加 Demo23
|
2025-08-26 14:40:45 +08:00 |
|