自上而下语法分析ppt课件_第1页
自上而下语法分析ppt课件_第2页
自上而下语法分析ppt课件_第3页
自上而下语法分析ppt课件_第4页
自上而下语法分析ppt课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章第五章自上而下语法分析自上而下语法分析 语法分析是继词法分析之后编译过程的第2阶段。它的主要义务是对词法分析的输出结果单词序列进展分析,识别合法的语法单位。 语法分析最常用的方法有:优先方法、递归下降法、LL方法和LR方法。 所谓自上而下分析是指从树的根结点开场,为给定的输入串构造一棵语法树。 本章中,我们经过讨论一个普通的非确定的自上而下分析器来讨论上下无关言语的自上而下分析器的设计。 5.1 非确定的下推自动机 下面所要构造的非确定的自上而下分析器下面所要构造的非确定的自上而下分析器属于普通的下推自动机属于普通的下推自动机PDAPDA类。类。 所谓一个下推或栈自动机所谓一个下推或栈自

2、动机Stack Stack AutomatonAutomaton, ,非方式地说,应包含:非方式地说,应包含: 一个输入符号串;一个输入符号串; 一个读头,它从左至右挪动,每次读进一个读头,它从左至右挪动,每次读进一个输入符号;一个输入符号; 一个有穷形状自动机,用于控制整个系一个有穷形状自动机,用于控制整个系统的操作;统的操作; 一个后进先出下推栈,一个后进先出下推栈, 下推自动机的非空挪动下推自动机的非空挪动: : 5.1.1 PDA方式定义方式上说,一个PDA是一个七元组:(Q,H,q0,Z0,F)Q 是形状的有穷集,它的每个元素称为一个形状; 是有穷的字母表,它的每个元素是一个输入符号

3、;H 是有穷的下推栈字符表,它的每个元素称为一个栈符号。q0Q 是该PDA的初态;Z0H 是下推栈的初始符号;F Q 是一个终态集(或接纳形状集);它的每个元素称为终态;(可空)。5.1.1 PDA方式定义 是描画PDA动作与形状变化的。 PDA的动作可用定义式来表示为: q,a,z)=(p1,h1),(p2,h2)(pn,hn) 它的含义为: 在控制器当前形状为q,下推栈顶符号为z ,输入符号为a的情况下,把控制器的形状改为pi,用hi 交换栈顶的z,并让读头右移一格。5.1.2 PDA的 构形和挪动PDA的一个构形是一个三元组:(q,w,h)其中,qQ;w*是尚待扫描的输入串,包括读头当前

4、所指的符号;hH*是栈的内容。PDA的一次挪动可看作是从一种构形变换成另一种构形的一种方式。反过来,构形又为定义PDA的挪动提供了一种更简单的手段。我们称(q,ax,Zh)(p,x,hh)是一次能够的挪动,当且仅当(p,h)(q,a,Z) 。 常用+表示由一次或多次挪动组成的序列。用*表示由零次或多次挪动组成的序列。留意“零次挪动并不改动当前的构形。 5.1.2 PDA的 构形和挪动 PDA M 所识别的言语LM可表示为: LM= *P0,,Z0)*(P,)(空栈接纳或者 LM= *P0,,Z0)*(P,h) pF终态接纳例5.1 思索下表定义的两形状PDA,其的两个形状分别是p和Q,(p,a

5、,Z)=p1,h1,(p2,h2),输入符号是0和1,栈符号是R,B和G。该PDA识别由符号0和1组成的一切回文(Palindrome) 。这个自动机是非确定的,由于在行3和行6包含了可供选择的挪动;也由于无输入符号(如在行7)时照样可进展挪动,而且此时存在相应的选择。该PDA的开场形状时p,初始栈内容时R。它停顿于空栈。用该PDA识别输入串001100,其识别过程如下:p,001100,R p,01100,BR 由行1 或 Q,001100, 由行7(阻塞)p,01100,BR p,1100,BBR 由行3a或 Q,1100,R 由行3bQ, 1100,R Q,1100, 由行10(阻塞)p

6、,1100,BBR p,100,GBBR 由行5p, 100,GBBRp,00,GGBBR 由行6a或 Q,00,BBR 由行6bp,00,GGBBR p,0,BGGBBR 由行4p,0,BGGBBR p,BBGGBBR 由行3a(阻塞)或 Q,GGBBR 由行3b(阻塞)Q,00,BBR Q,0,BR 由行8Q,0,BR Q,R 由行8Q,R Q, 由行10(接纳)5.1.3 上下文无关言语与PDA 联络PDA和上下文无关言语的一个重要定理是:定理5.1 对每一个上下文无关言语L,存在一个恰好识别L的非确定的PDA M,反之亦然。这个定理在编译系统中的实践重要性在于:现有的大多数高级程序设计

7、言语都可用上下文无关文法描画。因此定理5.1隐含了:识别这个言语的机械识别器必是PDA。5.1.3 上下文无关言语与PDA 定理5.1包含两方面含义: 给定一个上下文无关言语,存在一个识别它的PDA M; 反过来,给定一个PDA M,可以根据它构造出一个等价的上下文无关文法。前者对编译程序的构造很有吸引力,但后者那么不然。算法5.1 从CFG到NDPDA给定 CFG G=N,P,S 可以构造 一个相应的非确定的PDA M: M=(Q,H,q0, Z0,F) 它只需一个形状q和下面的转换规那么: 对P中每一个形如Aw的产生式,(q,A)包含(q,w); 对每个a,(p,a,a)包含(q,) 且Q

8、=q=H=Nq0=qZ0=SF为终态集(可空)。这个PDA停顿于空栈。例5.2 思索文法S0S1|c该文法描画言语0*c1*,其中0的个数和1的个数相等。转换规那么是:1.(q,0,0)=(q,)2.(q,1,1)=(q,)3.(q,c,c)=(q,)4.(q,S)=(q,0S1) ,(q,c)(其中可与任何合法输入符号匹配)其中规那么1、2、3根据前面的规那么构造,4根据规那么 构造。运用例5.2分析句子给定输入串00c11,所构造的PDA用下面的挪动序列来接纳它(留意,我们可从构形中省掉形状,由于它总是一样的):(q,00c11,S)4a(q,00c11,0S1)1(q,0c11,S1)4

9、a(q,0c11,0S11)1(q,c11,S11)4b(q,c11,c11)3(q,11,11)2(q,1,1)2(q,) (接纳)输入串,栈和句型由算法5.1构造的非确定的PDA的一个有趣特性是由下面的定理表示出来的。定理5.2 令(q,y,h)是某个文法G相关的NDPDA的恣意构形,其中输入串是xy,假设(q,xy,S)*(q,y,h)那么xh是G的一个最左句型,换言之,S*xh(S是G的开场符号)。上述定理反过来也成立:给定G中的任何句型xh,假设x是一个终结符串,而且h中至多最左符号是终结符,那么,(q,y,h)是该NDPDA的一个构形,而且 (q,xy,S)*(q,y,h)5.2

10、消除左递归方法 5.2.1 文法的左递归性 文法的左递归性属文法递归性的一种,在一文法中,一切形如 AxAy x,y (N) *,AN称为递归产生式(或自嵌入产生式)。 假设其中x=,那么有AAy称之为直接左递归产生式。5.2.1 文法的左递归性 假设其中y=,那么有AxA称之为直接右递归产生式。 假设一文法中至少含有一条递归产生式,或在用该文法推导符号串的过程中,存在AA或AA或AA方式的推导,那么称该文法是(直接)递归的。非确定的自顶向下分析存在的问题 非确定的自上而下的分析法:对任何输入串W试图用一切能够的方法,从文法的开场符号出发,自上而下地为它建立一棵语法树。或者说,为输入串寻觅一个

11、最左推导,假设试探胜利,那么W为相应文法的句子,否那么W就不是文法的句子。这种分析过程本质上是一种穷举试探过程,反复运用不同的规那么,谋求匹配输入串的过程。回溯景象 侯选式:我们把文法中每个非终结符A的右部能够有多个称为A的侯选式。 当某非终结符对应多个侯选式时,假设其中有几个侯选式的右部左端第一个符号一样,那么就会使得语法分析程序无法根据当前的输入符号准确地决议选用哪个侯选式来交换A,只能采用试探的方法,任选某个侯选式去试探一次。假设不能导致最终地匹配,只得再换另一个侯选式去试探,这就呵斥了回溯景象。所以这种带回溯的自顶向下分析法,实践上是采用了一种穷尽一切能够选择的试探法。 回溯景象:在回

12、溯之前,编译程序实践曾经做了大量薄记任务,包括语义翻译任务在内。在回溯时,要去除这些内容,然后开场重新薄记,这就降低了分析效率。 左递归景象:回溯使语法分析器的动作不稳定,左递归会使分析程序进入到无穷的循环之中,这些问题都和描画言语的文法有直接关系。 5.2.2 用扩展的BNF表示法消除左递归在前面,文法的产生式都是采用巴科斯范式BNF描画的,它使得文法更严谨、简约和明晰。为了消除文法的左递归,需对巴科斯范式进展扩展,添加以下元符号: 花括号 :表示符号串x出现零次或多次。:n表示符号串x能反复出现的最大次数,m表示符号串x能反复出现的最小次数。 方括号 方括号用来表示可选项。x = x或,表

13、示符号串x可出现一次或不出现。可以用来定义某些高级言语中的“条件语句。 圆括号 利用圆括号可提出一个非终结符的多个产生式右部的公共因子。例如, Axy|xw|xz 可写成 Ax(y|w|z)xnmx利用下面的两条规那么,可把包含直接左递归的产生式转换成用扩展BNF表示法表示的产生式。 提公因子每当一条产生式中有公因子可提的时候,就把它提出来,假设原产生式是 Ax|xy那么可写成 Ax(y|),这里把当作最后一个候选式。 假设 Ax|y|z|Av是一组产生式,且它只需一个直接左递归的右部位于最后,那么可把这组产生式变换成如下方式: A(x|y|z)v也就是说,运用上述规那么,可把产生式改写成相对

14、于某个非终结符而言,至多只含一个直接左递归的右部;然后,利用上述规那么消除这个直接左递归。 5.2.3 直接改写文法 设产生式 U Uxy此产生式称为直接左递归方式。其中,x和y是两个符号串,y的首字符不是U。 产生式为直接左递归方式,可直接改写为一个等价的非直接左递归方式 U yU U xU 其中U是新引进的非终结符号。显然,这种方式与原方式是等价的,即从A推出的符号串是一样的。 直接左递归更普通的方式 U Ux1Ux2Uxmy1y2yn其中,xi (i=1, 2, , m) yi (i=1, 2, , n), yj的头字符都不是U, xi 都不是,那么有 U y1U y2UynU U x1

15、U x2UxmU 消除左递归举例。 例如 :有文法: SSa 可改写为:SbS Sb SaS| 表达式文法: 消除左递归后: EE+T|T ETE E+TE| TT*F|F TFT T*FT| F(E)|i F(E)|i 消除间接左递归 1重新改写文法 2先将间接左递归变为直接左递归,然后再按上述方法消除。 例1AaB 用12去交换3中的A可得: 2ABb 1BaBc 3BAc 2BBbc 4Bd 3Bd 消除左递归后可得: B(d|aBc)B BbcB| 最终文法为: 1AaB 2ABb 3B(d|aBc)B 4BbcB| 5.2.4 消除一切左递归的算法假设一个文法不含形如A+A的推导,也

16、不含有以为右部的产生式,那么,执行下面的算法将保证消除该文法中的一切左递归: 将文法G的一切非终结符整理成某一顺序U1,U2,Un。 for i:= 1 to n do begin for j:= 1 to i1 do begin把产生式Ui Uj交换成 Ui 12m (其中Uj 12m 是该文法中关于Uj的一切产生式) end; 消除Ui产生式中的直接左递归 end; 化简改写之后的文法,删除多余产生式。5.3 LL(k)文法 LL(k)文法是上下文无关文法的一个真子集。同时,LL(k)文法也是允许采用确定的自上而下分析技术的最大一类文法。 LLK的含义:自左至右扫描(输入串),自上而下进展

17、最左推导。K的含义是指在分析的过程中至多向前查看K个符号,普通情况下,K1。 给定一文法,判别它能否是一个LL(k)文法并不是很容易的事。我们将给出一个判别条件。根据这个条件就能推断一个给定的文法能否是LL(k)文法。此外,由于分析表是分析器的中心,因此,我们将给出构造LL(k)分析器的分析表的方法。 LL1文法的引入 为了保证可以进展确定的自顶向下的分析,文法应该满足在分析的过程中,每次对产生式的选择都是独一的。S-文法:举例 每个产生式右边都以终结符开场; 同一个非终结符的各个侯选式的首终结符不同;Q-文法:举例 每个产生式右边都为或以终结符开场; 具有一样左部的产生式具有不相交的可选集;

18、LL1文法: 一个上下文无关文法称为是LL1文法,当且仅当同一非终结符的各个产生式的可选集互不相交。 5.3.1 LL(1)文法的判别条件 按照前面所述方法改造,消除左递归后的文法不一定就是一个LL(1)文法,还必需借助于某种判别条件才干确定。为此,我们将引进三个集合:FIRST,FOLLOW和SELECT。 先定义集合FIRST和FOLLOW。 设是文法G的一个符号串,(VNVT)*,定义 FIRST() = a a, aVT, (VNVT)*特别,假设有 ,那么FIRST。即,FIRST()是从可推导出的一切首终结符或能够的。 设S是文法的识别符号,U VN ,定义 FOLLOW(U) =

19、 bS xUby,bVT,x, y(VNVT)*假设S xU,那么规定“$FOLLOW(U)。即,FOLLOW(U)是文法的一切句型中紧接在U之后出现的终结符或$($不是文法符号,而是一个特定的终了符)。*再来看看SELECT集合。假定U是文法G的任一产生式,其中UVN,(VNVT)*,集合SELECT(U)的构造如下: 利用上面的三个集合可建立LL(1)文法的判别条件如下:令G是一个CFG,当且仅当对于G中每个具有一样左部的产生式(即一个非终结符的一切产生式) U1|1|n都有 SELECT (Ui)SELECT(Uj)= (ij, i, j=1, 2, , n),那么文法G是一个LL(1)

20、文法。 FIRST (), 当不可空 FIRST()FOLLOW(U), 否则 SELECT(U) = 5.3.2 集合FIRST、FOLLOW与SELECT的构造1.FIRST的求法:设A是一产生式,1假设=a,且aVt,那么FIRST=a;2假设=X,X是非终结符XVn,且X=*b,那么把终结符b参与到FIRST中;3假设=X1X2Xk,X1,X2,Xk都是非终结符,而X1X2Xi =* ,那么把FIRSTXi+1Xk参与到FIRST中,其中1ik-1;假设X1X2Xk ,那么把FIRST()参与到FIRST()中。 2.FOLLOWA的求法:1假设有产生式BAa,a是终结符,把a参与到F

21、OLLOWA中;2假设有产生式BAX,X是非终结符,那么把FIRSTX参与到FOLLOWA中;3假设BaA,或BaA,但=* 那么把FOLLOWB参与到FOLLOWA中;4假设A是文法的开场符号,那么把终了符$参与到FOLLOWA中。 3. SELECT可选集的求法: 设A是文法G的恣意产生式,它的编号为i,那么它的可选集SELECTi定义如下:1假设,且是不可空的,那么SELECTi=FIRST;2假设,但是可空的,那么SELECTi=FIRST FOLLOWA;3假设=,即产生式为A那么SELECTi=FOLLOWA。 例5.9 设文法G32 S:(1) S A (2) A BA (3)

22、A iBA(4) A (5) B CB (6) B +CBB (8) C ) A* (9) C (SELECT (AiBA)SELECT(A)= FIRST(iBA)(FIRST()FOLLOW(A)= i*, $, =,SELECT (B +CB)SELECT(B) = FIRST(+CB)(FIRST()FOLLOW(B)= +i, *, $, =,SELECT (C )A*)SELECT(C ( )= FIRST( )A*)FIRST ( ( )= ) ( =。 此文法G是一个LL(1)文法需求留意的是,对于LL(1)文法,利用SELECT集,我们还可以得到非常有助于句子分析的结果:在分

23、析过程中的某一步,当非终结符U正处于栈顶时,假设aSELECT (U)是当前的输入符号,那么可立刻选用产生式U;假设aSELECT (U)是当前的输入符号,那么可选用产生式U。由于LL(1)文法的任何一对具有一样左部的产生式的SELECT集是不相交的,因此,根据现行的非终结符(已在栈顶)和当前的输入符号就能独一地确定分析过程中的下一步动作,也就是说,我们完全可以为LL(1)文法构造一个确定的分析器。5.4 确定的LL(1)分析器的构造主要由三个部分组成:主要由三个部分组成: 1 1LL(1)(LL(1)(预测预测) )分析表分析表2 2分析栈分析栈3 3分析器总控程序分析器总控程序 5.4.1

24、 LL(1)5.4.1 LL(1)分析表的构造分析表的构造 预测分析表是根据文法产生式的可选集预测分析表是根据文法产生式的可选集(SELECT)(SELECT)构造的,可用一个二维数组构造的,可用一个二维数组 MU,aMU,a来描画。来描画。 行:文法中一切非终结符行:文法中一切非终结符VNVN。 列:文法中一切终结符列:文法中一切终结符VTVT及文法终了及文法终了符号符号$ $。 矩阵元素:当前行非终结符矩阵元素:当前行非终结符VNVN面临列面临列终结符终结符 VT VT时,继续推导所应采用时,继续推导所应采用的产生的产生 式产生式标号式产生式标号 方法方法: : 假设假设 a SELECT

25、(U ) a SELECT(U ) 那么那么 MU,a = U MU,a = U MU,aMU,a中也能够存放一个中也能够存放一个ERRORERROR,表示此时,表示此时输入串中存在语法错误。输入串中存在语法错误。例5.11 对于例5.9中的文法G S,构造分析表。对于产生式S A, FIRST(A)=(, ), MS, ( = S A,MS, ) = SA。对于产生式ABA, FIRST(B)=(, ), MA, C = A BA,MA, ) = A BA。对于产生式A iBA, FIRST (iBA) = i, MA, i= A iBA。对于产生式A , FOLLOW(A)=* , $,

26、MA, * = A , MA, $=A 。对于产生式对于产生式BCB, FIRST(C) = (, ), MB, C = B CB,MB, ) = BCB。对于产生式对于产生式B +CB, FIRST(+CB) = +, MB, + = B +CB。对于产生式对于产生式B , FOLLOW(B) = i, *, $, MB, i = B ,MB, * = B ,MB, $ = B。对于产生式对于产生式C )A*, FIRST ( )A*) = ) , MC, ) = C )A*。对于产生式对于产生式C (, FIRST ( ) ) = ( , MC, ( = C (。分析表M 5.4.2 LL

27、(1)分析器的总控算法LL(1)分析器就是带有LL(1)分析表的一个PDA,也称预测分析程序。下面给出LL(1)分析器的总控算法: 最初,分析器把文法的开场符号S置于栈顶(假定输入串以$终了); 假设栈顶为一终结符,而且与当前输入符号匹配,那么读头前进一位置(扫描下一输入符号),并逐出栈顶符号。否那么报错。(匹配动作) 假设栈顶符号是一非终结符U,且当前的输入符号为a,那么查看分析表M,假设MU,a置有关于U的产生式Uw,那么先从栈中逐出U再把w 反序进栈;假设w=,那么不推进任何信息进栈,仅逐出栈顶符号;假设MU,a为空白,那么调用出错处置子程序。(运用动作) 反复步骤、,直至栈变为空。 该

28、分析器停顿于空栈。(接纳) 例5.14 按照LL1分析器总控算法,对文法G32S的符号串 ( i (进展分析,分析过程见下表。分析结果阐明该符号是文法G32S的一个句子。 LL(1)LL(1)分析法的优缺陷分析法的优缺陷: :预测分析法是确定的自顶向下分析,不会预测分析法是确定的自顶向下分析,不会 产生回溯景象。产生回溯景象。分析时间大约正比于程序长度。分析时间大约正比于程序长度。具有良好的诊断和错误恢复才干。具有良好的诊断和错误恢复才干。预测分析表较其它分析方法中的分析表相预测分析表较其它分析方法中的分析表相 对较小,节省空间。对较小,节省空间。只适用于一类可用预测分析文法描画的语只适用于一

29、类可用预测分析文法描画的语 言的语法分析。存在对非言的语法分析。存在对非LLLL1 1文法的改文法的改造问题。造问题。5.5 LL(k)文法的几个结论可以证明: LL(k)文法是不含左递归的; LL(k)文法是无二义性的; 一文法G是LL(1),当且仅当对于G的每一非终结符U的任何两个不同产生式A|,下面的条件成立:FIRST()FIRST()= ;,中至多只需一个能推出空串;假设 ,那么FIRST()FOLLOW(A)= 。*5.6 递归下降分析程序及其设计 递归下降法的实现思想: 递归下降法又称为递归子程序法,是比较简单、直观,易于构造的一种语法分析方法。它的实现思想是对应文法中每个非终结

30、符编写一个递归(子程序)过程,每个过程的功能是分析与识别由该非终结符推出的串,当某非终结符的产生式有多个侯选式时可以按LL1方式可独一地确定选用某个侯选式进展推导。递归子程序的设计方法 普通情况下,用非终结符表示过程的名字,过程体那么按产生式右部符号串顺序编写。每匹配一个终结符,那么再读入下一个符号,对于产生式右部的每一个非终结符,那么调用相应的过程。当一个非终结符对应多个侯选式时,那么过程体将按可选集来决议选用哪个侯选式。在递归下降法中,递归子程序数等于文法中的非终结符个数。 构造递归下降分析程序时,每个函数名是相应的非终结符,函数体那么是根据规那么右部符号串的构造编写。 1当遇到终结符a时

31、,那么编写语句: if 当前读入的输入符号=a,读入下一个符号; 2当遇到非终结符A时,那么编写语句调用相应的函数A; 3当遇到A时,那么编写语句: if当前读入的符号FOLLOWA,ERROR( ); (4)当某个非终结符的规那么有多个侯选式时,按LL1文法的条件独一地选择一个侯选式进展推导。 5.6.1 框图设计 例5.15 设文法G S: S (A)aAb A eAdSA A dA此文法的递归下降程序框图设计如下所示。图中省略了递归入口RI和递归出口RO部分,假设采用低级言语编程,只需求在程序框图的开头和末尾加上这两个部分。 5.6.2 程序设计 例5.16 例5.15中的文法G S:

32、子程序P(S): READ(ch) if ch = ( then begin READ(ch); P(A); if ch = ) then goto L else error end else if ch a then error else begin READ(ch); P(A); if ch = b then goto L else error end L: READ(ch); return子程序P(A): if ch = e then begin READ(ch); goto L end if ch d then error P(S); L: P(A); return子程序PA: L:

33、if ch = d then begin read(ch); goto L end else if ch = b then goto L else if ch = ) then goto L else error L: return 问题:为什么要编成递归子程序? 由于文法具有递归性。前面曾经讲过,自顶向下分析不能处置左递归文法,假设有左递归,那么应改写文法,但是消除了左递归并不等于消除了文法中的一切递归性质,此时文法有右递归性或自嵌入性。如在文法中能够有如下规那么: UU UU 此仍为递归规那么,所以要编成递归子程序。递归下降法的优缺陷: 优点: 最主要一点是编写速度快; 由于分析器和文法的

34、严密对应性,容易保证语法分析器的正确性。至少使得错误都变得简单和易于发现。 缺陷: 在句法分析期间高深度的递归调用影响了分析器的效率,许多时间要破费在递归子程序的衔接上。5.7 带回溯的自上而下分析法不带回溯的自上而下分析法,并不适用于一切的上下文无关文法,必需对文法加以限制;而带回溯的自上而下分析法,对上下文无关文法具有通用性,几乎没有限制,但速度慢是这种分析法的致命弱点。B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3

35、C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZn

36、VkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H

37、5z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z-w&t!piRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkSh

38、PdMaJ7F4C1z)w&s!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgP9H6E2B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w

39、*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQ

40、eNbJ8G5D1A-x*t$qYnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0

41、y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWgPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRf

42、OcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z

43、)w&s!pXmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaIB+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOd

44、LaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w

45、*t$qYnVjSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论