• 第十一次作业 ——LL(1)文法的判断,递归下降分析程序


    1. 文法 G(S):

    (1)S -> AB

    (2)A ->Da|ε

    (3)B -> cC

    (4)C -> aADC |ε

    (5)D -> b|ε

    验证文法 G(S)是不是 LL(1)文法?

     

    2.文法消除左递归之后的表达式文法是否是LL(1)文法?

     文法:

    E→TE'

    E'→+TE'|ε

    T→FT'

    T'→*FT'|ε

    F→(E)|i

     

    3.接2,如果是LL(1)文法,写出它的递归下降语法分析程序代码。

    E()

        {T();

           E'();

         }

    E'()

    T()

    T'()

    F()

    void ParseE(){
    
      ParseT();
    
           ParseE'();
    
         }
    
    void ParseT()  {  
    
      ParseF();
    
      ParseT'();
    
    }
    
    void ParseE'()  {
    
      switch(lookahead):
    
        case +:
    
          MatchToken(+);
    
          ParseT();
    
          ParseE'();
    
          break;
    
        case #:
    
          break;
    
        case ):
    
          break;
    
        default:
    
          printf('synax error!
    ');
    
          exit(0);
    
    }
    
     
    
    void ParseF()  { 
    
      switch(lookahead):
    
        case (:
    
          MatchToken(();
    
          ParseE();
          MatchToken());
    
          break;
    
        case i:
    
          MatchToken(i);
    
          break;
    
        default:
    
          printf('synax error!
    ');
    
          exit(0);
    
    }
    
     
    
    void ParseT'()
    
    {
    
      switch(lookahead):
    
        case *:
    
          ParseF();
    
          MatchToken(*);
    
          ParseT'();
    
          break;
    
        case #:
    
          break;
    
        case ):
    
          break;
    
        case +:
    
          break;
    
        default:
    
          printf('synax error!
    ');
    
          exit(0);
    
    }

     4.加上实验一的词法分析程序,形成可运行的语法分析程序,分析任意输入的符号串是不是合法的表达式。

  • 相关阅读:
    yum downgrade降级安装包
    yapi内网部署
    tomcat启动提示"java.net.BindException: 地址已在使用"
    u盘安装centos系统识别nvme固态硬盘
    识别thinkpad USB2.0 or USB3.0
    window10激活
    onedriver business到期
    实用站点分享
    window挂载synology目录
    Spring注解@Qualifier的详细用法
  • 原文地址:https://www.cnblogs.com/lcj170/p/11907561.html
Copyright © 2020-2023  润新知