实验一 识别无符号数的词法分析器设计实现
学院:计算机学院 班级: 学号:
一、实验目的与要求
通过编写并上机调试一个词法分析程序,掌握在对程序设计语言的源程序进行扫描的
过程中,将其分解成各类单词的词法分析方法。
二、实验内容
选取无符号数的算术四则运算中的各类单词为识别对象,要求将其中的各个单词识别
出来。
输入:由无符号数和+,-,*,/, ( , ) 构成的算术表达式,如 1.5E+2-100。
输出:对识别出的每一单词均单行输出其类别码(无符号数的值暂不要求计算)。
单词符号 类别码(CLASS) 单词值(VALUE)
无符号数
1
数字值
+ 2
无值
—
3
无值
* 4
无值
/ 5
无值
( 6
无值
) 7
无值
如 1 (对应 1.5E+2)
3 (对应-)
1 (对应 100)
三、程序源代码:
#include<iostream>
using namespace std;
#define M 101 //最多可输入的字符数
#define UNSIGNEDNUMBER 1 //无符号数
#define PLUS 2 //加号
#define SUBTRACT 3 //减号
#define MULTIPLY 4 //乘号
#define DIVIDE 5 //除号
#define LEFTBRACKET 6 //左括号
#define RIGHTBRACKET 7 //右括号
class AccidenceAnalysis //定义词法分析器类
{
private:
char testStr[M],*p; //私有数据
public:
AccidenceAnalysis(); //构造函数