首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Rust 实现表达式 Parser
EthanTeng
创建于2022-11-17
订阅专栏
本专栏将使用 Rust 实现一个极简的表达式 Parser, 支持表达式求值以及格式化
等 32 人订阅
共13篇文章
创建于2022-11-17
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Rust 实现一个表达式 Parser
本文是专栏导读,专栏希望尽量避开枯燥的理论,简单的梳理编译的流程并手动实现一个0外部依赖的表达式解析器
Rust 实现一个表达式 Parser(1) 前置干货
本文将以极粗的力度概述编译原理的相关知识,并梳理编译的流程,作为正式开始实现的前置干货,还是值得一看
Rust 实现一个表达式 Parser(2) 整体设计
本文将大致介绍项目的整体结构,为后续具体实现打下基础,也提前提到了具体实现中会使用到的一些技术及其相关特点
Rust 实现一个表达式 Parser(3) 一些类型定义
本文将提前封装好一些后续实现需要使用的类型及简单的工具函数,为正式实现做准备,十分简单,但是贯穿整个具体实现
Rust 实现一个表达式 Parser(4) DFA 实现
本文将正式实现一个DFA进行词法分析,文章中希望尽量避开枯燥的理论,从实践的角度出发,以此来介绍词法分析相关内容
Rust 实现一个表达式 Parser(5) Lexer 实现
本文将结合上一篇文章实现的DFA,来完成词法分析器的部分,将输入的源代码转化为Token流,作为后续处理的基础
Rust 实现一个表达式 Parser(6) 文法定义及其简单优化
这篇文章非常枯燥,主要是在介绍文法以及文法的定义、优化、使用等等,虽然枯燥但却是编译不可或缺的一个部分,还是得看看
Rust 实现一个表达式 Parser(7) Parser Combinator
本文实现语法分析所使用的工具(Parser-Combinator),作为描述文法的工具,文中也会对其工作原理和流程进行图文解析
Rust 实现一个表达式 Parser(8) Parser 实现
本文将完成语法分析模块,经过前面的介绍以及铺垫,这里的实现非常简单,而借助Parser-Combinator,描述文法的过程变得极其简单
Rust 实现一个表达式 Parser(9) Visitor 实现
本文作为Traversal模块的开篇,将介绍访问者模式(Visitor),并进行基础的封装实现,是后续正式实现需求的基础
Rust 实现一个表达式 Parser(10) Eval 实现
本文实现在开篇所定义的第一个需求,即计算表达式,借助前面的访问者模式,我们可以十分轻松的实现这个需求
Rust 实现一个表达式 Parser(11) Format 实现
本文实现开篇定义的第二个需求:表达式的格式化,实现相对简单粗糙,但部分问题需要特殊解决一下,文中会以图文并茂的方式介绍并给出可行的解决方案
Rust 实现一个表达式 Parser(12) 总结
至此已经完成了所有的功能,作为本专栏的最后一篇博客,文中简单的列举对各个模块的实现以及需要注意的部分