Page 38 - 4625
P. 38

char * NAME_ELEM(int);
                 визначити кількість слів у словниковій множині:
            int calc_word(struct fdata p);
                 отримати  слово  з  індексом  i  (індексація  починається  з
              нуля) зі словникової множини: int * get_word(struct fdata p, int
              i);
                  Решта інтерфейсних функцій описані у файлі mystand.h.
                  Для  виконання  лабораторної  роботи  користувачеві
            надаються такі бази даних:
                 extern  struct  fdata  **ref_FIRST;    //масив  посилок  на
            множини First (A);
                           k
                 extern struct fdata **ref_FOLLOW;  // масив посилок на
            множини Follow (S, A);
                             k
                  extern struct  flang **ref_LOCAL;    // масив посилок на
            множини Local (S, A);
                            k
                  extern int LLk_LEN;  // довжина llk-контексту;
                  extern int *epsilon, num_epsilon;  // список epsilon-нетеp-
            міналів;
                  extern  int  *netname,  numnet;  //  список  нетерміналів
            граматики;
                  extern  int  *terminal,  numtrm;   //  список  терміналів
            граматики;
                  extern struct node *q_grammat;  // початок списку правил
            граматики;
                  extern int LL1_USL;  // відповідає за LL(1) – умову;
                  extern  char  *TABL_LL1_UPR;  //  таблиця  управління
            LL(1) – аналізатора.
                  Число  рядків  таблиці  TABL_LL1_UPR  рівне  numnet,  а
            число  стовпчиків  -  numtrm+1.  Останній  стовпчик  таблиці
            відповідає ерсилон-слову.
                  Відмітимо, що довжина масивів ref_FIRST, ref_FOLLOW
            та  ref_LOCAL  -  це  кількість  нетерміналів  граматики,  а  i-й
            елемент кожної множини асоціюється з i-м елементом списку
            нетерміналів.

                                           37
   33   34   35   36   37   38   39   40   41   42   43