Järgnevas on ühendatud varemesitatud semantilised tegevused veidi suuremaks reeglite näiteks; kasutatakse eelnevas esitatud protseduure GEN, BACK ja MERGE. Järgnevas abstraktse süntaksi grammatikas esinevad terminalid (võtmesõnad, omistamismärk, tehtemärgid) on vaid esituse lihtsustamiseks, nendega ei ole seotud mingeid semantilisi tegevusi ja abstraktse süntaksi puus nad tegelikult enam ei esine (neid kasutati varem, süntaksipuu konstrueerimisel); mitteterminali m kasutatakse vaid jooksva märgendi (globaalne muutuja!) NEXT väärtuse säilitamiseks; globaalset muutujat N kasutatakse nagu varemgi uute identifikaatorite genereerimisel.
programm
lause | programm lause
{programm.N = NEXT}
lause
omistamine | tingimuslause | while_lause
omistamine
Ident := avaldis
{GEN( Ident.P || ":=" || avaldis.P )}
tingimuslause
IF tingimus THEN m programm ENDIF
{BACK(tingimus.T, m.Q);
BACK(tingimus.F, programm.N) }
while_lause
WHILE tingimus DO m programm ENDDO
{GEN("GOTO" || tingimus.Q;);
BACK(tingimus.T, m.Q);
BACK(tingimus.F, (programm.N)+1) }
tingimus
m loogiline
{tingimus.Q = m.Q
tingimus.T = loogiline.T
tingimus.F = loogiline.F}
| loogiline OR m loogiline
{BACK(loogiline1.F, m.Q)
tingimus.T := MERGE(loogiline1.T, loogiline2.T)
tingimus.F := loogiline2.F}
| loogiline AND m loogiline
{BACK(loogiline1.T, m.Q)
tingimus.F := MERGE(loogiline1.F, loogiline2.F)
tingimus.T := loogiline2.T }
| NOT loogiline
{tingimus.T = loogiline.F
tingimus.F = loogiline.T}
loogiline
avaldis relop avaldis
{loogiline.T := NEXT;
loogiline.F := NEXT+1;
GEN("IF" !! avaldis1.P !! relop !! avaldis2.P !! "GOTO" _ );
GEN("GOTO" _);
}
m 
{
m.Q := NEXT;
}
avaldis
avaldis op avaldis
{ avaldis.P = "T" !! N ; /* genereeritakse uus tähistus */
GEN( avaldis.P !! ":=" !! avaldis1.P !! op !! avaldis2.P) }
avaldis
op avaldis /* unaarne operatsioon, näit
miinus */
{ avaldis.P = "T" !! N ; /* genereeritakse uus tähistus */
GEN( avaldis.P !! ":=" !! op !! avaldis1.P) }
avaldis
Ident
{ avaldis.P = Ident.P }
avaldis
Const
{ avaldis.P = Const.P }
Ülesanne. Mis genereeritakse käskude
X := 10
Y := 20
WHILE X + Y > 2 * X DO
IF X < 25 THEN X := X + Y / 5 ENDIF
Y := Y - 1
ENDDO
Z := X + Y
transleerimisel?