菜单

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

一月 10, 2020 - 教程系列

目录和相关资源

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

前言&概述

俺又来更新博客了,这次的内容是利用Python实现一个简单函数绘图语言解释器。其实项目本身已经完成了有一段时间了,但是出于期末考试等诸多原因(主要是因为懒)一直没有真正写成文章发上来,正好这次假期时间长,我也是在学校闲的要命,不如就趁着这个机会好好掰扯掰扯这个编译原理选做大作业。

首先要明确一点,什么是简单函数绘图语言?咱们先来看一段示例代码:

我们可以看到,上面的语句中,主要出现了这么几个关键词:ROT、ORIGIN、SCALE、FOR,那么他们分别是什么意思呢?

当然,我们的解释器还需要具备识别注释、出错处理等基本功能,下面是我实现过程中遵循的一些小的原则:

词法分析器实现

词法分析器由三个文件构成,分别是scanner_token.py、scannerprocess.py和testscanner.py

scanner_token.py (构造符号表和token类型)

该文件中给出了token的定义和可能出现的所有token类型,对于一些特殊token 类型,如sin, cos等,使用numpy对应的矩阵运算方法进行构造。

scannerprocess.py (构造词法分析器)

主要实现词法分析过程,其核心在于GetToken方法的设计。其设计的核心原 理在于对于每一类字符的正规式的构造,并依据正规式给出对应类型的识别方法。

testscanner.py

该文件负责对scanner进行测试,输入graphic.txt文件,输出由scanner检测到的记号流构成的记号表,通过测试scanner,为后续创建语法树打基础。

运行结果如下所示:

标签:,

发表评论

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