📄 实验四3.cpp
字号:
#include <stdio.h>
char sym[20];
struct table
{ int id;
char name[20];
}
mt[10]={ {10,"i"},{19,"+"},{10,"i"},{20,"$"}};
int p=-1;
main()
{ printf("Begin!!\n");
scaner();
E();
if(sym[0]=='$')
printf("Success!!\n");
else printf("Fail!!\n");
getsym();
}
scaner()
{p=p+1;
strcpy(sym,mt[p].name);
}
e()
{t();
e1();
}
e1()
{ if(sym[0]=='+')
{scaner();
t(); e1();
}
else if ( (sym[0]!=')') && (sym[0]!='$'))
error();
}
t()
{f();
t1();
}
t1()
{ if (sym[0]=='*')
{scaner();
f();t1();
} else
if(!follow(sym[0])) error();
}
f()
{if(sym[0]=='i')
scaner();
else if(sym[0]=='(')
{ scaner();
e();
if(sym[0]==')')
scaner();
else error();
} else error();
}
error()
{ printf("Error!!!\n");
}
follow(char tm)
{int i,k=0;
char nn[10]={'$','+',')'};
for(i=0;i<=2;i++)
if (nn[i]==tm ) {k=1;break;}
return( k);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -