Monkey 编程语言解释器 - 多语言实现
位置: zig/ 目录
状态: v0.11.0 已完成 - 高级工具和优化
特性:
- 零成本抽象,编译时优化
- 内存安全,无垃圾回收
- 函数式编程支持 (zigfp 库)
- 高性能原生代码
- 完整的错误位置跟踪
- 内置调试工具 (--tokens, --ast)
- 性能基准测试套件
- 70+ 内置函数
位置: src/ 目录
状态: 已完成
特性:
- nom 解析器库
- 完整的 Monkey 语言支持
- 浮点数、16位和8位整数
- Unicode、UTF-8 字符串
- 宏系统 (计划中)
- 项目架构搭建 (Zig build, zigfp 集成)
- Token 系统 (TokenType, Token 结构体 + 位置跟踪)
- Lexer 实现 (分词器 + 行号列号跟踪)
- AST 结构定义 (完整的语法树)
- Parser 实现 (语法分析 + 错误位置)
- Object 系统 (运行时值表示)
- Evaluator 实现 (求值器 + 错误位置)
- REPL 实现 (交互式环境)
- 完整测试套件 (38+ 单元测试)
- 错误位置跟踪 (Parser/Evaluator 错误显示行号列号)
- 调试工具 (--tokens, --ast, --debug)
- 性能基准测试套件
- 70+ 内置函数 (数学、字符串、数组、文件操作等)
- 模块系统 (import 函数)
- 高级控制流 (while, for-in, break, continue)
- Zig 0.15.x 或更高版本
cd zig
zig build
zig build runzig build test项目包含多个 Monkey 语言示例:
# 查看所有示例
ls examples/
# 运行特定示例
zig build run -- examples/test_tokens.monkey
# 使用调试选项
zig build run -- --tokens examples/test_args.monkeystar-kirby-lang/
├── src/ # Rust 实现 (参考)
├── zig/ # Zig 实现 (主力版本)
│ ├── src/ # 源代码
│ ├── benchmarks/ # 性能基准测试
│ └── build.zig # 构建配置
├── examples/ # Monkey 语言示例和测试
├── stories/ # Story 文件
├── docs/ # 项目文档
├── ROADMAP.md # 项目路线图
├── CHANGELOG.md # 变更日志
└── README.md # 本文档
本项目遵循严格的文档驱动开发流程:
- 文档先行: 功能必须先在 ROADMAP.md 和 Story 文件中规划
- 代码实现: 按照 Story 文件的验收标准实现
- 测试验证: 所有修改必须通过完整测试
- 文档收尾: 更新相关文档和 CHANGELOG
详细规范请参考 AGENTS.md。
欢迎贡献!请遵循以下步骤:
- 查看 ROADMAP.md 了解规划
- 创建相应的 Story 文件
- 实现功能并通过测试
- 更新文档
MIT License