• 五

    1. G中的规则rFrist(rhs(r))Follow(lhs(r))PS(r)
      None
      None
    2. 是LL(1)文法.因为,且.

    3. 预测分析表

      a()#
      S
      P
    4.  
      x
      int ParseP(int P_y) {
        switch (lookahead) {
          case '(': {
            MatchToken('(');
            int P1_y = P_y;
            int P1_x = ParseP(P1_y);
            MatchToken(')');
            int P2_y = P1_x;
            int P2_x = ParseP(P2_y);
            return P1_x + P2_x;
          }
          case 'a': {
            return P_y + 1;
          }
          default:
            reportError();
        }
      }
      int ParseS() {
        switch (lookahead) {
          case '(':
          case 'a': {
            int P_y = 0;
            int P_x = ParseP(P_y);
            return P_x;
          }
          case '#': {
            return 0;
          }
          default: {
            reportError();
          }
        }
      }
  • 六