词法分析器
C++
实验一 词法分析器
参考课本 p44-3.2.4,设计词法分析器,识别下列单词符号:
关键字:while if else in标识符
常数:整常数
运算符:+ - * / % = > < <= >= == != && || 界符:( ) ; [ ] { }
单词符号的表示形式: (单词种别,单词符号的属性值)
单词种别使用整数编码,如:
输入:
while (i>=j) i–;
输出单词符号:
< 20, - >
< 81, - >
< 111, i >
< 48, - >
< 111, j >
< 82, - >
< 111, i >
< 57, - >
< 84, - >
!在这里插入图片描述
样例***********************************
具体代码
按老师要求修改好的,其中“1.txt”需要和Cpp文件在同一路径
// An highlighted block
// by xyw
#include <bits/stdc++.h>
using namespace std;
string str;
string s;
map<string,int> mp;
int flag;
struct xx
{
int id;
string t;
}pos,a,b;
int tmp=0;
int ttp;
int tt=0;
void init()
{
mp["int"] = 5;
mp["else"] = 15;
mp["if"] = 17;
mp["while"] = 20;
mp["+"] = 41;
mp["-"] = 42;
mp["*"] = 43;
mp["/"] = 44;
mp["%"] = 45;
mp[