Esperando [BEGIN]

Este error se produce cuando se realiza una declaración incorrecta dentro de las secciones CONST, GLOBAL, LOCAL o PRIVATE.

Tras la sentencia inicial PROGRAM nombre_de_programa; se espera que aparezca alguna de las secciones anteriormente citadas (siempre en ese mismo orden) y al final la palabra BEGIN.

Tras el inicio de un proceso (PROCESS nombre_de_proceso(...)) o función (FUNCTION nombre_de_función(...)) que se muestre la sección PRIVATE o la palabra BEGIN.

El error puede producirse bajo las siguientes circunstancias:

- Se ha escrito incorrectamente el nombre de alguna sección.

- Se han puesto varias secciones en un orden incorrecto:

Ejemplo:
PROGRAM mi_juego;
LOCAL
    a=0;
GLOBAL // Error: Esperando [BEGIN]
    b=0;
BEGIN
    //...
END


  Se recuerda que las secciones deben ir en el siguiente orden:

    CONST
    GLOBAL
    LOCAL
    PRIVATE

- Dentro de cualquiera de las secciones antes mencionadas ha venido un elemento que no es una declaración válida dentro de dicha sección.

Ejemplo:
PROGRAM mi_juego;
GLOBAL
    +variable=0; // Error: Esperando [BEGIN]
BEGIN
    //...
END


  En este ejemplo, al llegar al símbolo + el compilador determina que la sección GLOBAL ya ha finalizado y, por lo tanto, como el siguiente elemento no es el inicio de las secciones LOCAL ni PRIVATE, espera que venga la palabra reservada BEGIN marcando el inicio del código del programa.

- Al comienzo del programa o al definir un proceso se ha omitido la palabra BEGIN.

Ejemplo:
PROGRAM mi_juego;
BEGIN
    //...
END

PROCESS mi_proceso()
    FRAME; // Error: Esperando [BEGIN]
END



Ver: Sintaxis - BEGIN