《词法分析器(c语言实现)》由会员分享,可在线阅读,更多相关《词法分析器(c语言实现)(6页珍藏版)》请在人人文库网上搜索。

1、词法分析c实现一、 实验目的设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。二、 实验要求2.1 待分析的简单的词法(1)关键字:begin if then while do end所有的关键字都是小写。(2)运算符和界符: = + - * / = = ; ( ) #(3)其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义:ID = letter (letter | digit)*NUM = digit digit*(4)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。2.2 各种单词符号对应的种别码:表2.。

2、1 各种单词符号对应的种别码单词符号种别码 单词符号种别码bgin1:17If2:=18Then321do523lettet(letter|digit)*10=24dight dight*11=25+13;2614(27*15)28/16#02.3 词法分析程序的功能:输入:所给文法的源程序字符串。输出:二元组(syn,token或sum)构成的序列。其中:syn为单词种别码;token为存放的单词自身字符串;sum为整型常数。例如:对源程序begin x:=9: if x9 then x:=2*x+1/3; end #的源文件,经过词法分析后输出如下序列:(1,begin)(10,x)(18。

3、,:=)(11,9)(26,;)(2,if)三、词法分析程序的C语言程序源代码:#include #include char prog80,token8,ch;int syn,p,m,n,sum;char *rwtab6=begin,if,then,while,do,end;scaner();main()p=0;printf(n please input a string(end with #):/n);doscanf(%c,&ch);progp+=ch;while(ch!=#);p=0;doscaner();switch(syn)case 11:printf( %-10d%5d )n,sum。

4、,syn);break;case -1:printf(you have input a wrong stringn);getch();exit(0);default: printf( %-10s%5d )n,token,syn);break;while(syn!=0);getch();scaner() sum=0;for(m=0;m=a)|(ch=A) while(ch=a)|(ch=A)|(ch=0)&(ch=0)&(ch=0)&(ch:tokenm+=ch;ch=progp+;if(ch=) syn=24;tokenm+=ch;else syn=23;p-;break;case +: to。

5、kenm+=ch;ch=progp+;if(ch=+) syn=17;tokenm+=ch;else syn=13;p-;break;case -:tokenm+=ch;ch=progp+;if(ch=-) syn=29;tokenm+=ch;else syn=14;p-;break;case !:ch=progp+;if(ch=) syn=21;tokenm+=ch;else syn=31;p-;break;case =:tokenm+=ch;ch=progp+;if(ch=) syn=25;tokenm+=ch;else syn=18;p-;break;case *: syn=15;tok。

6、enm+=ch;break;case /: syn=16;tokenm+=ch;break;case (: syn=27;tokenm+=ch;break;case ): syn=28;tokenm+=ch;break;case : syn=5;tokenm+=ch;break;case : syn=6;tokenm+=ch;break;case ;: syn=26;tokenm+=ch;break;case : syn=30;tokenm+=ch;break;case #: syn=0;tokenm+=ch;break;case :syn=17;tokenm+=ch;break;default: syn=-1;break;tokenm+=0;四、结果分析:输入begin x:=9: if x9 then x:=2*x+1/3; end # 后经词法分析输出如下序列:(begin 1)(x 10)(:17)(= 18)(9 11)(;26)(if 2) 如图5-1所示。

c语言词法分析程序,词法分析器(c语言实现)相关推荐

  1. C语言词法分析程序的设计与实现

    C语言词法分析程序 c++和lex两种实现 支持多种数字格式和转义字符 实现的功能 基本满足C语言的词法规则. 可以识别八进制,十六进制,浮点,科学计数法,同时支持后缀. 识别关键字. 识别字符和字符 ...

  2. 小C语言–词法分析程序

    小C语言–词法分析程序 Time Limit: 1000 ms Memory Limit: 5000 KiB Problem Description 小C语言文法 1. <程序>→(){& ...

  3. 小C语言--词法分析程序

    小C语言--词法分析程序 Time Limit: 1000 ms Memory Limit: 65535 KiB Submit Statistic Problem Description 小C语言文法 ...

  4. 编译原理 C语言词法分析程序的设计与实现

    词法分析程序 目录 一. 实验题目 二. 实验要求 三. 程序设计说明 四. 源程序 五. 可执行程序 六. 测试报告: 1. 输入 2. 输出 3. 分析说明 一.实验题目 C语言词法分析程序的设计 ...

  5. c语言词法分析程序实验报告,实验一词法分析程序设计与实现

    实验一 词法分析程序设计与实现 一.实验目的: 加深对词法分析器的工作过程的理解:加强对词法分析方法的掌握:能够采用一种编程语言实现简单的词法分析程序:能够使用自己编写的分析程序对简单的程序段进行词法 ...

  6. A - 小C语言--词法分析程序

    Description 小C语言文法 <程序>→<main关键字>(){<声明序列><语句序列>} <声明序列>→<声明序列>& ...

  7. 2n 用c语言编程程序,用C语言编写程序.ppt

    <用C语言编写程序.ppt>由会员分享,可在线阅读,更多相关<用C语言编写程序.ppt(64页珍藏版)>请在人人文库网上搜索. 1.第2章 用C语言编写程序,2.1 在屏幕上显 ...

  8. c语言小程序作业,c语言小程序(c语言简单小程序代码)

    所以特此求经典C语言小程序.谢谢大家的关注!!! #include #include void function(int n){ int i,j,k,x=0; for(i=1;i<=n;i++) ...

  9. linux 易语言窗口程序_易语言开发Linux程序

    令人兴奋的是易语言可以开发Linux程序,易语言是一个跨平台的开发工具,支持Windows及Linux.使用易语言开发Linux程序,您可以在Windows环境下编写基本于Windows的程序,及编写 ...

最新文章

  1. [高中作文赏析]假如真的有时光隧道
  2. c++ 程序执行时间
  3. 快速失败(fail-fast)和安全失败(fail-safe)
  4. 计算机作文点评,未来的电脑作文评语
  5. 6.19决战光荣日,一场魔兽狂欢里的青春、父爱和友谊
  6. node服务器放vue项目,本地Vue项目跨域请求本地Node.js服务器的配置方法
  7. c语言输入n个数按大小输出,输入n个整数并输出,用c语言表达
  8. NLP 中的文本分类
  9. 用VB轻松调用其他程序
  10. 华硕笔记本重装系统按哪个键进u盘启动项
  11. Spring Could+Ant Design Pro表格数据加载
  12. 尚学堂的J2EE教程免费下载(非常经典的JAVA教程)
  13. 三菱gxworks3安装失败_三菱GX软件安装出错处理大全
  14. Javascript上传图片转base64并预览
  15. 使用oligo软件包处理芯片数据
  16. Kmplayer的各种功能设置
  17. 一个测试经理/测试主管/测试总监的工作总结
  18. 云服务器iss列表,【踩坑】发布ASP.NET网站到本地IIS和云服务器
  19. 亚马逊高级产品总监徐霄鹏:如何对不同用户群体采取差异化运营
  20. 每日一犬 · 波尔多犬

热门文章

  1. inventor扳手制作视频_安全的安全帽是怎么制作出来的?
  2. spark安装测试过程中提示console:10: error: not found: value sc
  3. 生产环境常见的HTTP状态码列表
  4. mysql数据库入门教程(3):图形化用户界面SQLyog 的安装和介绍
  5. leetcode 418 整数转罗马数字
  6. Python入门:正则表达式
  7. VTK:vtkBalloonWidget用法实战
  8. JavaScript实现InsertionSort插入排序算法(附完整源码)
  9. wxWidgets:显示和测试 wxDC 功能
  10. boost::process::extend相关的测试程序