下载此文档

C语言实现词法分析程序设计参考.docx


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
词法分析一、实验目的设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。二、(1)关键字:beginifthenwhiledoend所有的关键字都是小写。(2) 运算符和界符:=+-*/<<=<>>>==;()#(3) 其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义:ID=letter(letter|digit)*NUM=digitdigit*(4)空格有空白、制表符和换行符组成。 空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。: 否输入串结束:17If2=:18Then3<是20wile4<>21do5结束<=22end6>23*letter|digit)lettet(10>=24dightdight*11=25+1326—14(27*15)28/16#:输入:所给文法的源程序字符串输出:其中:二元组(syn,token或sum)构成的序列。syn为单词种别码;token为存放的单词自身字符串;sum为整型常数。例如:对源程序beginx:=9:ifx>9thenx:=2*x+1/3;end# 的源文件,经过词法分析后输岀如下序列:(1,begin)(10,x)(18,:=)(11,9)(26,;)(2,if)三词法分析程序的算法思想: 、算法的基本任务是从字符串表示的源程序中识别岀具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类, 拼出相应的单词符号。主程序示意图:-1所示。其中初始包括以下两个方面:⑴关键字表的初值。关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表) ,当扫描程序识别出标识符时,查关键字表。如能查到匹配的单词,则该单词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下:Char*rwtab[6]={ “begin”, “if”, “then”, “while”, “do”, “end”,};置初值调用扫描子程序输出单词二元组图1-1(2)程序中需要用到的主要变量为 syn,:首先设置3个变量:①token用来存放构成单词符号的字符串; ②sum用来整型单词; ③syn用来存放单词符号的种别码。扫描子程序主要部分流程如图 1-2所示。变量初始化忽略空格是 是是否文件结束? 返回否其他 符号syn字母 数字 否对不同符号给syn=10岀相应的运算符、界符等符号报错拼字符串是否关键字? 是为对应关键字的单词种别码拼数syn值syn=11返回图1-2四、词法分析程序的C语言程序源代码:#include<>#inelude<>charprog[80],token[8],ch;intsyn,p,m,n,sum;char*rwtab[6]={egin,if, hen,while,do,end};scaner();main(){P=0;pleaseinputastring(endwith'#'):/n);do{scanf(%c,&ch);prog[p++]=ch;}while(ch!

C语言实现词法分析程序设计参考 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人国霞穿越
  • 文件大小37 KB
  • 时间2020-10-23