博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验一、词法分析器实验
阅读量:6293 次
发布时间:2019-06-22

本文共 2233 字,大约阅读时间需要 7 分钟。

实验一、词法分析器实验

专业 商业软件工程三班   姓名 梁荣臻  学号201506110206

一、        实验目的

 

通过词法分析器,进一步了解词法之间的关系。

 

二、        实验内容和要求

将输入的字符串通过词法分析器一一识别出来,同时将该字符串或者字符并且和种别码一起输出来。

 

三、        实验方法、步骤及结果测试

 

  1. 1.      源程序名:byyl.c

可执行程序名:byyl.exe

  1. 2.      原理分析及流程图

采用数组存放数据,通过字符串的比较实现关键字的种别码输出

  1. 3.      主要程序段及其解释:

#include<stdio.h>

#define MAX 50

main()

{

    char shuru[MAX];

    do

    {

    printf("请输入想要识别的字符:(输入tuichu代表退出)\n");

    scanf("%s",&shuru);

    if(strcmp(shuru,"begin") == 0)

        printf("符号为:%s,种别码为:1\n",shuru);

    else if(strcmp(shuru,"if") == 0)

        printf("符号为:%s,种别码为:2\n",shuru);

    else if(strcmp(shuru,"then") == 0)

        printf("符号为:%s,种别码为:3\n",shuru);

    else if(strcmp(shuru,"while") == 0)

        printf("符号为:%s,种别码为:4\n",shuru);

    else if(strcmp(shuru,"do") == 0)

        printf("符号为:%s,种别码为:5\n",shuru);

    else if(strcmp(shuru,"end") == 0)

        printf("符号为:%s,种别码为:6\n",shuru);

    else if(strcmp(shuru,"l(l|d)*") == 0)

        printf("符号为:%s,种别码为:10\n",shuru);

    else if(strcmp(shuru,"dd*") == 0)

        printf("符号为:%s,种别码为:11\n",shuru);

    else if(strcmp(shuru,"+") == 0)

        printf("符号为:%s,种别码为:13\n",shuru);

    else if(strcmp(shuru,"-") == 0)

        printf("符号为:%s,种别码为:14\n",shuru);

    else if(strcmp(shuru,"*") == 0)

        printf("符号为:%s,种别码为:15\n",shuru);

    else if(strcmp(shuru,"/") == 0)

        printf("符号为:%s,种别码为:16\n",shuru);

    else if(strcmp(shuru,":") == 0)

        printf("符号为:%s,种别码为:17\n",shuru);

    else if(strcmp(shuru,":=") == 0)

        printf("符号为:%s,种别码为:18\n",shuru);

    else if(strcmp(shuru,"<") == 0)

        printf("符号为:%s,种别码为:20\n",shuru);

    else if(strcmp(shuru,"<=") == 0)

        printf("符号为:%s,种别码为:21\n",shuru);

    else if(strcmp(shuru,"<>") == 0)

        printf("符号为:%s,种别码为:22\n",shuru);

    else if(strcmp(shuru,">") == 0)

        printf("符号为:%s,种别码为:23\n",shuru);

    else if(strcmp(shuru,">=") == 0)

        printf("符号为:%s,种别码为:24\n",shuru);

    else if(strcmp(shuru,"=") == 0)

        printf("符号为:%s,种别码为:25\n",shuru);

    else if(strcmp(shuru,";") == 0)

        printf("符号为:%s,种别码为:26\n",shuru);

    else if(strcmp(shuru,"(") == 0)

        printf("符号为:%s,种别码为:27\n",shuru);

    else if(strcmp(shuru,")") == 0)

        printf("符号为:%s,种别码为:28\n",shuru);

    else if(strcmp(shuru,"#") == 0)

        printf("符号为:%s,种别码为:0\n",shuru);

    else if(strcmp(shuru,"tuichu") == 0)

    {

        printf("退出成功!\n");

        break;

    }

    else

        printf("无法识别此字符串!\n");

    }while(-1);

}

  1. 4.      运行结果及分析

 

四、        实验总结

 

在这次的实验中了解词法分析的过程,解决一些问题。了解到了如何字符串与字符串进行比较,完成自己的代码再与其他同学一对比才发现自己原来理解错了任务,并不只是识别一个关键词,而是一串代码,之后会努力改正的了。

 

转载于:https://www.cnblogs.com/Lorz/p/5956051.html

你可能感兴趣的文章
Javascript 中的 Array 操作
查看>>
java中包容易出现的错误及权限问题
查看>>
AngularJS之初级Route【一】(六)
查看>>
服务器硬件问题整理的一点总结
查看>>
SAP S/4HANA Cloud: Revolutionizing the Next Generation of Cloud ERP
查看>>
Mellanox公司计划利用系统芯片提升存储产品速度
查看>>
白帽子守护网络安全,高薪酬成大学生就业首选!
查看>>
ARM想将芯片装进人类大脑 降低能耗是一大挑战
查看>>
Oracle数据库的备份方法
查看>>
Selenium 自动登录考勤系统
查看>>
关于如何以编程的方式执行TestNG
查看>>
智能照明造福千家万户 家居智能不再是梦
查看>>
物联网如何跳出“看起来很美”?
查看>>
浅谈MySQL 数据库性能优化
查看>>
《UNIX/Linux 系统管理技术手册(第四版)》——1.10 其他的权威文档
查看>>
灵动空间 创享生活
查看>>
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.6 UDP回射客户程序:dg_cli函数...
查看>>
不要将时间浪费到编写完美代码上
查看>>
《算法基础:打开算法之门》一3.4 归并排序
查看>>
高德开放平台开放源代码 鼓励开发者创新
查看>>