实验三 递归下降分析程序实验

一、        实验目的

     编制一个递归下降分析程序。

 

二、        实验内容和要求

     输入:正规式

输出:判断该正规式是否正确。

 

三、        实验方法、步骤及结果测试

   1.    源程序名:递归下降分析程序.c

可执行程序名:递归下降分析程序.exe

  2.

 

 

 3.主要程序段及其解释:

#include<stdio.h>    
#include<string> 
char str[50]; 
int index=0; 
void E();                //E->TX; 
void X();                //X->+TX | e 
void T();                //T->FY 
void Y();                //Y->*FY | e 
void F();                //F->(E) | i 

int main()                /*递归分析*/
{ 
    int len; 
    int m; 
    printf("请输入要测试的次数:"); 
    scanf("%d",&m); 
    while(m--) 
    { 
        printf("请输入字符串(长度<50>):\n"); 
        scanf("%s",str);
        len=strlen(str);
        //str[len]='#';
        str[len+1]='\0'; 
        E(); 
        printf("%s为合法符号串!\n",str); 
        strcpy(str,""); 
        index=0;
    } return 0; 
} 

void E() 
{     T();    X();}
void X() 
{ 
    if(str[index]=='+')
    {     index++; 
        T(); 
        X(); 
    } } 
void T() 
{     F();     Y(); } 
void Y() 
{     if(str[index]=='*') { 
        index++; 
        F(); 
        Y(); 
    } } 
void F() 
{ 
    if(str[index]=='i')
    {    index++; } 
    else if (str[index]=='(') 
    { 
        index++; 
        E(); 
        if(str[index]==')') 
        {     index++; }else
        { 
            printf("\n非法的符号串!\n");
            exit (0); 
        }     } 
    else
    {
        printf("非法的符号串!\n"); 
        exit(0); 
    } 
}

4.      运行结果及分析

 

 

四、        实验总结

通过这次的实验,对于递归又有了新的认识,对于工作原理也进一步的掌握了。本次实验对我帮助很大。

posted @ 2016-12-16 23:19  wha000  阅读(371)  评论(0编辑  收藏  举报