Modificado:
//declaraciones ::= seccionConstantes seccionTiposGlobales
seccionVarGlobales | empty;

por 

declaraciones				::=	seccionConstantes;
seccionConstantes 			::= declaracionConstante seccionConstantes |
seccionTiposGlobales;
seccionTiposGlobales		::= declaracionTipoGlobal seccionTiposGlobales |
seccionVarGlobales;
seccionVarGlobales			::= declaracionVarGlobal seccionVarGlobales |
seccionCuerpoPrograma;
seccionCuerpoPrograma		::= BEGIN bloqueSentencias END IDENTIFIER
SEMICOLON;

de forma que se permita que haya más de una opción de declaraciones y
además en ese orden: Constantes, TiposGlobales,VarGlobales,
Subprogramas,Programa.
(Visto en foros).