zoukankan      html  css  js  c++  java
  • 语法分析

    实验一、××实验

    专业   姓名  学号

    一、        实验目的

     

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

    二、        实验内容和要求

    利用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); } }
    
     
    
    

     

     

     

     

    四、        实验总结

  • 相关阅读:
    利用vbs设置Java环境变量
    svg translate 操作
    JSTL详解(二)
    [Oracle]
    怎样搭建轻量级架构-设计原则
    数据结构--队列
    opencv中各种矩阵乘的差别
    多重背包
    Linux管理员必须知道的sudo命令
    大二上學期學習生活總結
  • 原文地址:https://www.cnblogs.com/piglet00/p/6187886.html
Copyright © 2011-2022 走看看