资源简介
一、实验任务:编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号。(遇到错误时可显示“Error”,然后跳过错误部分继续显示)
代码片段和文件信息
#include
#include
#include
#include
#include
using namespace std;
ifstream infile(“Test.txt“ios::in);
ofstream outfile(“Answear.txt“ios::out);
char cbuffer;
char *key[13]={“var““const““begin““end““while““do““read““write““if““then““procedure““call““odd“};
char *border[5]={ ““ “;“ “(“ “)“ “.“}; //分界符
char *arithmetic[4]={“+“ “-“ “*“ “/“ }; //运算符
char *relation[7]={“<“ “=“ “>“ “#“ “<=“ “>=“ “:=“}; //关系运算符
int search(char searchchar[]int wordtype)
{
int i=0t=0;
switch (wordtype)
{
case 1:
{
for (i=0;i<=12;i++) //关键字
{
if (strcmp(key[i]searchchar)==0)
return(i+1);
}
return(0);
}
case 2:
{
for (i=0;i<=4;i++) //分界符
{
if (strcmp(border[i]searchchar)==0)
return(i+1);
}
return(0);
}
case 3:
{
for (i=0;i<=3;i++) //运算符
{
if (strcmp(arithmetic[i]searchchar)==0)
return(i+1);
}
return(0);
}
case 4:
{
for (i=0;i<=6;i++) //关系运算符
{
if (strcmp(relation[i]searchchar)==0)
return(i+1);
}
return(0);
}
case 5: //空格
return (1);
}
}
char alphaprocess(char buffer) //字符处理过程
{
int atype;
int i=-1;
char alphatp[20];
while ((isalpha(buffer))||(isdigit(buffer))) //这两个函数分别是判字符和判数字函数位于ctype.h中
{
alphatp[++i]=buffer;
infile.get(buffer);
}
alphatp[i+1]=‘\0‘;//在末尾添加字符串结束标志
if (atype=search(alphatp1))
outfile< else
{
atype=search(alphatp6); //标识符
outfile<<“ident \““< }
return(buffer);
}
char digitprocess(char buffer) //数字处理过程
{
int i=-1;
char digittp[20];
int dtype;
while ((isdigit(buffer)))
{
digittp[++i]=buffer;
infile.get(buffer);
}
digittp[i+1]=‘\0‘;
dtype=search(digittp5);
outfile<<“number \““< return(buffer);
}
char otherprocess(char buffer) //分界符、运算符、逻辑运算符、等
{
int i=-1;
char othertp[20];
int otypeotypetp;
othertp[0]=buffer;
othertp[1]=‘\0‘;
if (otype=search(othertp3)) //运算符
{
infile.get(buffer);
switch(otype-1){
case 0: outfile<<“plus \“ “< case 1: outfile<<“subtract \“ “<
- 上一篇:西电软工所有课件含代码大全3.rar
- 下一篇:编译原理实验语法分析器
相关资源
- PL/0语法分析程序
- 词法分析器(c语言实现)246881
- 编译原理 词法分析 源代码
- 词法分析C++程序
- 编译原理——词法分析器设计与实现
- 编译原理 C语言实现词法分析
- 不同进制数的识别程序设计
- 编制一个读单词过程,从输入的源程
- 编译原理C语言实现词法分析程序带容
- 编译原理课程设计+报告用高级语言
- 编译原理 课设
- c++词法分析器
- 编译原理词法分析器 输入源程序 能生
- 词法分析程序设计与实现
- 编译原理实验报告 语法分析 语义分
- C MINUS 词法分析器
- 编译原理_词法分析器_C语言版_简单易
- 编译原理实验——词法分析器C语言编
- WinForm程序C++词法分析器
- 华中科技大学 编译原理 词法分析 实
- 大连理工大学软件学院编译技术课程
- spl 编译原理词法分析课程设计文档
- 编译原理词法分析器实验报告
- c语言词法编辑器设计、编制并调试一
- 编译原理实验-词法分析器
- 编译原理C语言实现词法分析程序带容
- 词法分析课程设计 (五种单词的符号
- 编译原理实验一词法分析 实验二语法
- 类C语言编译器,基本上实现了主要功
- 词法分析器源代码(c/c++)
评论
共有 条评论