#include<stdio.h>
#define N 100
main()
{
int j=0;
int sum=0;
int i;
char a[N];
printf("请输入一个文法(以#号结束):\n");
for(i=0;i<10;i++)
{
scanf("%c",&a[i]);
j++;
if(a[i]=='#')
break;
}
/*for(i=0;i<j-1;i++)
{
printf("%c",a[i]);
}*/
for(i=0;i<100;i++)
{
if(a[i]=='|')
{
printf("\nf(%d,%c)=%d",sum,a[i-1],sum+1);
printf("\nf(%d,%c)=%d",sum,a[i+1],sum+1);
sum=sum+1;
}
else if(a[i]=='*')
{
printf("\nf(%d,$)=%d",sum,sum+1);
sum=sum+1;
printf("\nf(%d,%c)=%d",sum,a[i-1],sum);
printf("\nf(%d,$)=%d",sum,sum+1);
sum=sum+1;
}
else if((a[i]<='z')&&(a[i]>='a')&&(a[i+1]<='z')&&(a[i+1]>='a'))
{
if(a[i+2]=='|')
{
printf("\nf(%d,%c)=%d",sum,a[i],sum+1);
sum=sum+1;
printf("\nf(%d,%c)=%d",sum,a[i+1],sum+1);
printf("\nf(%d,%c)=%d",sum,a[i+3],sum+1);
sum=sum+1;
i=i+2;
}
else if(a[i+2]=='*')
{
printf("\nf(%d,%c)=%d",sum,a[i],sum+1);
sum=sum+1;
printf("\nf(%d,$)=%d",sum,sum+1);
sum=sum+1;
printf("\nf(%d,%c)=%d",sum,a[i+1],sum);
printf("\nf(%d,$)=%d",sum,sum+1);
sum=sum+1;
i=i+2;
}
else
{
printf("\nf(%d,%c)=%d",sum,a[i],sum+1);
sum=sum+1;
printf("\nf(%d,%c)=%d",sum,a[i+1],sum+1);
sum=sum+1;
}
}
}
}