- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 从正规式到状态转换图 s r ε a Φ ε a r | s r,s r rs s r r* r+ rs* r r * 例 3-6 C语言无符号整数的识别 1. 正规定义式描述 八进制数: ( OCT,值 ) oct→0(0|1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)* 十进制数: ( DEC,值 ) dec→(1|...|9)(0|...|9)* |0 十六进制数: ( HEX,值 ) hex→0x(0|1|...|9|a|...|f|A|…|F)(0|...|9|a|...|f |A|…|F)* s r * 2. 识别不同进制数的状态图 3 4 2 1 0 0-7 0-7 ?(其它) 5 6 1 0 1-9 0-9 ? (其它) 十进制整数 八进制整数 oct→0(0|1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)* dec→(1|...|9)(0|...|9)* |0 * 2. 识别不同进制数的状态图 9 10 8 1 0 ? (其它) 十六进制整数 7 x 0-9,a-f 0-9,a-f 状态图合并 1、从开始状态出发; 2、选择输入符号,构成目标状态集 3、从新状态集出发,重复1、2 hex→0x(0|1|…|9|a|…|f|A|…|F)(0|…|9|a|…|f |A|…|F)* * (HEX,值) (OCT,值) 3. C语言无符号整数识别的状态图 9 8 1 0 其它 2,6,7 x 0-9 ,a-f 0-9,a-f 3 0-7 0-7 其它 5 1-9 0-9 其它 (DEC,值) 其它 4 10 6 * 另一种做法 开始 1 2 0 6 1-9 3 x 0-9 ,a-f 4 0-9 ,a-f 其它 0-9 其它 5 0-7 0-7 其它 (DEC,值) (HEX,值) (OCT,值) 其它 * 4. 从正规文法出发,构造状态图 S→0A A→1B B→2B|2C C→3C|3 oct→0A A →0B|1B|2B|3B|4B|5B|6B|7B B →0B|1B|2B|3B|4B|5B|6B|7B |ε B →.C C → 0C|1C|2C|3C|4C|5C|6C|7C |0|1|2|3|4|5|6|7 * 4. 从正规文法出发,构造状态图 (1)以每个非终结符为状态结点,开始符号对应初态 S (2)增设一个终态 T A B a (3)对于规则 A→aB,画从状态 A 到 B 的弧,标为 a (4) 对于规则 A→a,画从状态 A 到终态 T 的弧,标为 a * 对于规则 A→rB, B→sB,画从状态 A 到状态 B标为 r的弧,从状态B到B的标记为s的弧 A s r B A a T * 利用状态转换图识别单词符号 (1) 从初始状态出发 (2) 读入一字符 (3) 按当前字符转入下一状态 (4) 重复 2,3 直到完成一个单词的识别或者发现错误 在遇到读入的字符是Token的分割符时,若进入的状态是终止状态,说明读入的字符组成一单词;否则,说明输入不符合词法规则 * 3.4 词法分析程序的设计与实现 一种实现:子程序 scan( ) 输入:字符流 输出: Symbol(Code) :单词种别 Attr(value):属性(全局变量) * 1. 数据结构与子例程 数据结构 ch 当前输入字符 token 输入缓冲区(字符数组) symbol 单词种别(子程序的返回值) attr 属性(全局变量) 子程序 Lookup(token):将 token 存入符号表,返回入口指针 isKeyword(token):判别 token是关键字?返回关键字种别或 -1 getchar():从输入缓冲区中读入一个字符放入ch isdigit() isalpha() * 例3-3的状态图的实现算法 1 getchar() 2 WHILE ch 是空格 //跳过空格 2.1 DO getchar(); 3 CASE ch OF 4 isdigit(ch) : 4.1 ch→token; getchar(); 4.2 WHILE isdigit(ch) DO { ch→token; getchar();} 4.3 输入指针回退一个字符; 4.4 将token中的字符串变成数值→attr 4.5 返回 NU
您可能关注的文档
- 2015-2016学年高中历史专题七近代西方民主政治的确立与发展课件人民版必修1要素.ppt
- 2015-2016学年高中化学第四章第4节第2课时硫酸和硝酸的氧化性课件新人教版必修1要素.ppt
- 输血护理(覃塘)讲述.ppt
- 辛劳的蚂蚁上课用讲述.ppt
- 2015-2016学年高中历史专题三近代中国的民主革命3.1太平天国运动课件要素.ppt
- 辛集-模板工程施工方案讲述.doc
- 辨析并修改病句PPT讲述.ppt
- 辛雪峰-中华优秀传统文化解码企业管理【中华讲师网】讲述.ppt
- 辨析病句10看讲述.ppt
- 2015-2016学年高中政治第三单元中华文化与民族精神6.2博大精深的中华文化课件要素.ppt
- 2015-2016第二学期复习题之三要素.doc
- 2015-2016高中政治第二单元文化传承与创新第三课文化的多样性与文化传播第二框文化在交流中传播课件要素.ppt
- 边远井天然气液化回收技术中期答辩2讲述.ppt
- 辽宁省新宾满族自治县高级中学高中英语Unit3Lifeinfuture导学案新人教版必修5讲述.doc
- 辽宁省沈阳市2014届九年级上学期期末考试化学试卷-副本讲述.doc
- 辽宁省沈阳重点高中2016届高三上学期期中考试语文试题及答案讲述.doc
- 2015-2016高中物理7.9《实验验证机械能守恒定律》课件新人教版必修2要素.ppt
- 辽宁省省公司运行技能竞赛试卷讲述.doc
- 2015-6钢筋要素.docx
- 辽宁省葫芦岛市世纪高中2015-2016学年高二上学期第三次教学质量检测数学(理)试卷讲述.doc
最近下载
- 外研版 九年级英语(上册)写作范文.pdf VIP
- IgorPro中文操作手册.pdf VIP
- 剧本杀剧本之电梯惊魂 6人开放.doc VIP
- 高二年级上学期数学常见公式与结论..doc VIP
- 老年人高血压健康知识宣教PPT课件.pptx VIP
- GB∕T 36034-2018 埋弧焊用高强钢实心焊丝、药芯焊丝和焊丝-焊剂组合分类要求(高清版).pdf
- 领导班子巡察整改专题民主生活会对照检查材料三篇.pdf VIP
- JJG 1189.3—2022 测量用互感器第3部分:电力电流互感器.pdf
- 2022年天津市初中学业水平考试生物试题 .pdf VIP
- 全国说课比赛一等奖课件.精品.ppt VIP
文档评论(0)