# z-lang **Repository Path**: Moolight_Z/z-lang ## Basic Information - **Project Name**: z-lang - **Description**: 基于GO语言开发的自己的编程语言 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-03 - **Last Updated**: 2023-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 参考书 ``` <用GO语言自制解释器> 索斯藤-鲍尔(Thorsten Ball) [德国] ``` #### 代码组织 ``` main.go --- 启动类 ├── ast --- 抽象语法树 ├── cmd --- 命令行参数 - 目前就一个命令,是否开启方法调用追踪 ├── evaluator --- 求值器 ├── lexer --- 词法分析器 ├── object --- 对象系统 ├── parser --- 语法分析器 ├── repl --- 交互窗口 ├── token --- 词法单元 ``` #### 开发套路 ``` 1. 定义 AST 节点, 实现Node接口, 根据实际类型选择 Statement、Expression 接口进行实现 对于关键字或者特殊符号,还需要先去 token 中定义好词法单元信息,并在 lexer 中编写词法单元解析函数 2. 编写 parser_test 测试用例 3. 编写 parser 解析函数 4. 编写 object 对象 5. 编写 evaluator_test 测试用例 6. 编写 evaluator 求值函数,将 AST 节点,转化为 object 对象 ```