小工具知识网

当前位置: 首页 > 行业知识 > 编译原理之词法分析实验(附完整C/C++代码与总结)

行业知识

编译原理之词法分析实验(附完整C/C++代码与总结)

2026-11-04 23:05:43 来源:互联网转载

一、实验内容

        通过完成词法分析程序,了解词法分析的过程。编制一个读单词程序,对PL/0语言进行词法分析,把输入的字符串形式的源程序分割成一个个单词符号,即基本保留字、标识符、常数、运算符、分界符五大类。

        对PL/0语言进行词法分析,把输入的字符串形式的源程序分割成一个个单词符号,其词法描述如下:

(1)关键字:

begin,call,const,do,end,if,odd,procedure,read,then,var,while,write

(2) 标识符:用来表示各种名字,必须以字母开头小于10位字符组成

(3) 数字:以0-9组成小于14位的数字

(4) 运算符:+,-,*,/,:=,=,#

(5) 分界符:, ,. ,; ,( ,)


二、实验代码

#include#include#include#includeusing namespace std;//创建四个表,储存符号 const char *k[13]={"begin","call","const","do","end","if","odd","procedure","read","then","var","while","write"};//关键字表const char *s1[5]={",",".",";","(",")"};//界符表const char *s2[6]={"+","-","*","/","++","--",};//运算符号表 const char *s3[9]={"",">=","=",">",">=","",":=","#"}; //关系运算符号表 //定义全局变量int row=1,line=1; int t,p=0;//单词类别码以及记录移动指针char instring[100];//保存输入的程序代码缓存数组char outtoken[10];//输出char ci[8],id[10];//暂时保存数字和字符//函数的声明void analysis();//分析函数,决定调用哪个函数进行分析void symbol();//分析以非字母数字开头的字符void constant();//分析常数void alphabet();//分析标识符和关键字void show();//打印输出函数bool isnumber(char x);//判断是否是数字 bool isalpha(char x);//判断是否是字母 int main(){cout

上一篇:浪潮服务器扩展柜怎么用?

下一篇:宝塔面板CNAME解析设置详解,轻松搞定域名解析配置!