网站大量收购独家精品文档,联系QQ:2885784924

第4章 词法分析综述.ppt

  1. 1、本文档共138页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 词法分析;词法分析器; 词法分析器的功能可图示如下。其charsequence表示字符序列。;词 法 分 析 器;词法分析器的设计;;单词的识别;4.2 单词的描述工具;DOS系统中命令: dir *.js 如果用正则式,则: .*\.js;表1.常用的元字符; javascript的正则表达式来验证Email地址是否格式正确 正则表达式:/^(.+)@(.+)$/ var emailStr=document.form1.email.value; var emailPat=/^(.+)@(.+)$/; var matchArray=emailStr.match(emailPat); if (matchArray= =null) { alert(Please review emails format!) return false; } ; 一个判断 Email 地址格式的正则表达式 /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;@ ? ? ? 就是字符 @ \w+([\.-]?\w+)* ? ? 表示 1 个或多个基本字符,接着 0 个或多个(0 个或 1 个点或减号接着 1 个或多个基本字符) \. ? ? ? ?就表示点 . \w{2,3} ? ? ? ? ?2 个或 3 个基本字符,例如 cn,com + ? ? ? ?表示前面的项((\.\w{2,3}))有 1 个或多个,例如 .com,.cn,. $ ? ? ? ?结束 / ? ? ? ?前后两个 / 表示中间是正则表达式;4.2 单词的描述工具;例子: Σ={a,b} 正则式e L(e) b+ {b, bb, bbb…} b* {ε,b, bb, bbb…} ;例子: (a|b)* {a,aa,ab,aaa…};定义2.2 设e∈RE,则定义函数L(e)如下: L(Λ)= ? L(ε)= {ε} L(a)={a} L(e*)= L(e)* L(e1|e2)= L(e1)∪L(e2) L(e1? e2)= L(e1)L(e2);定理2.1 设e1 ,e2∈RE,则有: 1:L(e1|e2)=L(e2|e1) 2:L((e1|e2)|e3)=L(e1|(e2|e3)) 3:L((e1e2)e3)=L(e1(e2e3)) 4:L(e1(e2|e3))=L(e1e2|e1e3) 5:L((e1|e2)e3)=L(e1e3|e2e3) 6:L(εe1)=L(e1ε)=L(e1) ;例子: 正则式e L(e) ab* {a,ab,abb,abbb…} ab+ {ab,abb,abbb…} a(a|b)+ {aa,ab,aaa…} a(a|b)* {a,aa,ab,aaa…};语法图 文法 正则式;例子:Σ={a,b} L(a*)={ε,a,aa…} L(ba*)={b,ba,baa…} L(a|ba*)={a,b,ba…} L(aa|bb|ab|ba)={aa,bb,ab,ba} ;例子:∑={a,b};4.3 确定自动机; 每个DA均可用矩阵(状态转换矩阵)或状态转换图来表示。 ;例子:A=(S,∑,δ,s0,F) S={s0,s1,s2 ,s3} ∑={a,b} F={s2,s3} δ(s0,a)=s1 δ(s0,b)=s2 δ(s1,b)=s1 δ(s2,a)=s3 δ(s2,b)=s0 δ(s3,a)=s2;状态转换图如下:; 前一条表明自动机的推理作用,后一条表明其词法分析的作用。 如果β∈L(A),则称β可被A所接受。其中→表示映射,?表示推导。;例子:标识符的正则式: 字母(字母|数字)*;读入字符子程序;例子:FA=({s0,s1,s2,s3},(a,b),f,S0,{s3}) 其中映射f为: f(s0,a)= s1 f(s0,b)= s2 f(s1,a)= s3 f(s1,b)= s2 f(s2,a)= s1 f(s2,b)= s3 f(s3,a)= s3 f(s3,b)= s3;状态转换图:;4.3.2 非确定自动机;定义2.6 设A是一个NDAA=(

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档