Parser Generator
Инструментарий для построения компиляторов.
   

Главная

О сайте

Документация

Download

Ссылки

Библиография

О нас


Описание формата файла управляющей таблицы ЛЛ1 анализатора.

Управляющая таблица ЛЛ1 анализатора- это функция M отображающая множество (V+^) x (Vt+e) , где
V - полный словарь ФГ
Vn - множество нетерминальных символов
^ - символ обозначающий вершину магазина
e - символ обозначающий пустую цепочку
в множество состоящее из следующих элементов

  • (str,i), где str- цепочка символов из полного словаря- правая часть правила с номером i
  • ВЫБРОС
  • ДОПУСК
  • ОШИБКА
  • Пример управляющей таблицы для грамматики:

    ( Vn={   "E" ,   "E!" ,   "P" ,   "T" ,   "T!" }
    Vt={   "(" ,   ")" ,   "*" ,   "+" ,   "i" }
    R={
      "E::=T E!" ,
      "E!::=+ T E!" ,
      "E!::=" ,
      "T::=P T!" ,
      "T!::=* P T!" ,
      "T!::=" ,
      "P::=( E )" ,
      "P::=i" }
    S="E")
     ()*+ie
    E1, T E!         1, T E!    
    E!   3, e     2, + T E!     3, e  
    P7, ( E )         8, i    
    T4, P T!         4, P T!    
    T!   6, e   5, * P T!   6, e     6, e  
    ( ВЫБРОС            
    )   ВЫБРОС          
    *     ВЫБРОС        
    +       ВЫБРОС      
    i         ВЫБРОС    
    ^           ДОПУСК  

    Все пустые клетки таблицы имеют значения ОШИБКА.

    Таким образом, для задания управляющей таблицы, нам необходимо определить пару символов (по горизонтали и вертикали) и то, что стоит на пересечении.

    <ll1_table>
      <ll1_cell t1="(" t2="(" type="reject"/>
      <ll1_cell t1="E" t2="i" type="rule" id_rule="1"/>
      <ll1_cell t1="" t2="i" type="access"/>
      ...
    </ll1_table>

    Таким образом, контейнер ll1_table определяет всю управляющую таблицу. Тэг ll1_cell определяет одну ячейку, стоящую на пересечении строки t1 и столбца t2. Свойство тип, может принимать значения: reject(выброс), access(допуск) и rule(равило)- обозначает правило, номер которого указан в свойстве id_rule.


     
       
    © С. Григорчук 2001, Содержание, дизайн

    ukman@yandex.ru
    Hosted by uCoz