首页 > 编程知识 正文

故障树定量分析怎么算(编译原理ll1文法)

时间:2023-05-06 04:50:45 阅读:74466 作者:2071

请看一个例子:

语法:http://www.Sina.com/http://www.Sina.com/http://www.Sina.com/http://www.Sina.com/3http://ww

关于First,Follow集合及预测分析表的求法我先看了书和网上的资料,一眼看不懂,接下来请允许我以白话形式分享

看看First和Follow集合First集合的求法:例,应该就直接知道:了

先看看公式E - TE’,那个E’-+E|,明白吗? 现在没关系。 举了个例子。 现在我们来看看公式T-FT’,那个T’-T|。 在最后一个示例中,我们来看看表达式3358www.Sina.com/,

我觉得很多人发现了规律。F-PF’

Follow集合的求法为F’-F’|,在这个问题上e是语法集合,所以把#放入follow(e )。 接着,设置式a-bcd

1 .如果1.first(d )中含有,则向follow ) (a )的元素为follow ).c )中加入.P-(E)|a|b|^,此时也向follow ).a )的元素为follow )

2 .将2.first(d )中以外的元素加入到follow ).c )中

预测分析表。我建议你走到这个博客的末尾。 我看了这个马上就明白了。如果不知道定义,对照表格看就知道了

3359 blog.csdn.net/QQ _ 41731283/article/details/106448620

递归下降分析程序总体上这个程序并不难。 首先,我们需要知道我们的目的。E-TE’

打包记录; import java.util.Scanner; publicclassdiguirecursiveanalysis { staticstringword; //输入的字符串static int index=0; //用于记录当前尝试匹配的字符位置的public void error () /如果匹配错误,请输出错误的,然后单击System.out.println ) '错误的!' 退出程序,以免与匹配); 系统. exit (0; } //E-TE' public void E () system.out.println(e-te ' ); t (); E1 (); }//e '-e |空公共void E1 () if ) word.charat({ index )=' ' ) index; system.out.println('e'-e ); e (); }else{system.out.println('e'-' ); }//t-ft ' privatevoidt ((系统. out.println ) ) t-ft ' ); f (; T1 (); (/t )-t|nullprivatevoidt1()/*这里的if为什么是这些条件,是因为我们first(t ) )中的元素是它们加上而得到的。 但是,我们执行T1-这个步骤最后得到的是元素。 无论如何,您都可以执行以下步骤: T1-T最后得到此if :这些元素*/if(word.charat(|word.charat ) ) (|word.charat ) ) a )|| | }else{system.out.println('t'-' ); }//f-pf '私密性voidf ((system.out.println ) ) f-pf ' ); p (; F1 (); } //F'-*F'|null private void F1 () if ) word.charat({ index )='* ' )索引; system.out.println('f'-*f ' ); F1 (); }else{system.out.println('f'-' ); (//p- )|a|b ) if ) word.charat({ index ' ) ) )索引; e (); if(word.charat(index(=' ) ) ) ) ) ) ) ) ); system.out.println('p-(e ) ); (else )错误); }elseif(word.charat({ index )=='a ' ) index; system.out.println(p-a ); }elseif(word.Charat({ index )=='b ' ) index; system.out.println(p-b ); }elseif(word.charat({ index )==' ' ) index; system.out.println('p-'; (else )错误); } publicstaticvoidmain (字符串[ ] args ) scannerinput=newscanner ) system.in ); System.out.print ('字符串(请输入以#结尾的字符串) ); word=input.nextLine (; if(word.Charat(word.length(-1 ) )!='# ' ) { System.out.println ('输入的不符合要求。 #就结束了! ' ); 系统. exit (0; } diguirecursiveanalysisparse=newdiguirecursiveanalysis (; parse.E (; System.out.println (“分析成功”); (如果我的程序判断错了就结束,所以如果没有结束的话就等于成功了。 请直接输出。 ) )执行截图:

1.

2. First(E)就是First(T)一起学习,一起进步!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。