|
|
35fdb25d27
|
feat: 实现数组自动扩容功能
- 在 SyscallCommand 类中的列表操作中增加了自动扩容逻辑
- 当访问的索引超过当前列表大小时,自动将列表大小扩展到该索引
- 这种实现允许在 append操作时直接使用 set 方法,而不需要额外判断
|
2025-08-29 18:24:39 +08:00 |
|
|
|
0c2a888e86
|
feat: 新增关键字支持
- 在 TokenFactory 类中添加了关键字 "new" 的支持
- 此更新扩展了编译器的词汇分析能力,使其能够识别和处理新的关键字
|
2025-08-29 18:24:39 +08:00 |
|
|
|
584e226051
|
feat: 扩展签名注册器支持结构体类型
- 增加结构体类型签名的登记逻辑,包括构造函数和方法签名
- 优化模块级函数签名的注册流程,提高代码可读性
- 完善导入模块的合法性校验,确保模块存在性
|
2025-08-29 18:24:39 +08:00 |
|
|
|
586ede1cf0
|
refactor: 重构表达式解析器文档和代码
- 更新类文档,使其更清晰地描述 Pratt 表达式解析器的功能和结构
- 优化方法注释,增加对核心解析逻辑的解释
- 调整代码格式,提高可读性
- 补充注释说明前缀和中缀解析器的注册方式及使用场景
|
2025-08-29 18:24:39 +08:00 |
|
|
|
17b078b6f3
|
feat: 增加结构体定义解析并优化模块解析逻辑
- 添加 StructParser 解析器,支持结构体定义解析
- 重构 ModuleParser 解析逻辑,提高代码可读性和可维护性
- 优化模块解析流程,支持空行和灵活的语法结构
- 增加异常处理,提升错误提示的准确性和可读性
|
2025-08-29 18:24:39 +08:00 |
|
|
|
fea8e14245
|
refactor: 重构 ModuleNode 类并增强其文档注释
- 重新组织类的结构,使其更加清晰和易于理解- 增加了对模块节点包含内容的详细注释,包括全局变量、结构体和函数定义
- 优化了 toString 方法的实现,提高了代码可读性
- 补充了对结构体定义列表的处理
|
2025-08-29 18:24:39 +08:00 |
|
|
|
49cb89c9f2
|
feat: 添加用户自定义结构体类型支持
- 新增 StructType 类,用于描述结构体的静态类型信息
- 实现了结构体类型的唯一标识、字段定义、方法签名和构造函数等功能
- 支持跨模块同名结构体的类型检查和兼容性判断
|
2025-08-29 18:24:39 +08:00 |
|
|
|
3942a22e67
|
feat: 添加结构体解析功能
- 实现了结构体声明块的语法解析器 StructParser
- 支持解析结构体字段、构造函数和方法列表
- 添加了构造函数 init 的解析逻辑
- 实现了参数块和方法体块的解析
- 通过 AST 节点表示结构体及其成员
|
2025-08-29 18:24:39 +08:00 |
|
|
|
f03a44d2a5
|
feat: 添加结构体定义的 AST 节点
- 新增 StructNode 类,表示结构体定义
- 包含结构体名称、字段列表、构造函数和方法列表等信息
- 实现了 toString 方法,便于调试和日志查看
|
2025-08-29 18:24:39 +08:00 |
|
|
|
1835b85c5c
|
feat: 新增对象创建表达式节点
- 添加 NewExpressionNode 类,表示对象创建表达式
- 该节点用于处理 "new" 关键字实例化类型的语法
- 包含目标类型名、构造函数参数列表和源码位置信息
- 实现了 ExpressionNode 接口,提供获取源码上下文的方法
|
2025-08-29 18:24:39 +08:00 |
|
|
|
1ab4fb2e87
|
feat: 新增对象节点的创建
|
2025-08-29 18:24:38 +08:00 |
|
|
|
2abe056056
|
feat: 新增对象创建表达式语义分析器
- 实现了 NewExpressionAnalyzer 类,负责分析和推断 "new T(args...)" 表达式的类型
- 校验目标类型是否为结构体,参数数量与类型是否匹配构造函数
- 支持数值类型的自动宽化
- 在类型解析失败时提供详细的错误信息
|
2025-08-29 17:56:09 +08:00 |
|
|
|
a34f51dee1
|
feat: 添加模块节点 ModuleNode 类
- 新增 ModuleNode 类作为源文件或逻辑模块的 AST 根节点
- 包含模块名、导入依赖、全局变量、结构体定义、函数定义等信息
- 实现了 toString 方法,便于调试和日志输出
|
2025-08-29 17:54:06 +08:00 |
|
|
|
8902748cde
|
feat: 丰富 ModuleInfo 类以支持结构体和更广泛的语义分析
- 新增 structs 字段,用于存储模块中定义的结构体类型
- 扩展类注释,明确 ModuleInfo 的功能和用途
- 优化字段和方法注释,增强代码可读性和易维护性
- 调整部分方法实现,提高模块信息管理的灵活性和安全性
|
2025-08-29 17:52:42 +08:00 |
|
|
|
258d1909e6
|
feat: 语义分析支持结构体成员访问
- 新增对结构体实例成员和方法访问的支持
- 扩展跨模块成员访问,支持模块内的函数引用
- 优化了对成员访问表达式的处理逻辑,提高了类型推断的准确性和范围
- 修复了一些与成员访问相关的语义错误处理问题
|
2025-08-29 17:50:58 +08:00 |
|
|
|
1f7458be28
|
feat: 支持结构体并优化全局常量处理
- 新增结构体字段布局预扫描和注册功能
- 实现结构体方法和构造函数的降级处理
- 优化全局常量收集逻辑,支持跨模块常量折叠
- 重构代码,明确方法职责,提高可读性和可维护性
|
2025-08-29 17:49:12 +08:00 |
|
|
|
093e5a26b9
|
refactor: 优化 IRContext 类文档及代码结构
- 更新类文档,明确核心功能和使用场景
- 优化方法文档,提高代码可读性和易维护性
- 调整部分方法实现,如 newTempRegister,以简化用法
- 重新组织代码结构,提高逻辑清晰度
|
2025-08-29 17:46:33 +08:00 |
|
|
|
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 |
|