Page 42 - 4625
P. 42

занести  в  поле  cont-llk  для  кожної  продукції.  Інтерфейс
            виклику для реалізації функції:
                  int prepr_std(q,r)
                  struct node *q;   // список КС-правил
                  struct dnode *r;  // початок хеш-таблиці
                  int prepr_std(q,r)
               13.  Реалізувати  функцію,  котра  на  основі  контекстів
            First (A)  і  Follow (A)  для  нетерміналів  обчислить  значення
                                 k
                 k
            First (W) +   Follow (A) для кожної правої частини продукції
                 k
                                  k
                        k
            виду  A  ->  W.  Результат  занести  в  поле  cont_llk  для  кожної
            продукції. Інтерфейс виклику для реалізації функції:
                  int prepr_std(q,r)
                  struct node *q;   // список КС-правил
                  struct dnode *r;  // початок хеш-таблиці
               14.  Реалізувати  функцію,  котра  на  основі  контекстів
            First (W) +   Follow (A) для кожної правої частини продукції
                 k
                        k
                                 k
            виду  A  ->  W  визначить,  чи  є  граматика  сильною  LL(k)-
            граматикою, зокрема LL(1)-граматикою. Контексти з кожного
            правила  є  у  полі  cont_llk.  Інтерфейс  виклику  для  реалізації
            функції:
                  int prepr_std(q,r)
                  struct node *q;   // список КС-правил
                  struct dnode *r;  // початок хеш-таблиці
               15. (це приклад).  Реалізувати алгоритм  пошуку  EPSILON-
            нетерміналів.  Надрукувати  список  EPSILON-нетерміналів,  а
            також  правила  граматики,  які  дають  вивід  виду:  А=>*.
            Інтерфейс виклику для реалізації функції:
                  int prepr_std(q,r)
                  struct node *q;   // список КС-правил
                  struct dnode *r;  // початок хеш-таблиці
                  Функція повертає результат :
                 0 - коли EPSILON-нетерміналів немає,
                 1 - коли EPSILON-нетермінали в граматиці є.


                                           41
   37   38   39   40   41   42   43   44   45   46   47