目的:设置一个简单的词法分析器。
一个超简单的词法分析器
1.要求
1.词法分析器将识别关键字while和do,还有关系算符,标识符和数值。假设词法单元之间在必要时用空格,换行等,词法分析器通过把剩余输入的前缀和下面的正规定义相比较来完成忽视词法单元之间的空白。
2.考虑下面的正规定义:
While—>while
Do----->do
Relop------> < | <= | = | <> | > | >=
Letter-----> [A-Za-z]
Id----->letter(letter | dight )*
Number-----> dight*(.dight*)? (E ( +| - )? dight* )?
relop:LT,LE,EQ,NE,GT,GE.
id:符号表条目的指针
number:数目表条目的指针
关键词:do,while;
4.标识符和关键字的转化图
略。
5.**只挑选了几个词法进行编写,望周知。**如果想深入探索,请另找资料。
2.源代码
#include <iostream>
#include<vector>
using namespace std;
int en=0;
int q=0;//定位字符的走向
vector<char>a;
char s[6][10]={"while&#