xianbintang / compiler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

compiler

compiler完成了简单绘图语言程序解释器的两个功能 1.词法分析 2.语法分析 基本**是递归下降子程序方法

  1. 词法分析器 过程为 a. 用正规式对模式进行描述 b. 由正规式构造NFA c. 将NFA转化为DFA且最小化 d. 根据最小DFA编写程序并进行测试 采用直接编写程序的方法实现词法分析器, 也就是直接编码型词法分析器 转化图与程序结构存在如下的对应关系 a.初态对应程序的开始 b.终态对应程序的结束,一般是一条返回语句,并且不同的终态对应不同的返回语句 c.状态转移对应分情况或者条件语句 d.终态返回时应满足最长匹配原则

在本程序中,词法分析器的关键部分是get_token这个函数,这个函数获得一个记号, 并返回之,而且可以忽略空白,这个函数还是语法分析器的接口,语法分析器利用这个接口 获得一个个记号并进行语法分析

  1. 语法分析器 语法分析器采用自上而下的分析方法 要求最后得到BNF文法 满足没有左递归,没有二义性,有优先级,结合性,提取了左因子等条件

采用递归下降子程序方法 基本**是: 1.从文法的开始符号开始 2.根据当前输入序列中的终结符 3.按不同情况展开非终结符的右部 4.最终与输入序列完全匹配或报错为止 采用这样的方法分析每一条语句,知道程序结束

About

License:Other


Languages

Language:Makefile 51.6%Language:Shell 29.5%Language:C 18.9%