M' -> program i ; Dl B
Dl -> Dv Ml
Ml -> Ml M | e
M -> module i ( Vl ) Dv B
Dv -> variables Vl | e
Vl -> Vl V | V
v -> Il : T ;
T -> integer Ad ; | char Ad
Il -> i | Il , i
Ad -> e | array [ n ]
B -> begin Sl end ;
Sl -> S | S Sl
S -> L := E ; | if C  then S else S | loop Sl end ; | exit ; i ( Lp ) ; | B | read Ln ; | write Ln ; | e ;
Lp -> e | Ln
Ln -> L { , L }
L -> i Ar
Ar -> e | [ E ]
E -> F { Oa F }
Oa -> + | -
F -> R { Om R }
Om -> * | /
R -> L | n | ( E ) | c
C -> E Or E
Or -> = | < | > | <= | >=


