- 1、本文档共138页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)