- •Задание
- •Описание языка
- •Описания и типы
- •Способы описания собственных типов:
- •Описание констант:
- •Описание переменных:
- •Имена и выражения Выражения:
- •Переменные:
- •Операторы
- •Оператор присваивания
- •Структуры данных
- •Подграмматика для выражения:
- •Подграмматика для описания типов:
- •Подграмматика для переменных:
- •Подграмматика для операторов:
- •Описание промежуточного языка
- •Описание перевода (таг) каждой конструкции входного языка Основная грамматика:
- •Подграмматика для выражения:
- •Подграмматика для описания типов:
- •Подграмматика для переменных:
- •Подграмматика для операторов:
Подграмматика для переменных:
Нетерминалы:
VARt |
переменная |
t - синтезированный |
VOt |
переменная старого типа |
t - синтезированный |
VO`t,p |
остаток переменной старого типа |
t - синтезированный, p - унаследованный |
ITt |
имя типа |
t - синтезированный |
It |
индекс |
t - синтезированный |
I`t,p |
остаток индекса |
t - синтезированный, p - унаследованный |
EARt |
арифметическая переменная |
t - синтезированный |
IPt |
имя поля |
t - синтезированный |
VARq3 ® ( ITp1 ) VOq1 {преобразовать_тип}p2,q2
p2¬p1
q2,q3¬q1
VARp2 ® VOp1
p2¬p1
VOt2 ® idp1 VO`p2,t1
p2¬p1
t2¬t1
VO`p1,t4 ® [ Iq1 {ЭМ}p2,q2,r1 I`r2,t1 ] VO`t2,t3
r1,r2¬НОВЭЛТ
p2¬p1
q2¬q1
t2¬t1
t4¬t3
VO`p1,t2 ® . IPq1 {ПЗ}p2,q2,r1 VO`r2,t1
r1,r2¬НОВЭЛТ
p2¬p1
q2¬q1
t2¬t1
VO`p1,p2 ® e
p2¬p1
Ip2 ® EARp1
p2¬p1
I`p1,t2 ® , Iq1 {ЭМ}p2,q2,r1 I`r2,t1
r1,r2¬НОВЭЛТ
p2¬p1
q2¬q1
t2¬t1
I`p1,p2 ® e
p2¬p1
IPp2 ® idp1
p2¬p1
Операционные символы:
{преобразовать_тип}A1,А2 |
Генерируется триада ntype A1,A2 |
{ЭМ}А1,А2,R |
R = номер триады EM A1,A2 |
{ПЗ}А1,А2,R |
R = номер триады PZ A1,A2 |
Подграмматика для операторов:
Нетерминалы:
OP |
оператор |
|
OPN |
непомеченный оператор |
|
VARt |
переменная |
t - синтезированный |
Et |
выражение |
t - синтезированный |
DATt |
данные для вывода |
t - синтезированный |
OPS |
последовательность операторов |
|
OPS` |
остаток последовательности операторов |
|
ELSt,p |
остаток условного оператора |
t - синтезированный, p - унаследованный |
OP ® lblp1 : {метка:}p2 OPN
p2¬p1
OP ® OPN
OPN ® rid ( VARp1 ) {ввести}p2
p2¬p1
OPN ® wri ( DATq1 ) {вывести}q2
q2¬q1
OPN ® beg OPS end
OPN ® got lblp1 {БП}p2
p2¬p1
OPN ® if Eq1 the {УПЛ}q2,r1 OP {БП}t2 {метка}r2 ELSr1,t1
r1,r2¬НОВМЕТ
r3¬НОВМЕТ
q2¬q1
t2¬t1
OPN ® whi Ep1 {метка}r1 {УПЛ}p2,r4 do OP {БП}r2 {метка}r3
r1,r2¬НОВМЕТ
r3,r4¬НОВМЕТ
p2¬p1
OPN ® VARp1 := Eq1 {присвоить}p2,q2
p2¬p1
q2¬q1
OPN ® e
DATt2 ® strt1
t2¬t1
DATt2 ® VARt1
t2¬t1
OPS ® OP OPS`
OPS` ® ; OP OPS`
OPS` ® e
ELSp1,p3 ® els OP {метка}p2
p2,p3¬p1
ELSp1,p3 ® e {метка}p2
p2,p3¬p1
НОВМЕТ - процедура, которая выдает значение указателя на свободную позицию таблицы меток.
Операционные символы:
{метка:}А |
По указанному имени A метки в таблице меток находится соответствующая позиция B, и генерируется триада label B, _ |
{метка}A |
Генерируется триада label А, _ |
{ввести}А |
Генерируется триада input А, _ |
{вывести}А |
Генерируется триада print А, _ |
{присвоить}A1,A2 |
Если типы А1 и А2 совпадают, то генерируется триада = A1, A2 |
{БП}А |
Генерируется триада jmp А, _ |
{УПЛ}А1,А2 |
Если тип А1 - boolean, то генерируется триада jmpF А1, A2 |
Управляющая таблица LL1-анализатора для главной подграмматики:
===================================================================================
I I. !lab!; !con!typ!var!beg!end!lbl!= !+ !- !: !num!id !TYP!LI IOPS!EpsI
===================================================================================
I PRG I О ! З ! О ! З ! З ! З ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I RL I О ! З ! О ! З ! З ! З ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I OM2 I О ! О ! О ! З ! З ! З ! З ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I OM I О ! О ! О ! О ! О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I RC I О ! О ! О ! З ! З ! З ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I OC2 I О ! О ! О ! О ! З ! З ! З ! О ! О ! О ! О ! О ! О ! О ! З ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I OC I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! З ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I CNS I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! З ! З ! О ! З ! З ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I CNN I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! З ! З ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I IC I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! З ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I RT I О ! О ! О ! О ! З ! З ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I OT2 I О ! О ! О ! О ! О ! З ! З ! О ! О ! О ! О ! О ! О ! О ! З ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I OT I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! З ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I IT I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! З ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I RV I О ! О ! О ! О ! О ! З ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I OV2 I О ! О ! О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! З I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I OV I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! З I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I RO I О ! О ! О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I . I В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I lab I О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I ; I О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I con I О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I typ I О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I var I О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I beg I О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I end I О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I lbl I О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I = I О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I + I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I - I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I : I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I num I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I id I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I TYP I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I LI I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В I О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I OPS I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I В ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---I
I - I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! Д I
===================================================================================
Управляющая таблица LL1-анализатора для подграмматики выражения:
=======================================================
I I= !> !< !+ !- !* !/ !( !) !cns!VAR!EpsI
=======================================================
I E I О ! О ! О ! З ! З ! О ! О ! З ! О ! З ! З ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I E2 I З ! З ! З ! О ! О ! О ! О ! О ! О ! О ! О ! З I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I EAR I О ! О ! О ! З ! З ! О ! О ! З ! О ! З ! З ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I T I О ! О ! О ! О ! О ! О ! О ! З ! О ! З ! З ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I T2 I З ! З ! З ! З ! З ! О ! О ! О ! З ! О ! О ! З I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I P I О ! О ! О ! О ! О ! О ! О ! З ! О ! З ! З ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I P2 I З ! З ! З ! З ! З ! З ! З ! О ! З ! О ! О ! З I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I F I О ! О ! О ! О ! О ! О ! О ! З ! О ! З ! З ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I = I В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I > I О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I < I О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I + I О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I - I О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I * I О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I / I О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I ( I О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I ) I О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I cns I О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I VAR I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---I
I - I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! Д I
=======================================================
Управляющая таблица LL1-анализатора для подграмматики описания типов:
===========================================================================
I Iint!rea!com!boo!.. !id !CNS!rec!end!; !arr![ !] !of !, !: !EpsI
===========================================================================
I TYP I З ! З ! З ! З ! О ! З ! З ! З ! О ! О ! З ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I TS I З ! З ! З ! З ! О ! З ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I TC I О ! О ! О ! О ! О ! О ! О ! З ! О ! О ! З ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I TDI I О ! О ! О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I TD2 I О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I TOP I О ! О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I IT I О ! О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I TZ I О ! О ! О ! О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I LP I О ! О ! О ! О ! О ! З ! О ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I LP2 I О ! О ! О ! О ! О ! О ! О ! О ! З ! З ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I SEC I О ! О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I LI I О ! О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I LI2 I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! З ! З ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I TM I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I TI I З ! З ! З ! З ! О ! З ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I TI2 I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! З ! О ! З ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I TK I О ! О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I int I В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I rea I О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I com I О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I boo I О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I .. I О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I id I О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I CNS I О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I rec I О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I end I О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I ; I О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I arr I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I [ I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I ] I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I of I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I , I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I : I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О I
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I
I - I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! Д I
===========================================================================
Управляющая таблица LL1-анализатора для подграмматики переменных:
===============================================
I I( !) ![ !] !. !, !id !IT !EA !EpsI
===============================================
I VAR I З ! О ! О ! О ! О ! О ! З ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I VO I О ! О ! О ! О ! О ! О ! З ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I VO2 I О ! О ! З ! О ! З ! О ! О ! О ! О ! З I
I-----I---+---+---+---+---+---+---+---+---+---I
I I I О ! О ! О ! О ! О ! О ! О ! О ! З ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I I2 I О ! О ! О ! З ! О ! З ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I IP I О ! О ! О ! О ! О ! О ! З ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I ( I В ! О ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I ) I О ! В ! О ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I [ I О ! О ! В ! О ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I ] I О ! О ! О ! В ! О ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I . I О ! О ! О ! О ! В ! О ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I , I О ! О ! О ! О ! О ! В ! О ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I id I О ! О ! О ! О ! О ! О ! В ! О ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I IT I О ! О ! О ! О ! О ! О ! О ! В ! О ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I EA I О ! О ! О ! О ! О ! О ! О ! О ! В ! О I
I-----I---+---+---+---+---+---+---+---+---+---I
I - I О ! О ! О ! О ! О ! О ! О ! О ! О ! Д I
===============================================
Управляющая таблица LL1-анализатора для подграмматики операторов:
====================================================================================
I Ilbl!str!: !; !:= !( !) !rid!wri!beg!end!if !the!els!whi!do !VARIE !EpsII
====================================================================================
I OP I З ! О ! О ! З ! О ! О ! О ! З ! З ! З ! З ! З ! О ! О ! З ! О ! З I О ! З II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I OPN I О ! О ! О ! З ! О ! О ! О ! З ! З ! З ! З ! З ! О ! О ! З ! О ! З I О ! З II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I DAT I О ! З ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! З I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I OPS I З ! О ! О ! З ! О ! О ! О ! З ! З ! З ! З ! З ! О ! О ! З ! О ! З I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I OP2 I О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! З ! О ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I ELS I О ! О ! О ! З ! О ! О ! О ! О ! О ! О ! З ! О ! О ! З ! О ! О ! О I О ! З II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I lbl I В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I str I О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I : I О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I ; I О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I := I О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I ( I О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I ) I О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I rid I О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I wri I О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I beg I О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I end I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I if I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I the I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I els I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I whi I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I do I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В ! О I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I VAR I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! В I О ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I E I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I В ! О II
I-----I---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---I---+---II
I - I О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О ! О I О ! Д II
====================================================================================