最近在手搓红黑树时遇到一个问题:类模板的派生类使用智能指针时的向下转换错误,总之,经过一番研究,智能指针无法实现类模板指针的向下转换,最终还是用...
在上一章中,我们完成了一个符号表,作为一个基础工作,接下来,我们要利用这个基础实现一个功能:语义分析。 语义分析 什么是语义分析?形如这样的代码...
OK,接下来我们需要面对更加严肃的问题:如何构建一个真正的解释器?前几章的内容已经足够的有趣,但是仅仅是添加grammar,然后一步一步实现Le...
好吧在上一章中的Pascal语法并不准确,接下来,我们要修正那些语法错误,并加入更多的Pascal语言特性,本章我们将更接近真正的Pascal解...
接下来的内容将更加硬核,我们距离创造自己的编程语言更近一步——实现一个初步的Pascal解释器。 Pascal 好吧这是一门古老的语言,在很久很...
这一章,我们要接触一些稍微硬核点的知识,理解一个概念——抽象语法树。 抽象语法树和语法解析树 对于文法: 当输入2*7+3时,可以构造成如下语法...
本章,我们将继续扩展我们的解释器,使其支持乘除运算符和运算符优先级,我们将更加深入编译原理,加入文法分析( grammar analysis )...
这一章,我们将实现形如"1+12+123-123"这样连续的多位数加减法实现,为此,我们需要一点点编译原理。 语法图与语法分析 对于上述表达式,...
在上一篇中,我们实现了一个简单的加法解释器,它仅支持一位数加法,接下来,我们向解释器添加以下特性: 支持多位整数 可以跳过空格 支持减法 处理多...