y"> При розбитті граматики на подграмматікі потрібно враховувати наступне:
1. Сукупності виділених з граматики взаємопов'язаних правил повинна являти собою КС-граматику.
2. Основний символ подграмматікі стає (спеціальним) термінальним символом вихідної граматики.
3. Якщо безлічі нетермінальних символів подграмматікі і модифікованої вихідної граматики не перетинаються, то синтаксичний аналіз для кожної з них може бути реалізований за допомогою окремого процесора з магазинної пам'яттю.
1. Базова граматика програми GR1 (Початковий символ S )
Термінали:=program; id=ідент; =;
Def =* БлокОпіс; BOp =* БлокОпер; =.;
Нетермінали:
S =НачСімвол 4;
Правила:
) S -> pro id; Def BOp.
) S -> pro id; BOp.
) S -> Def BOp.
4) S -> BOp.
. Граматика розділу описів GR2 (Початковий символ Def )
Термінали:
DfL=ОпісМеток; DfC=ОпісКонст; DfT=ОпісТіпов;
DfV=ОпісПерем;
Нетермінали:
Def =* БлокОпіс 8;
Правила:
) Def -> DfL Def
) Def -> DfL
) Def -> DfC Def
) Def -> DfC
) Def -> DfT Def
) Def -> DfT
) Def -> DfV Def
) Def -> DfV
3. Граматика опису міток GR3 (Початковий символ DfL )
Термінали:
lab=label; =;, =;
id=ідент; nat=ЦелБезЗнак;
Нетермінали:
DfL =* ОпісМеток 1; M=Мітка 2;
LLb=СпісокМеток 2;
Правила:
) DfL -> lab LLb
2) LLb -> M;
) LLb -> M, LLb
) M -> id
5) M -> nat
. Граматика опису констант GR4 (Початковий символ DfC )
Термінали:
con=const; =; ===;
id=ідент; Pex =* вираз;
Нетермінали:
DfC =* ОпісКонстант 1; LCn=СпісокКонстант 2;
Cn1=ОпісКонстанти 1;
Правила:
) DfC -> con LCn
) LCn -> Cn1; LCn
) LCn -> Cn1;
) Cn1 -> id=Pex
. Граматика опису типів GR5 (Початковий символ DfT )
Термінали:
typ=type; =; ===;
...