6dbecbbdc0
feat: 重构编译器以支持函数定义和调用,添加新的字节码以支持函数调用
...
另外,我很高兴地宣布,fib(40) 递归法 在我的平台, i5-13490f,只需要 6600ms, fib(30) 56ms
这是历史性的一刻!
2026-03-07 00:34:52 +08:00
1fe9ccf7ea
feat: 实现控制流语句并优化类型解析
...
- 新增了 ReturnStmt、BreakStmt 和 ContinueStmt 结构,以支持 AST 中的控制流。
- 引入了 TypeInfo 和 TypeContext 以实现更好的类型管理和解析。
- 对分析器进行了增强,能够处理函数定义和返回语句,包括类型检查和错误处理。
- 更新了编译器和解析器以适应新的控制流语句和类型解析逻辑。
- 重构了现有代码以提高清晰度和可维护性,包括对表达式和语句中的类型处理的更改。
- 删除了过时的 String 和 Struct 定义,代之以 StringObject 和 StructObject 以实现更好的对象表示。
2026-02-28 20:42:15 +08:00
bb23ddf9fa
feat: 添加函数定义和类型表达式支持,重构解析器以处理新语法(函数定义)
2026-02-26 14:41:41 +08:00
12dc31a6c0
fix: 修复了在解析字面量时的条件逻辑,确保整数转换在浮点数转换之后进行
2026-02-25 19:15:25 +08:00
a0fb8cdffb
feat: 添加“while 语句”支持,并对解析器进行重构以处理控制流相关内容
...
- 引入了 WhileStmt 结构来表示 while 循环语句。
- 在解析器中实现了对 while 语句的解析逻辑。
- 在分析器中为 while 语句添加了语义分析。
- 重构了现有的解析器方法,以利用 StateProtector 进行状态管理。
- 更新了对各种表达式和语句的错误处理。
- 移除了未使用的终止符管理方法,并简化了表达式解析。
- 将 FigLSPServer.cpp 重命名为 LSPServer.cpp,并调整了构建配置。
- 增强了重复声明和类型错误的错误报告。
- 在多个文件中改进了代码格式和一致性。
2026-02-25 17:31:00 +08:00
b7bb889676
feat: 增加了analyzer, compiler不再分析并且报错, 只生产 bytecode, analyzer作为前端结束最后一道防线检查代码,同时引入一个简单的LSP
2026-02-23 19:57:28 +08:00
852dd27836
feat: 优化表达式解析器,添加终止符重置功能及代码格式调整
2026-02-23 15:03:53 +08:00
abdb1d2fb0
feat: 添加跳转指令支持及条件语句编译实现
2026-02-20 17:02:13 +08:00
eb20993e27
feat: 添加If语句及块语句解析支持
2026-02-20 15:46:33 +08:00
2631f76da1
feat: Implement compiler and virtual machine for Fig language
...
- Added Compiler class with methods for compiling programs, statements, and expressions.
- Introduced Proto structure to hold compiled bytecode and constants.
- Implemented expression compilation including literals, identifiers, and infix expressions.
- Developed statement compilation for variable declarations and expression statements.
- Created a VM class to execute compiled bytecode with support for arithmetic and comparison operations.
- Added Object and Value classes for handling different data types and memory management.
- Implemented String and Struct objects for enhanced data representation.
- Established a parser for parsing variable declarations and statements.
- Included tests for the VM and object representations.
2026-02-20 14:05:56 +08:00
f2e899c7a7
更换新Logo! 然后为拓展增加Logo。
2026-02-18 14:28:19 +08:00
c81da16dfb
修复EOF飘逸(去除末尾\n)以及其他修复...
2026-02-18 00:16:59 +08:00
663fe39070
添加缺失的 doxy
2026-02-17 14:13:57 +08:00
6b75e028ff
修复右结合绑定力错误
2026-02-17 14:03:48 +08:00
878157c2fc
完成Parser定义以及表达式解析
2026-02-14 23:03:46 +08:00
35e479fd05
完成表达式Ast定义。修改了format文件
2026-02-14 18:00:46 +08:00
51e831cc6a
添加了注释文档
2026-02-14 15:32:11 +08:00
35b98c4d7f
完成Lexer实现,100%可靠
2026-02-14 14:54:44 +08:00
877253cbbc
完成 Error定义和ErrorLog. 以及一些相关的东西
2026-02-13 23:11:37 +08:00
cfcdfde170
结构调整2
2026-02-12 14:55:48 +08:00
5e75402b43
项目结构调整
2026-02-12 14:55:34 +08:00
642ce66f75
Merge branch 'main' of https://git.fig-lang.cn/PuqiAR/Fig
2026-02-12 14:54:49 +08:00
dd0b2904ba
Initial commit
2026-02-12 14:53:03 +08:00
58212a3715
初始化仓库,包含format文件,ci, actions和文档。新的路开始了!
2026-02-12 14:51:26 +08:00