- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 3.3.1 Lex源程序 1、正规定义式 letter→A|B|C|…|Z|a|b|c|…|z digit→0|1|2|…|9 identifier→letter(letter|digit)* integer→digit(digit)* 2、识别规则 正规式 动作描述 token1 {action1} token2 {action2} …… tokenn {actionn} * * %{ #include stdio.h #include y.tab.h #define ID 1 #define INT 2 #define EXP 3 #define MULTI 4 #define COLON 5 #define EQ 6 #define NE 7 #define LE 8 #define GE 9 #define LT 10 #define GT 11 #define PLUS 12 #define MINUS 13 #define RDIV 14 #define COMMA 15 #define SEMIC 16 #define RELOP 17 #define ASSGIN 18 int line_no = 1; %} delim [\t\n] ws [delim]+ letter [a-zA-Z] digit [0-9] id {letter}({letter}|{digit})* number {digit}+ %% {ws} ; begin return(BEGIN); end return(END); if return(IF); then return(THEN); else return(ELSE); do return(DO); program return(PROGRAM); {id} {yyval = install_id(); return(ID);} {number} {yyval = install_num(); return(INT);} * * ? ? {yyval =LT; return(RELOP);} =“ {yyval =LE; return(RELOP);} = {yyval =EQ; return(RELOP);} {yyval =GT; return(RELOP);} =“ {yyval =GE; return(RELOP);} “ {yyval =NE; return(RELOP);} + return(PLUS); - return(MINUS); * return(MULTI); / return(RDIV); ** return(EXP); : return(COLON); := return(ASSGIN); , return(COMMA); ; return(SEMIC); \n? ? line_no++; .? ? { fprintf (stderr,%c (0%o): illegal charcter at line %d\n,?yytext[0], yytext[0], line_no); } %% install_id() {……} install_num() {……} * * LEX二义性问题的两条原则 1.最长匹配原则 在识别单词过程中,有一字符串 x x x x x 根据最长匹配原则,应识别为这是 一个符合Pk规则的单词, 而不是Pj和Pi规则的单词。 Pj Pi Pk 2.优先匹配原则 如果有一字符串有两条规则可以同时匹配时,那么用规则 序列中位于前面的规则相匹配,所以排列在最前面的规则优先 权最高。 如:begin:= * * Lex的功能是根据Lex源程序构造一个词法分析程序, 该词法分析器实质上是一个有穷自动机。 Lex的功能是根据Lex源程序生成状态转换矩阵和控制程序 3.3.2 Lex的实现原理 图 3.4 Lex生成的词法分析器结构 * * 三点说明 以上是Lex的构造原理,虽然是原理性的, 但据此就不难将Lex构造出来。 所构造出来的Lex是一个通用的工具, 用它可以生成各种语言的词法分析程序, 只需要根据不同的语言书写不同的LEX源文件 就可以了。 Lex不但能自动生成词法分析器, 而且也可以产
您可能关注的文档
最近下载
- 东兴市三期100MW光伏发电项目.docx VIP
- 江苏大学2021-2022学年第1学期《马克思主义政治经济学原理》期末考试试卷(附标准答案).docx
- 美国水产品生产企业在华注册名单 (2015年6月4日更新).pdf
- 江苏大学 护理综合 2017-2019年考研专业课历年真题.pdf VIP
- 2024-2025学年人教版九年级英语全册单词(配例句).pdf VIP
- 《电动吸引器吸痰技术操作考核评分标准》.docx VIP
- 震动排痰操作技术评分标准.docx VIP
- 大学生职业规划大赛《城市地下空间工程专业》生涯发展展示PPT.pptx
- 100WM光伏发电项目施工组织设计.doc
- 2018年江苏大学111-单独考试思想政治理论考研真题(样题).pdf
文档评论(0)