实验一、××实验

专业   姓名  学号

一、        实验目的

 

编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的文法检查和结构分析

 

二、        实验内容和要求

利用C语言编制递归下降分析程序,并对简单语言进行语法分析

 

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

 

#include<stdio.h>

#include<string>

char str[10];   //记录要分析的字符串

int x=0;        //记录第一个字符

 

void E();          

void X();          

void T();          

void Y();

void F();

 

int main()

{

    int len;

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

    scanf("%s",str);

    len=strlen(str);

    str[len]='#';

    str[len+1]='\0';

    E();

    printf("\nTrue!\n");

    strcpy(str,"");

    x=0;

    return 0;

}

 

void E()

{

    T();

    X();

}

 

void X()

{

    if(str[x]=='+'||str[x]=='-')

    {

        x++;

        T();

        X();

    }

}

 

void T()

{

    F();

    Y();

}

 

void Y()

{

    if(str[x]=='*'||str[x]=='/')

    {

        x++;

        F();

        Y();

    }

}

 

void F()

{

    if(str[x]>='a'&&str[x]<='z')

    {

        x++;

    }

    else if(str[x]>=0&&str[x]<=9)

    {

        x++;

    }

    else if (str[x]=='(')

    {    

        x++;

        E();

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

        {

            x++;

        }

        else

        {

            printf("\nError!\n");

            exit(0);

        }

    }

    else

    {

        printf("\nError!\n"); exit(0); } }

 

 

 

 

 

 

 

四、        实验总结