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

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

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

3、(11,9)(26,;)(2,if)三、词法分析程序的C语言程序源代码:#i nclude #in clude char prog80,toke n 8,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);do scanf(%c,&ch); progp+=ch; while(ch!=#);p=0;doscaner();switch(syn)case 11:printf( %-10d%5d )n,。

4、sum,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-;brea。

5、k;case +: tokenm+=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;。

6、p-;break; case *: syn=15; tokenm+=ch; break;case /: syn=16; tokenm+=ch; break;case (: syn=27; tokenm+=ch; break;case ): syn=28;toke n m+=ch; break;case : syn=5;toke n m+=ch; break;case : syn=6;toke n m+=ch; break;case ;: syn=26; toke n m+=ch; break;case 、: syn=30; toke n m+=ch; break;case #: syn=0; 。

7、toke n m+=ch; break;case :s yn=17;toke n m+=ch; break;default: syn=-1; break;toke n m+=0;四、结果分析:输入 beg in x:=9: if x9 then x:=2*x+1/3; end #后经词法分析输出如下序列:(begin 1)(x如图5-1所示:10)(: 17)(=18)(911)(; 26)(if2);HC三卜TV译原理比IFAFE exeX9Xend ttbegin Xx01 y 10) 17 is y 11 26、2 ?IH、 23 ) 11 y3 io y 17 18 II、15 10 ) 13 ? 1116 ) 11 2 m、u y。

c语言读取词法并显示坐标,完整版)词法分析器(c语言实现相关推荐

  1. R语言必看推荐:R语言入门经典版(中文版)+R语言实战第二版(中文完整版)

    R语言入门经典(中文版)R for beginners R语言经典教材 第二版 适合初学者 作者:Emmanuel Paradis R 语言实战第二版(中文完整版) R语言实战(第2版)注重实用性,是 ...

  2. 说明使用tc编程的一般步骤 c语言,TC编程手册详解-完整版.doc

    TC编程手册详解-完整版 TC编程手册详解-完整版 本文是TC的第一部分,主要介绍一些TC相关的基础知识,并着重针对循环.变量等TC基本概念中的易混的淆部分加以辨析,即是一份编程初学者的指南,也可算作 ...

  3. c++语言题库,C++题库完整版.doc

    C题库完整版 程序控制结构 本题序号:17 有如下程序: # include # include void main( ) { int s[ ]={123, 234}; cout< for(in ...

  4. 专升本C语言——资料复习大全(需要完整版请私信作者)

    更多资料下载链接如下 专升本C语言--资料复习大全 需要全套资料的请私信作者 第1章 程序设计和C语言 1.1 考试内容 一.计算机程序 二.计算机语言 三.C语言的发展及其特点 四.简单的C语言程序 ...

  5. centos 6.6 mysql5.7_CentOS 6.5/6.6 安装(install)mysql 5.7 最完整版教程-Go语言中文社区...

    CentOS 6.5/6.6 安装(install)mysql 5.7 最完整版教程 Step1: 检测系统是否自带安装mysql [root@Ting ~]#   yum list installe ...

  6. carry函数在C语言中用法,CArry的使用完整版.doc

    CArry的使用完整版 CArray的用法 templateclass CArray:public CObject 参数 TYPE 模板参数指定存储在数组中的对象的类型.TYPE是一个由CArray返 ...

  7. r语言glmnet包系数显示不全_第一章: R语言介绍

    1:R语言的用途 R也是一种为统计计算和绘图而生的语言和环境,R是一个全面的统计研究平台,提供了各式各样的数据分析技术. 2:R语言的使用 R语句由函数和赋值构成,命令提示符为 > ⑴赋值: R ...

  8. c语言迷宫游戏怎么存放坐标,求解迷宫问题(c语言,很详细哦

    <求解迷宫问题(c语言,很详细哦>由会员分享,可在线阅读,更多相关<求解迷宫问题(c语言,很详细哦(5页珍藏版)>请在人人文库网上搜索. 1.求迷宫问题就是求出从入口到出口的路 ...

  9. 5 6c语言上机作业答案,(完整版)C语言考试题库及答案

    C语言理论上机考试选择题部分(共200题) 1.下面程序的输出是___D______ #includevoid main() { int k=11; printf(\} A) k=11,k=12,k= ...

最新文章

  1. 活动报名 | 第三届中国法研杯司法人工智能挑战赛颁奖会日程出炉
  2. iOS LaunchScreen和LaunchImage的转换启动图
  3. Linux中文件颜色所代表的属性和颜色
  4. 【车牌识别】基于matlab GUI RGB颜色模型车牌识别【含Matlab源码 888期】
  5. 如何查看CSDN发布的博客和上传的资源?
  6. 提醒:使用过期Win10预览版后果很严重
  7. 查看电脑开关机时间和记录
  8. js 中国时间转换美国太平洋标准时间
  9. 4.人工智能时代下的大数据
  10. Excel合并计算完成多表格数据汇总求和
  11. 我的小感悟(个人愚见)
  12. 【MybatisPlus】MP来实现一些特殊的查询
  13. 学习SQLSugar,分享给更多人收益
  14. 全球及中国雾化铜和铜合金粉末行业产销需求及发展动态分析报告2022-2028年
  15. 利用Olami SDK 实现语音控制计算器(iOS)
  16. 网络安全职业规划(笔记)
  17. [JZOJ4058]【JSOI2015】子集选取
  18. Codeforces Round #328 (Div. 2) 592 B. The Monster and the Squirrel
  19. 去除谷歌地图api上的各种默认标记
  20. NoSQLRedis的介绍和Redis安装部署,通过yum在线安装Redis,通过源码安装Redis;

热门文章

  1. 如何将图片转换jpg格式?详细步骤
  2. 博弈论——巴什博弈(C++)
  3. SCI论文通讯作者需具备的条件
  4. 超顺磁氧化铁T1磁共振成像对比剂/高单分散超小(小于4 nm)铁氧体纳米颗粒/pDHPMA-Cy5.5-DOTA-Gd
  5. lbm 弛豫时间_弛豫时间的概述
  6. tq2440 linux,移植最新内核Linux4.1.6到TQ2440开发板教程(一)-Go语言中文社区
  7. 2020低压电工考试题库及低压电工模拟考试题库
  8. 倾斜摄影输出的文件格式为OSGB?建模软件可以输出那几种格式
  9. 游戏引擎开发入门教程_v20210102
  10. 华为诺亚实验室:端侧AI模型的技术进展与未来|量子位·吃瓜社