1451分钟
Antlr 实战: 动手做一个语言解释器
语法设计:确定语言的语法结构,如变量声明、表达式、控制结构等。这部分可以参考已有的编程语言的语法设计。 语义设计:定义语言中各个结构的含义和行为,如运算符的优先级、变量作用域、类型转换规则等。这部分需…
语法设计:确定语言的语法结构,如变量声明、表达式、控制结构等。这部分可以参考已有的编程语言的语法设计。
语义设计:定义语言中各个结构的含义和行为,如运算符的优先级、变量作用域、类型转换规则等。这部分需要考虑语言的目标和使用场景。
运行时环境:定义语言的运行时环境,包括内存管理、异常处理、多线程支持等。这部分需要了解操作系统的相关知识。
第1章 初识 Antlr:再看表达式求值程序
- 1-1 初识Antlr
- 1-2 ANTLR的下载和安装演示
- 1-3 抽象语法树讲解
- 1-4 EBNF 文法文件的作用
- 1-5 基于 Antlr 的表达式求值程序
第2章 添砖加瓦:从0到1认识开发流程
- 2-1 增加除法功能支持
- 2-2 作用域语法性质设计
- 2-3 文法文件:作用域文法支持
- 2-4 解释器:作用域功能支持
- 2-5 if 语法文法设计
- 2-6 条件表达式文法设计
- 2-7 工程目录结构认识
- 2-8 工程源码解读
- 2-9 强类型与弱类型
- 2-10 作用域中 map 映射的思考
- 2-11 IValue 接口代码演示
- 2-12 修改加法操作的代码演示
第3章 迈出第一步:封装与实现解释器程序
- 3-1 Antlr 树型结构封装
- 3-2 封装作用域类
- 3-3 IValue 通用类型接口设计
- 3-4 解释器整体执行架构搭建
- 3-5 master 与 factory 的完善
- 3-6 添加责任链模式
- 3-7 解决编译错误
- 3-8 设计IValue类型操作入口
- 3-9 完善 IntValue 相关操作
- 3-10 补全 Float 与 String 类型操作
第4章 走好第二步:分支与循环功能
- 4-1 字符串转移功能完善
- 4-2 条件表达式功能逻辑搭建
- 4-3 IValue 类型中的条件运算符重载
- 4-4 实现分支与循环语句
- 4-5 for 语句的 BUG 修复
- 4-6 修复 IValue 的内存泄露
- 4-7 修复 Parameter 的内存泄露
第5章 第三步:实现函数功能
- 5-1 关于 break 语句的思考
- 5-2 状态机的基础介绍
- 5-3 分支与循环的状态机结构
- 5-4 DFA 相关类设计
- 5-5 ASTree 由引用改地址
- 5-6 添加 ConditionDFANode 类
- 5-7 分支与循环的状态机构建
- 5-8 break 的状态跳转
- 5-9 break 功能初步实现
- 5-10 break 功能 bug 修复
- 5-11 continue 功能设计与实现
- 5-12 函数的抽象语法树设计
- 5-13 函数的文法文件编写
- 5-14 函数调用的抽象语法树设计
- 5-15 函数调用的文法文件编写
- 5-16 FunctionValue 类设计
- 5-17 FunctionValue 类的初步实现
- 5-18 函数定义功能实现
- 5-19 函数调用功能实现
- 5-20 return 功能实现
- 5-21 function 作用域访问 Bug
- 5-22 修复 function 作用域访问 Bug
海贼宝藏/胡光
软通教育旗下高端IT就业品牌,专注于提升IT职业技能课程研发与交付、高效学习平台研发与运营 /ACM亚洲区金牌
高级算法研发工程师
C++学科扛把子