版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编译系统原编译系统原 理理电气与信息学院 王 艳5.1 5.1 规范推导、规范句型和规范规约规范推导、规范句型和规范规约5.2 FIRST5.2 FIRST集合和集合和FOLLOWFOLLOW集合集合5.3 5.3 递归下降分析递归下降分析5.4 LL(1)5.4 LL(1)分析方法分析方法5.5 SLR(1)5.5 SLR(1)分析器分析器5.6 LR(1)5.6 LR(1)分析器分析器5.7 LALR(1)5.7 LALR(1)分析器分析器第五章第五章 语法分析语法分析- -自底向上分析自底向上分析5.1 5.1 规范推导、规范句型和规范归约规范推导、规范句型和规范归约自底向上分析:自底向
2、上分析:从输入符号串开始,反复查找当前句型从输入符号串开始,反复查找当前句型的句柄,并使用规则,将找到的句柄归约成相应的非终的句柄,并使用规则,将找到的句柄归约成相应的非终结符,直到规约到开始符号。结符,直到规约到开始符号。基本方法:基本方法:从句子出发,反复利用产生式做归约从句子出发,反复利用产生式做归约 (用产生式的左部替代右部),逐步构造语法分(用产生式的左部替代右部),逐步构造语法分析树,最后得到文法的开始符号析树,最后得到文法的开始符号. .核心:核心:寻找句型与句柄的匹配寻找句型与句柄的匹配5.1 5.1 规范推导、规范句型和规范归约规范推导、规范句型和规范归约例例5-1. S a
3、 A c B e5-1. S a A c B e A A b A A bb b B d B d 分析分析“abbcdeabbcde”是否为该文法的句子是否为该文法的句子abbcde aAbcde aAcde aAcBe Sabbcde aAbcde aAcde aAcBe S规范推导:最右推导,得到的句型为规范句型规范推导:最右推导,得到的句型为规范句型规范归约:最左归约,规范推导的逆过程。即在分析的规范归约:最左归约,规范推导的逆过程。即在分析的每一步,将当前句型的句柄归约成相应的非终结符。每一步,将当前句型的句柄归约成相应的非终结符。a b b c d ea b b c d eAABSA
4、bA bA A bA A bB dB dS a A c B eS a A c B e5.1 5.1 规范推导、规范句型和规范归约规范推导、规范句型和规范归约5.1 5.1 规范推导、规范句型和规范归约规范推导、规范句型和规范归约a ab bbcdeabcdeaAbAbcdeaAccdeaAcd deeaAcBeaAcBe S S句柄:最左直接短语句柄:最左直接短语5.2 5.2 自底向上分析方法的一般过程自底向上分析方法的一般过程自底向上分析也称移进归约法自底向上分析也称移进归约法bcde #Aa#移进归约移进归约控制程序控制程序产生式序列产生式序列栈内容栈内容 + 输入缓冲区内容输入缓冲区内
5、容 # 句型句型 #栈栈输入缓冲区输入缓冲区分析表分析表5.2 5.2 自底向上分析方法的一般过程自底向上分析方法的一般过程步骤步骤 符号栈符号栈 输入符号串输入符号串 动作动作145678910111232#a#ab#aA#aAb#aA#aAc#aAcd#aAcB#aAcBe#S#Sabbcde#bbcde#bcde#bcde#cde#cde#de#e#e#左界符进栈进栈进栈用Ab归约进栈用AAb归约进栈进栈用Bd归约进栈用SaAcBe归约接受5.2 5.2 自底向上分析方法的一般过程自底向上分析方法的一般过程如何寻找句柄是关键问题:算符优先方法和如何寻找句柄是关键问题:算符优先方法和LRL
6、R分析法分析法5.3 LR5.3 LR分析法分析法LRLR分析方法对文法适应性强;分析能力强;对源程序中分析方法对文法适应性强;分析能力强;对源程序中的错误诊断灵敏;但方法复杂,的错误诊断灵敏;但方法复杂,k k值越大,分析方法越值越大,分析方法越复杂。复杂。LRLR(0 0)分析是其中最简单的,但分析能力弱,)分析是其中最简单的,但分析能力弱,实用性差。实用性差。LRLR(k k)分析方法:)分析方法:L L:从左到右扫描所给定的输入串:从左到右扫描所给定的输入串R R:以相反的方向构造该输入串的最右推导:以相反的方向构造该输入串的最右推导k k:做出分析决定需要向前看的输入符号的个数:做出
7、分析决定需要向前看的输入符号的个数5.3 LR5.3 LR分析法分析法5.3.1 LR5.3.1 LR分析器的逻辑结构分析器的逻辑结构a1 ai an #总控程序总控程序动作表动作表action转移表转移表goto产生式序列产生式序列状态符号栈状态符号栈输入缓冲区输入缓冲区分析表分析表SmSm-1S1S0XmXm-1X1#5.3 LR5.3 LR分析法分析法5.3.2 LR5.3.2 LR分析表的构成分析表的构成(1 1)移近()移近(S Sn n):):将输入符号移近符号栈,将状态将输入符号移近符号栈,将状态n n移近状态栈,输入指针指向下一个输入符号。移近状态栈,输入指针指向下一个输入符号
8、。(2 2)归约()归约(R R):):用产生式左侧的非终结符替换栈顶的句柄。用产生式左侧的非终结符替换栈顶的句柄。(3 3)接受()接受(A A):):输入符号达到右界符输入符号达到右界符# #时,且符号栈只有文法的开始符号,则分析成功结束。时,且符号栈只有文法的开始符号,则分析成功结束。(4 4)报错()报错(E E):):在状态栈顶状态,输入符号为不应该遇到的符号时,则报错。在状态栈顶状态,输入符号为不应该遇到的符号时,则报错。5.3 LR5.3 LR分析法分析法5.3.2 LR5.3.2 LR分析表的构成分析表的构成文法文法G G:(0 0)S SA A(1 1)A A(A A)(2
9、2)A Aa a5.3 LR5.3 LR分析法分析法5.3.35.3.3LRLR分分析析过过程程5.3 LR5.3 LR分析法分析法5.3.3 LR5.3.3 LR分析过程分析过程文法文法G G:(0 0)S SA A(1 1)A A(A A)(2 2)A Aa a利用分析表分析利用分析表分析符号串符号串“(a a)”步骤步骤状态栈状态栈 符号栈符号栈 输入符号串输入符号串ACTIONGOTO10#(a)#S2202#(a)#S33023#(a)#R244024#(A)#S550245#(A)#R11601#A#ACCEPT5.3 LR5.3 LR分析法分析法5.3.3 LR5.3.3 LR分
10、析过程分析过程5.4 LR(0)5.4 LR(0)分析器分析器拓广文法:使文法只有一个以识别符号作为左部的产生拓广文法:使文法只有一个以识别符号作为左部的产生式,从而构造出来的分析器有唯一的接受状态。式,从而构造出来的分析器有唯一的接受状态。例例5-3.5-3.对文法对文法G G:E ET|E+T|E-TT|E+T|E-T,T Ti|(E)i|(E)进行拓广进行拓广(0 0)S SE E(1 1)E E T|E+T|E-TT|E+T|E-T(2 2) T Ti|(E)i|(E)5.4 LR(0)5.4 LR(0)分析器分析器5.4.1 5.4.1 活前缀和可归活前缀活前缀和可归活前缀 设设 是
11、一个规范句型,其中是一个规范句型,其中 表示句柄,表示句柄, ,如果如果 ,那么称符号串,那么称符号串 是句型是句型 的活前缀,其中的活前缀,其中 含有完整句柄含有完整句柄 ,称为可归,称为可归活前缀。活前缀。对规范句型来说,活前缀可有多个,可归活前缀只有一个对规范句型来说,活前缀可有多个,可归活前缀只有一个t*tVtruuu.21)1 (.21riuuurtruuu.21例例5-45-4:有文法:有文法G G:E E T|E+T|E-TT|E+T|E-T, T Ti|(E)i|(E)找出规范句型找出规范句型E+(i-i)E+(i-i)的活前缀和可归活前缀的活前缀和可归活前缀5.4 LR(0)
12、5.4 LR(0)分析器分析器5.4.1 5.4.1 活前缀和可归活前缀活前缀和可归活前缀活前缀:活前缀:E E,E+E+,E+(E+(,E+(iE+(i可归活前缀:可归活前缀: E+(i E+(iE+ETE()-ETiTiiE(5.4 LR(0)5.4 LR(0)分析器分析器5.4.2 LR(0)5.4.2 LR(0)项目项目 对某个文法对某个文法G G来说,如果来说,如果 为为G G的一条规则,的一条规则,那么对规则右部加上一个圆点那么对规则右部加上一个圆点“”,就成为一个项,就成为一个项目。形式为目。形式为 。21A21A例如:例如:S SE E:S SEE, S SEEE EE-TE-
13、T:E EE-TE-T,E EE-TE-T,E EE-TE-T,E EE-TE-T5.4 LR(0)5.4 LR(0)分析器分析器5.4.2 LR(0)5.4.2 LR(0)项目项目 项目中点后面的符号称为该项目的后继符号。根项目中点后面的符号称为该项目的后继符号。根据项目点的位置和后继符号,把项目分成以下几种:据项目点的位置和后继符号,把项目分成以下几种:(1)(1)移近项目:后继符号为终结符号,移近项目:后继符号为终结符号, E EE-TE-T(2)(2)待约项目:后继符号为非终结符,待约项目:后继符号为非终结符, E EE-TE-T(3)(3)归约项目:后继符号为空,归约项目:后继符号为
14、空, E EE-T E-T (4)(4)接受项目:文法的开始符号接受项目:文法的开始符号S S的归约项目,的归约项目, S SEE5.4 LR(0)5.4 LR(0)分析器分析器5.4.3 5.4.3 构造项目活前缀的有穷自动机构造项目活前缀的有穷自动机1 1、项目集的闭包运算、项目集的闭包运算 设设I I为一项目集,为一项目集,I I的闭包运算的闭包运算CLOSURE(I)CLOSURE(I)定义如下:定义如下:(1)I(1)I中的每一个项目都属于中的每一个项目都属于CLOSURE(I)CLOSURE(I);(2)(2)如项目如项目 属于属于CLOSURE(I)CLOSURE(I),且,且X
15、 X为非终结符为非终结符号,则将形式为号,则将形式为 的项目添加到的项目添加到CLOSURE(I)CLOSURE(I)中;中;(3)(3)重复重复(1)(2) (1)(2) ,直到,直到CLOSURE(I)CLOSURE(I)封闭为止。封闭为止。21XAX5.4 LR(0)5.4 LR(0)分析器分析器5.4.3 5.4.3 构造项目活前缀的有穷自动机构造项目活前缀的有穷自动机1 1、项目集的闭包运算、项目集的闭包运算解:解:CLOSURE(I)=CLOSURE(I)=EEE CLOSURE(I)= CLOSURE(I)=EEEEEE+T,EE+T,ETT CLOSURE(I)= CLOSUR
16、E(I)=EEEEEE+T,EE+T,ETT T TTT* *F,TF,TFF CLOSURE(I)= CLOSURE(I)=EEEEEE+T,EE+T,ETT T TTT* *F,TF,TFFFF(E), F(E), Fii 例例5-6 5-6 有文法有文法EE,EE,EE+T, EE+T, ET, TT, TT T* *F,TF,TF, FF, F(E), (E), F Fi,i,设项目集设项目集I=I=EEE,求,求CLOSURE(I)CLOSURE(I)5.4 LR(0)5.4 LR(0)分析器分析器5.4.3 5.4.3 构造项目活前缀的有穷自动机构造项目活前缀的有穷自动机2 2、项
17、目集之间的转换函数、项目集之间的转换函数GOGO项目的状态转换:项目的状态转换:XA XA读X操作 设设I I是一个项目集,是一个项目集,X X是任意一个文法符号,则项目是任意一个文法符号,则项目集之间的转换用集之间的转换用GOI,X GOI,X 函数表示,定义为:函数表示,定义为: GOI,X=CLOSURE(J) GOI,X=CLOSURE(J)其中,其中,J=J=任何形如任何形如 的项目的项目| I XAXA5.4 LR(0)5.4 LR(0)分析器分析器5.4.3 5.4.3 构造项目活前缀的有穷自动机构造项目活前缀的有穷自动机2 2、项目集之间的转换函数、项目集之间的转换函数GOGO
18、解:解:J=EJ=EE+TE+T CLOSURE(J)=E CLOSURE(J)=EE+T TE+T TTT* *F,TF,TFF F F(E), F(E), Fii 例例5-7 5-7 有项目集有项目集I=I=EE,EE,EE+TE+T求求GOI,+GOI,+5.4 LR(0)5.4 LR(0)分析器分析器5.4.3 5.4.3 构造项目活前缀的有穷自动机构造项目活前缀的有穷自动机3 3、举例说明识别活前缀的有穷自动机的构造方法、举例说明识别活前缀的有穷自动机的构造方法(1)(1)从文法的开始符号开始。将从文法的开始符号开始。将S SA A作为有穷自动机的作为有穷自动机的开始状态开始状态0
19、0,C C0 0=S=SAA。 S SAA称为基本项目。称为基本项目。 (0)S(0)SA A(1)A(1)A(A)(A)(2)A(2)Aa a(2)(2)对项目集中的各成员进行闭包运算,形成新的初始对项目集中的各成员进行闭包运算,形成新的初始状态状态C C0 0=S=SA,AA,A(A),A(A),Aa a 。 (3)(3)构造构造C C0 0的后继项目集,分别针对的后继项目集,分别针对A A( (a a进进行构造,如下表所示。行构造,如下表所示。 5.4 LR(0)5.4 LR(0)分析器分析器5.4.3 5.4.3 构造项目活前缀的有穷自动机构造项目活前缀的有穷自动机3 3、举例说明识别
20、活前缀的有穷自动机的构造方法、举例说明识别活前缀的有穷自动机的构造方法(0)S(0)SA A(1)A(1)A(A)(A)(2)A(2)Aa a(3)(3)构造构造C C0 0的后继项目集的后继项目集 输入符号输入符号项目集项目集状态状态转换函数转换函数AS SAAC1GO0,A=1(A A (A) (A)A A(A)(A)A AaaC2GO0,)=2aA AaaC3GO0,a=3C C0 0=S=SA,AA,A(A),A(A),Aa a 5.4 LR(0)5.4 LR(0)分析器分析器5.4.3 5.4.3 构造项目活前缀的有穷自动机构造项目活前缀的有穷自动机3 3、举例说明识别活前缀的有穷自
21、动机的构造方法、举例说明识别活前缀的有穷自动机的构造方法(0)S(0)SA A(1)A(1)A(A)(A)(2)A(2)Aa a(4)(4)构造其它状态的后继项目集,直到没有新项目集产构造其它状态的后继项目集,直到没有新项目集产生为止。生为止。 输入符号输入符号项目集项目集状态状态转换函数转换函数AS S(A)(A)C4GO2,A=4(A A (A) (A)A A(A)(A)A AaaC2GO2,)=2aA AaaC3GO2,a=3输入符号输入符号项目集项目集状态状态转换函数转换函数)S S(A)(A)C5GO4,)=55.4 LR(0)5.4 LR(0)分析器分析器5.4.3 5.4.3 构
22、造项目活前缀的有穷自动机构造项目活前缀的有穷自动机5.4 LR(0)5.4 LR(0)分析器分析器5.4.3 5.4.3 构造项目活前缀的有穷自动机构造项目活前缀的有穷自动机C=C0,C1,Cn,C0为初始状态,C称为LR(0)项目集的规范族。5.4 LR(0)5.4 LR(0)分析器分析器5.4.4 LR(0)5.4.4 LR(0)分析表的构造分析表的构造假设已经构造出假设已经构造出LR(0)LR(0)的项目集规范族:的项目集规范族:C=CC=C0 0,C,C1 1,C,Cn n,其中其中C Ci i为项目集的名字,对应状态为为项目集的名字,对应状态为i i,假设,假设S S. .是文法是文
23、法开始符号所在的规则,令包含项目开始符号所在的规则,令包含项目S S. .的项目集的项目集C Ck k对应对应的状态的状态k k为开始状态。为开始状态。(1)若项目若项目 ,且,且GOCi i,a=Cj j,其中,其中a为终结符为终结符号,置号,置ACTIONi,a=“把状态把状态j和符号和符号a移近栈移近栈”,记,记Sj j;(2)若项目若项目 ,则对于任何输入符号,则对于任何输入符号a,a为终结符为终结符或或#,置,置ACTIONi,a=“用产生式用产生式A 进行归约进行归约”,记为,记为Rj j;iCaAiCA5.4 LR(0)5.4 LR(0)分析器分析器5.4.4 LR(0)5.4.
24、4 LR(0)分析表的构造分析表的构造(3)(3)若项目若项目S S.Ci i,置,置ACTIONi,#=“ACTIONi,#=“接受接受”,记为,记为“ACCEPTACCEPT”。(4)(4)若若GOi,A=Cj,AGOi,A=Cj,A为非终结符,则置为非终结符,则置GOTOi,A=jGOTOi,A=j。(5)(5)分析表中凡不能用分析表中凡不能用(1) (1) (4)(4)填入信息的单元为空或均填入信息的单元为空或均置为置为ERRORERROR,表示有错。,表示有错。5.4 LR(0)5.4 LR(0)分析器分析器5.4.4 LR(0)5.4.4 LR(0)分析表的构造分析表的构造(0)S
25、(0)SA A(1)A(1)A(A)(A)(2)A(2)Aa aS2S31ACCEPTS2S34R2R2R2R2R1R1R1R1S55.4 LR(0)5.4 LR(0)分析器分析器5.4.5 LR(0)5.4.5 LR(0)分析器的工作过程分析器的工作过程(1)(1)若若ACTIONS,a=Sj,aACTIONS,a=Sj,a为终结符,则把为终结符,则把a a移入符号栈,移入符号栈,j j入状态栈;入状态栈;(2)(2)若若ACTIONS,a=Rj,aACTIONS,a=Rj,a为终结符或为终结符或# #,则用第,则用第j j个产生式归约,个产生式归约,k k为第为第j j个产生式右部符号串长
26、度,将符号栈、状态栈顶的个产生式右部符号串长度,将符号栈、状态栈顶的k k个元素出栈,将产个元素出栈,将产生式左部符号入符号栈;生式左部符号入符号栈;(3)(3)若若ACTIONS,a=“ACCEPT”ACTIONS,a=“ACCEPT”,a a为为# #,则为接受,表示分析成功。,则为接受,表示分析成功。(4)(4)若若GOTOS,A=j,AGOTOS,A=j,A为非终结符号并且符号栈的栈顶,表示前一个动为非终结符号并且符号栈的栈顶,表示前一个动作是归约,作是归约,A A是归约后移入符号栈的非终结符,则将状态是归约后移入符号栈的非终结符,则将状态j j移入状态栈;移入状态栈;(5)(5)若若
27、ACTIONS,a=ACTIONS,a=空白,则转入错误处理。空白,则转入错误处理。5.4 LR(0)5.4 LR(0)分析器分析器5.4.5 LR(0)5.4.5 LR(0)分析器的工作过程分析器的工作过程例例5-95-9:分析输入符号串:分析输入符号串(a)(a)步骤步骤状态栈状态栈符号栈符号栈输入符号串输入符号串ACTIONGOTO1234567890020220223022402245024024501#(#(#(a#(A#(A)#(A#(A)#A(a)#(a)#a)#)#)#)#)#S2S2S3R2S5R1S5R1ACCEPT4415.4 LR(0)5.4 LR(0)分析器分析器5.
28、4.6 LR(0)5.4.6 LR(0)文法文法一个项目集包含不同类型的项目,但必须满足下面两个条件:一个项目集包含不同类型的项目,但必须满足下面两个条件:(1)(1)不能有移进项目和归约项目并存不能有移进项目和归约项目并存移进移进- -归约冲突归约冲突(2)(2)不能有多个归约项目并存不能有多个归约项目并存 归约归约- -归约冲突归约冲突 如果一个文法的项目集规范族不存在具有如果一个文法的项目集规范族不存在具有“移进移进- -归约冲突归约冲突”或或“归约归约- -归约冲突归约冲突”的项目集,那么该文法为的项目集,那么该文法为LR(0)LR(0)文法。文法。5.5 SLR(1)5.5 SLR(
29、1)分析器分析器练习:练习:求该文法的项目集规范族及转换函数求该文法的项目集规范族及转换函数(0)S(0)SE E(1)E(1)EE+TE+T(2)E(2)ET T(3)T(3)TT T* *F F(4)T(4)TF F(5)F(5)F(E)(E)(6)F(6)Fi i状态状态项目集项目集转换函数转换函数2ET.TT.*FR2GO2,*=7存在移进存在移进- -归约冲突,不是归约冲突,不是LR(0)LR(0)文法文法5.5 SLR(1)5.5 SLR(1)分析器分析器(0)S(0)SE E(1)E(1)EE+TE+T(2)E(2)ET T(3)T(3)TT T* *F F(4)T(4)TF F
30、(5)F(5)F(E)(E)(6)F(6)Fi i5.5 SLR(1)5.5 SLR(1)分析器分析器5.5.1 SLR5.5.1 SLR解决方法的思想解决方法的思想项目集项目集 存在移进存在移进- -归约冲突和归约归约冲突和归约- -归约冲突归约冲突.,CrBbA若若FOLLOW(B)FOLLOW(B)、FOLLOW(A)FOLLOW(A)和和b b互不相交,当状态为互不相交,当状态为S Si i,输,输入符号为入符号为a(aa(a为终结符或为终结符或#)#)时,利用下列方法可解决冲突:时,利用下列方法可解决冲突:(1)(1)若若a=ba=b,则移进,则移进a a;(2)(2)若若aFOLL
31、OW(B)aFOLLOW(B),则用产生式,则用产生式 归约;归约;(3)(3)若若aFOLLOW(C)aFOLLOW(C),则用产生式,则用产生式 归约;归约;(4)(4)其它报错。其它报错。 rB.C通过向前查看一个输入符号来协助解决冲突,该文法就是通过向前查看一个输入符号来协助解决冲突,该文法就是SLR(1)SLR(1)文法。文法。5.5 SLR(1)5.5 SLR(1)分析器分析器5.5.2 SLR(1)5.5.2 SLR(1)分析表的构造分析表的构造假设假设G项目集规范族:项目集规范族:C=C0,C1,Cn,其中其中Ci为项目集的为项目集的名字,对应状态为名字,对应状态为i,令包含项
32、目,令包含项目S.s的项目集的项目集Ck对应的对应的状态状态k为开始状态。为开始状态。(1)若项目若项目 ,且,且GOCi i,a=Cj j,其中,其中a为终结符为终结符号,置号,置ACTIONi,a=“把状态把状态j和符号和符号a移近栈移近栈”,记,记Sj j;(2)若项目若项目 ,则对则对a FOLLOW(A),a为终结符为终结符或或#,置,置ACTIONi,a=“用产生式用产生式A 进行归约进行归约”,记为,记为Rj j;iCaAiCA(3)若项目若项目Ss.Ci,置,置ACTIONi,#=“接受接受”,记为,记为“ACCEPT”。(4)(4)若若GOi,A=Cj,AGOi,A=Cj,A
33、为非终结符,则置为非终结符,则置GOTOi,A=jGOTOi,A=j。(5)(5)分析表中凡不能用分析表中凡不能用(1) (1) (4)(4)填入信息的单元为空或均填入信息的单元为空或均置为置为ERRORERROR,表示有错。,表示有错。5.5 SLR(1)5.5 SLR(1)分析器分析器5.5.2 SLR(1)5.5.2 SLR(1)分析表的构造分析表的构造5.5 SLR(1)5.5 SLR(1)分析器分析器5.5.2 SLR(1)5.5.2 SLR(1)分析表的构造分析表的构造5.5 SLR(1)5.5 SLR(1)分析器分析器5.5.2 SLR(1)5.5.2 SLR(1)分析表的构造分
34、析表的构造例例5-105-10:分析表达式:分析表达式“i i* *(i+i)(i+i)”步骤步骤状态栈状态栈符号栈符号栈输入符号串输入符号串ACTIONGOTO12345678900503020270274027450274302742#i#F#T#T*#T*(#T*(i#T*(F#T*(Ti*(i+i)#*(i+i)# *(i+i)#*(i+i)#(i+i)#i+i)#+i)#S5R6R4S7S4S5R5R4328+i)#+i)#R2325.5 SLR(1)5.5 SLR(1)分析器分析器5.5.2 SLR(1)5.5.2 SLR(1)分析表的构造分析表的构造例例5-105-10:分析表达
35、式:分析表达式“i i* *(i+i)(i+i)”步骤步骤状态栈状态栈符号栈符号栈输入符号串输入符号串ACTIONGOTO101112131415161718027480274860274865027486302748590274802748110271002#T*(E+#T*(E+i#T*(E+F#T*(E+T#T*(E#T*(E)#T*F#T#E+i)#i)# )#)#)#)#S6S5R6R4R1S11R5R3931#R21021901#T*(E#ACCEPT8 把能用把能用SLR(1)SLR(1)分析器分析的语言叫做分析器分析的语言叫做SLR(1)SLR(1)语言。如语言。如果一个文法的项目集规范族的某些项目存在冲突,但这种果一个文法的项目集规范族的某些项目存在冲突,但这种冲突能用冲突能用SLR(1)SLR(1)方法解决,那么该文法就是方法解决,那么该文法就是SLR(1)SLR(1)文法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版个人与企业间的商务汽车租赁及行程安排合同3篇
- 二零二五版旅游产业反担保合同与旅游资产抵押协议3篇
- 二零二五年建筑玻璃采购合同标准2篇
- 二零二五年度离婚后按揭房产权属分割及子女抚养费用协议3篇
- 个人借款担保合同书2024年版版B版
- 二零二五年知识产权保护保密协议翻译服务协议3篇
- 二零二五版企业内部无息短期资金互助借款合同3篇
- 天津财经大学《儿童美术创作与指导》2023-2024学年第一学期期末试卷
- 2024版股权合作的协议书范本
- 四川司法警官职业学院《Web应用开发课程设计》2023-2024学年第一学期期末试卷
- GB/T 12914-2008纸和纸板抗张强度的测定
- GB/T 1185-2006光学零件表面疵病
- ps6000自动化系统用户操作及问题处理培训
- 家庭教养方式问卷(含评分标准)
- 城市轨道交通安全管理课件(完整版)
- 线缆包覆挤塑模设计和原理
- TSG ZF001-2006 安全阀安全技术监察规程
- 部编版二年级语文下册《蜘蛛开店》
- 锅炉升降平台管理
- 200m3╱h净化水处理站设计方案
- 个体化健康教育记录表格模板1
评论
0/150
提交评论