Hace poco leí el último libro sobre compiladores de Niklaus Wirth, y no lo vi nada complicado. Eso sí, no lo encontré en español, mucho menos en castellano, así que si no te manejas bien en inglés...
De todas formas, para cosas simples tampoco hay que liarse tanto con LL(1) y misticismos similares. Basta con algo así:
Código:
REPITE
Palabra := ExtraePalabra (Cadena)
IF Palabra = "PALABRA1" THEN
EjecutaPalabra1 (Cadena)
ELSE IF Palabra = "PALABRA2" THEN
EjecutaPalabra2 (Cadena)
...
END IF
HASTA Cadena = ""