📄 递归下降分析法(编译原理).tex.txt
字号:
# define N 20
# include <stdio.h>
int I;
char Ch;
char str[N];
void E();
void E1();
void T();
void T1();
void F();
main()
{ int n=0;
str[n]='#';
clrscr();
printf("Please input a string:\n");
do
{ n=n+1;
str[n]=getchar();
}while(str[n]!='#');
I=0;
Ch=str[I];
if(Ch=='#')
{
Ch=str[++I];
E(Ch);
}
else printf("You have done a wrong input!");
if(Ch=='#')
printf("Success!");
else printf("fail!");
getch();
}
void E()
{
T(Ch);
E1(Ch);
}
void E1()
{
if(Ch=='+')
{
Ch=str[++I];
T(Ch);
E1(Ch);
}
}
void T()
{
F(Ch);
T1(Ch);
}
void T1()
{
if(Ch=='*')
{
Ch=str[++I];
F(Ch);
T1(Ch);
}
}
void F()
{
if(Ch=='i')
{ Ch=str[++I];
/* printf("%c",Ch); */
}
else if(Ch=='(')
{
Ch=str[++I];
E(Ch);
if(Ch==')')
Ch=str[++I];
else printf("eroor!");
}
else printf("error!");
}
是个编译原理课程设计的源代码 有事可以和我联系因为太小 我在复制一便
# define N 20
# include <stdio.h>
int I;
char Ch;
char str[N];
void E();
void E1();
void T();
void T1();
void F();
main()
{ int n=0;
str[n]='#';
clrscr();
printf("Please input a string:\n");
do
{ n=n+1;
str[n]=getchar();
}while(str[n]!='#');
I=0;
Ch=str[I];
if(Ch=='#')
{
Ch=str[++I];
E(Ch);
}
else printf("You have done a wrong input!");
if(Ch=='#')
printf("Success!");
else printf("fail!");
getch();
}
void E()
{
T(Ch);
E1(Ch);
}
void E1()
{
if(Ch=='+')
{
Ch=str[++I];
T(Ch);
E1(Ch);
}
}
void T()
{
F(Ch);
T1(Ch);
}
void T1()
{
if(Ch=='*')
{
Ch=str[++I];
F(Ch);
T1(Ch);
}
}
void F()
{
if(Ch=='i')
{ Ch=str[++I];
/* printf("%c",Ch); */
}
else if(Ch=='(')
{
Ch=str[++I];
E(Ch);
if(Ch==')')
Ch=str[++I];
else printf("eroor!");
}
else printf("error!");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -