首页 > 代码库 > 递归下降分析程序

递归下降分析程序

实验一、递归下降分析实验

专业   姓名  学号

一、 实验目的

 

     练习构造递归下降语法分析程序的方法,熟悉上下文无关文法的使用,加深对课堂教学的理解;提高语法分析方法的实践能力

 

二、 实验内容和要求

     利用c语言构造语法分析程序

 

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

 

  1. 原理分析及流程图

对于给定的文法

E>aE | bE | T

T>=T | +T | -T | *T | F

F>( E ) F | ;

 

  1. 主要程序段及其解释:
#include<stdio.h>

#include<string>

char str[50];   //要分析的字符串

int ch=0;

       

void scaner();

void E();                     

void T();           

void F();

void error();

 

main()

{

    int len;

    printf("请输入算数表达式:");

    scanf("%s",str);

    len=strlen(str);

    str[len]=‘#‘;

    if(str[ch]==‘a‘)

    scaner();

else error();

    E();

    printf("\n正确!\n");

    strcpy(str,"");

    

 

}

 

void scaner()

{

ch++;

}

 

void E()

{

    E();

    T();

}

 

void X()

{

    

}

 

void T()

{

if(str[ch]==‘+‘||str[ch]==‘-‘||(str[ch]==‘*‘||str[ch]==‘/‘)

    {

        ch++;

        T();

        F();

    }

   else error();

}

 

 

 

void F()

{

   if (str[x]==‘(‘)

    {     

        ch++;

        E();

        if(str[x]==‘)‘)

        {

           F();

        }

        else

    }

    else if((str[x]!=‘;‘)

error();
 }

 }

 

void error()

{

printf("\n错误!\n");

}

  

 

  1. 运行结果及分析

一般必须配运行结果截图,结果是否符合预期及其分析。

   (截图需根据实际,截取有代表性的测试例子)

 

 

 

 

 

 

 

四、 实验总结

 

心得体会,实验过程的难点问题及其解决的方法。

 

 

 

 

 

 

递归下降分析程序