编译原理-词法分析代码(vc++)(Compiler theory - lexical analysis code (vc++)).doc

编译原理-词法分析代码(vc++)(Compiler theory - lexical analysis code (vc++)).doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理-词法分析代码(vc)(Compilertheory-lexicalanalysiscode(vc))

编译原理-词法分析代码(vc++)(Compiler theory - lexical analysis code (vc++)) Time: 2012-10-30 nights Requirements: enter a string of strings, lexical analysis, and in accordance with the string / numbers format to output Species coding: Symbol, species, symbol, species, symbol, species Begin 1 + 13 = 22 If 2-14 23 Then 3 * 15 = 24 While 4 / 16 = 25 Do 5:17; 26 End 6: = 18 (27) L (l|d) * 10, 20) 28 The 11 digital # 0 21 The formal type of digital lexical are as follows: (+|-| epsilon) dd* (.Dd* | epsilon) (E (+|-| epsilon) dd*| epsilon) PS: input string to #. Running environment: VC++6.0 Explanation: most of the digital part of the search for resources on the web is in the form of dd*, but this experiment requires form, and has done a great deal of effort in the digital part. Unlike the dd* form, there are three places -- ch is numeric, ch is +, then numeric, and ch is - followed by numeric form. However, due to the limited level, a relatively short time, each plus or minus must be in the input digital sign, otherwise it will default + - sign instead of plus and minus. I hope there is a simple way to solve the problem. Source code: #include stdio.h / / I/O library used to define some of the macro variables and #include string.h / / String library function #include math.h / / definition of Mathematical Symbols Library Char, prog[80], token[8]; //prog: buffer; Token: a meaningful string Char ch; //ch: the currently processed characters Int, syn, P, m, N, F, e; //syn: categories: P, m, N: count variables, F, sign numbers, plus and minus numbers, e, 10, and so on Double, sum, //sum, numbers Char *rwtab[6]={, begin, if, then, while, do, end}; The basic table / / initialize Void main (void) / main function { Void scaner (void); / / statement function P=0; Printf (\n, enter string: \n); Do{/ / input buffer Ch=getchar (); Prog[p++]=ch; }while (CH =#!); P=0; Do{/ / lexical analysis and output results Scaner (); Switch (SYN) { Case 11:printf ((%2d,%16g) \n, syn, sum); break;

您可能关注的文档

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档