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

     

     

     

     

    四、        实验总结

  • 相关阅读:
    py pandas
    wxPython 创建基本窗口
    js 动态修改页面文本字体
    uniapp 万年历
    uniapp设置不同的主题(Theme)
    flutter 插件调用callback函数
    题解:[SDOI2009]HH的项链
    模板:线段树(2)——加法,乘法,求和
    模板:KMP算法
    模板:单源最短路径。堆优化的dijkstra。
  • 原文地址:https://www.cnblogs.com/piglet00/p/6187886.html
Copyright © 2011-2022 走看看