Page 37 - 4625
P. 37

один  мета  символ,  а  саме.  Правило  граматики  в  текстовому
            файлі записується так:
                  <програма> program ( <список параметрів> ) <блок> .
                  У пам'яті ЕОМ граматика описується наступними струк-
            турами:
                  struct node { int *pd;   // посилка на продукцію
                  int len;   // довжина продукції
                  int teg;   // робоче поле
                  struct node *next;   // посилка на наступну продукцію
                  struct fdata *cont_llk;   // посилка на контекст для правила
                  } ;
                  Поле "довжина продукції" визначає кількість елементів
            продукції  включаючи  перший.  Елементи  продукції  (нетер-
            мінали та термінали) закодовані цілочисловими даними, таким
            чином, що:







                  Для  зберігання  словарних  множин  First  k  та  Follow  k
            використовується така інформаційна структура:
            struct fdata {struct fdata *fnext; //посилка на наступний блок
                           struct fdata *fnext1; //системне поле - не модифікувати
                           int rdata[60];  // поле для слів
                            };
                  Кожне  слово  -  це  послідовність  лексем  довжиною  не
            більше  k  елементів.  Якщо  одного  блоку  для  зберігання
            відповідної  множини  слів  даних  не  достатньо,  то  в
            подальшому  пам'ять  виділяється  динамічно.  Признак  кінця
            послідовності слів в одному блоці - (-1). Оскільки слова, які
            зберігаються у словниковому блоці мають різну довжину, то
            на початку кожного слова стоїть його довжина.
                  Для  доступу  до  закодованих  у  пам'яті  ЕОМ  даних
            надається ряд інтерфейсних функцій, наприклад:
                 за кодом лексеми отримати її текст:
                                           36
   32   33   34   35   36   37   38   39   40   41   42