📄 test2.c
字号:
/*
20031401008 褚超
实验二 递归下降语法分析
利用递归下降子程序法对指定文法进行分析
程序中的示例文法如下:
E->TE'
E'->+E | ^
T->FT'
T'->T | ^
F->PF'
F'->*F' | ^
P->(E) | a | b | >
程序测试数据:任何符合该文法的输入串
其他输入将输出错误信息
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int PE();
int PT();
int PE1();
int PT1();
int PF();
int PF1();
int PP();
char s[20];
char *c;
void main()
{
while(1)
{
printf("Please input a string:\n");
gets(s);
c=s;
if(PE())
{
if(*c==0)
printf("OK\n");
else printf("ERROR\n");
}
else
printf("ERROR\n");
}
}
int PE()
{
int i;
i=PT();
if(i==1)
return PE1();
return 0;
}
int PT()
{
if(PF())
return PT1();
return 0;
}
int PE1()
{
if(*c == '+')
{
c++;
return PE();
}
return 1;
}
int PF()
{
if(PP())
return PF1();
return 0;
}
int PT1()
{
if(PT())
return 1;
return 1;
}
int PF1()
{
if(*c == '*')
{
c++;
return PF1();
}
return 1;
}
int PP()
{
int i;
switch(*c)
{
case '(':
c++;
i=PE();
if(i==1)
if(*c==')')
{
c++;
return 1;
}
case 'a':
case 'b':
case '^':
c++;
return 1;
default:
return 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -