实验3:LL(1)文法构造(3)

2019-03-28 12:46

p[i].right=p[i].right.substr(1,p[i].right.length())+p[i].left;

p[count1].left=p[i].left;

p[count1].right=\用#代替空产生式 } else

p[i].right=p[i].right+p[i].left+\ } }

count1=count1+1; } }

count1--; return count1; }

void main( ) {

int i,j,count1;

cout<<\编译原理实验?非LL(1)文法到LL(1)文法的转换................\

cout<<\请输入产生式总数及各产生式?\其中左右部之间用'-'表示?空用'#'表示\ cin>>n;

Chomsky *p=new Chomsky[50]; // 初始化产生式数组

for(i=0;i

cin>>strings; apart(p,i); }

if(two(p)) {

cout<<\该文法属于二型文法?实验继续...\ count1=remove(p,n);

cout<<\转换后的文法输出如下?\ for(i=0;i<=count1;i++) {

if(p[i].left[0]!=NULL)

cout<

cout<<\该文法不是2型文法?无需进行LL(1)的转换?实验结束\ system(\ }

八、思考题

1、 是不是所有的文法都可以通过上述程序构造LL(1)文法? 2、 LL(1)文法在整个语法分析中的作用?

3、 实验1中设计的文法数据结构对本实验的影响? 4、 如何更好地组合实验1和实验3,使之具有更高的效率?


实验3:LL(1)文法构造(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版最新五年级英语教案下册完整版 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: