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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验三 递归下降分析程序实验相关的知识,希望对你有一定的参考价值。

一、        实验目的

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

 

二、        实验内容和要求

     输入:正规式

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

 

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

   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.      运行结果及分析

技术分享

 

 

四、        实验总结

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



以上是关于实验三 递归下降分析程序实验的主要内容,如果未能解决你的问题,请参考以下文章

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

软件构造实验三-递归下降分析分析法

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

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

递归下降分析-实验报告

实验报告-语法分析