|
|
8bc431091c
|
feat: 添加 extends 关键字
|
2025-08-31 18:34:40 +08:00 |
|
|
|
ce2b480e90
|
chore: 添加 Demo31运行配置
|
2025-08-31 17:56:18 +08:00 |
|
|
|
9f7628aded
|
test: 添加类继承演示示例
|
2025-08-31 17:55:49 +08:00 |
|
|
|
bd37142a4b
|
chore: 添加 Demo30运行配置
|
2025-08-31 17:38:29 +08:00 |
|
|
|
f0e3bfe05c
|
test: 添加 Demo30
|
2025-08-31 17:38:23 +08:00 |
|
|
|
c99614869f
|
refactor: 重构值拷贝语义的指令生成逻辑
- 移除类型无法推断时默认采用 int 方案的逻辑
- 通过构造 "src + 0" 的形式,触发 Peephole 优化折叠成 MOV
- 优化了不同类型的数据处理逻辑,提高代码可读性和可维护性
|
2025-08-31 17:31:53 +08:00 |
|
|
|
67d1949a25
|
refactor: 移除未使用的作者和版本注释
|
2025-08-31 17:10:19 +08:00 |
|
|
|
5ec4f9ec6a
|
test: 修改 Demo29 适配最新语法
|
2025-08-31 17:03:00 +08:00 |
|
|
|
a57d666241
|
feat: 改进 CALL 指令的目标函数匹配逻辑
- 增加简名匹配支持,适用于 IR 中生成的 CALL 指令
-保留原有的全名匹配逻辑
- 优化了 patchCallFixes 方法,提高了匹配效率
|
2025-08-31 17:02:21 +08:00 |
|
|
|
416f3fdeb1
|
refactor: 重构表达式构建逻辑
- 优化常量折叠逻辑,使用 switch-case 结构替代 if-else
- 增加对链式方法调用的支持
- 调整函数调用构建流程,按被调用对象类型分支处理
- 优化参数传递逻辑,区分隐式 this 参数和显式参数- 规范化方法和函数名处理,自动补充模块名前缀
|
2025-08-31 17:01:10 +08:00 |
|
|
|
419057c3c2
|
fix: 修正 getName 方法调用
|
2025-08-31 15:34:41 +08:00 |
|
|
|
b4a0bccb66
|
feat: 增强结构体解析器功能
- 优化结构体声明块的解析逻辑,支持更灵活的语法
- 改进构造函数块的解析,允许参数块和方法体块的自由顺序
- 扩展参数块解析,支持内置类型和自定义标识符作为参数类型
- 修复了一些解析过程中的小问题,提高了代码的健壮性
|
2025-08-30 17:06:42 +08:00 |
|
|
|
9ac8b6166a
|
refactor: 重构函数解析器以提高可读性和可维护性
- 优化了函数解析器的结构,使其更加清晰和易于理解
- 改进了错误处理机制,使用更具体的异常类型
- 增加了对类型声明和参数列表的容错性
- 移除了冗余代码和不必要的注释,提高了代码的简洁性
|
2025-08-30 17:04:49 +08:00 |
|
|
|
f00d99d748
|
test: 更新以测试新功能
|
2025-08-30 17:04:00 +08:00 |
|
|
|
4b90f15371
|
test: 添加自定义类型字段嵌套示例
- 新增 Main.snow 文件,定义了 Address 和 Person 两个结构体- 在 Person 结构体中使用 Address 类型的字段,实现类型嵌套
- 添加 OS.snow 文件,提供基本的打印功能- 此示例展示了如何在 SNOBOL 中使用自定义类型进行字段嵌套
|
2025-08-30 14:25:11 +08:00 |
|
|
|
cbd8b24c4c
|
chore: 添加 Demo29运行配置
- 新增 Demo29.run.xml 文件
|
2025-08-30 14:25:01 +08:00 |
|
|
|
1e832dc8bf
|
test: 添加 Animal 类的 setAge 方法并优化 OS 模块
- 在 Animal 结构体中添加 setAge 方法,用于设置 age 字段
- 在 OS 模块中添加 println函数,实现换行打印功能- 更新 Main 函数,演示使用 setAge 方法和 println 函数
|
2025-08-30 11:28:56 +08:00 |
|
|
|
513aeba2bc
|
feat: 支持结构体字段赋值
- 增加对 this.<field> 结构体字段赋值的支持
- 优化赋值语句处理逻辑,优先考虑局部/参数变量- 修复字段写入后的常量绑定问题
- 优化变量声明和初始化流程
|
2025-08-30 11:28:42 +08:00 |
|
|
|
cff45a9d17
|
refactor: 重构 FunctionBuilder
- 优化了 FunctionBuilder 类的文档注释,详细描述了其功能和处理流程
- 改进了 build 方法的内部逻辑,提高了代码可读性和可维护性
- 修复了返回类型为空时的处理逻辑,增加了鲁棒性
- 优化了默认字面量后缀的设置逻辑,提高了代码的灵活性
|
2025-08-30 11:27:25 +08:00 |
|
|
|
db720ea357
|
docs: 更新类文档并移除冗余信息
|
2025-08-29 18:25:17 +08:00 |
|
|
|
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 |
|