菜单

简单函数绘图语言解释器 Python实现—-语义分析&实现篇

一月 10, 2020 - 教程系列

目录和相关资源

简单函数绘图语言解释器 Python实现—-概述&词法分析篇
简单函数绘图语言解释器 Python实现—-语法分析篇
GitHub开源完整代码

前言

在之前的文章里,我们实现了词法分析器和语法分析器,那么对于我们来说,最开始的代码文件,已经被我们转换成了有实际意义的语法树,也就是从单纯的字符流转化成了记号流(token流),又从记号流转化成立语法树。于是,我们终于可以来到这个解释器的最后一部分,为每一个语法树赋予其实际的语义,让语句转化成python代码的运行结果,并最终完成绘图工作。

其实,有了之前语法分析器里GetValue方法的铺垫,再加上Python的matplotlib库对于图形绘制有较好的支持,对我们来说,语义分析的过程会变的相对简单。核心难点已经不在于解析原有的代码文件,而是转向如何根据已有参数绘制对应图形了。

语义分析器实现

由于该解释器基于python环境,且在语法分析过程中已经构造了GetValue方法,因此在语义分析阶段,我们仅需关注画图部分的内容。由于在语法分析器中,Statement方法并未给出画图过程,因此在semantic类中,应重载该方法,在保留基本功能的同时,在For语句执行后进行绘图操作。

结果展示阶段

至此,我们的整个解释器的核心部分已经构造完毕,接下来的工作就是如何使用该解释器实现绘图功能了,对于第一篇博客中提到的实例代码,将其保存在garphic.txt中,我们的实现代码如下:

运行结果如下所示:

标签:,

发表评论

电子邮件地址不会被公开。 必填项已用*标注