1 / 10
文档名称:

词法分析的实验报告.doc

格式:doc   大小:106KB   页数:10页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

词法分析的实验报告.doc

上传人:小博士 2022/7/1 文件大小:106 KB

下载得到文件列表

词法分析的实验报告.doc

文档介绍

文档介绍:《词法分析》
实验报告
目录
目录 0
1实验目的 1
2实验内容 1
2、1TINY计算机语言描述 1
2、 2实验要求 1
3此法分析器的程序实现 2
3、 1状态转换图 2
3、2程序源码 3
3、3实验运行效果turn false;
}
bool CA::isLetter(char c)
if(c>='a'&&c<=,z, | |c>=,A,&&c<='Z,) return true;
else return false;
}
int CA::Search(char a[18][10],const char *b,int n)
(
int left=0;int right=n-l;int mid=0;
while(left<=right)
(
mid=(left+right)/2;
if(strcmp(a[mid],b)==O) return mid;
else if(strcmp(a[mid],b)<0) left=mid+l;
else right=mid-l;
}
return -1;
}
int CA::lnsertlD(char *strToken)
(
int i=0;
while (i<m) 〃设m为符号表中已有的标识符的个数
(
if (!strcmp(ID[i], strToken))
return i;
i++;
}
strcpy(ID[i],strToken);
m++;
return i;
}
int CA::lnsertConst(char *strfbken)
(
int i=0;
while (i<n) 〃设n为常数表中已有的常数的个数
{
if (!strcmp(Cons[i], strToken))
return i;
i++;
}
strcpy(Cons[i],strToken);
n++;
return i;
void CA::display()
(
char filename[30];
〃输入的时候一定要就是、、、:/、、、/、、、格式
cout«"请输入源程序代码、cpp文件的绝对路径:"«endl;
cin»filename;
ifstream infile(filename,ios::in);
if(!infile)
(
cerr«"open error!"«endl;
abort();
}
char ch;
int countl=l;count2=0;
cout«"第"«countl«"行
while(infile> get(ch))
(
preDo(ch);
cout«ch; //逐行打印出源程序
if(ch=='\n')
(
countl++;
cout«"第"«countl«"行
}
}
bufferl[count2+l]='\0';
cout«endl;
〃对bufferl中的字符进行扫描
getToken();
infile> close();
cout«endl;
cout«"符号表:”;
for (int i=0;i<m;i++)
cout«ID[i]«"
cout«endl;
cout«"数字表:”;