No se puede realizar el incremento

En la expresión indicada en el programa se utiliza el operador ++ (o el operador --) incorrectamente, con el fin de incrementar (o decrementar) un objeto. Dicho objeto no tiene dirección, pues no es una variable, tabla o estructura, por lo que el compilador no puede realizar un incremento (o decremento) sobre el mismo.

Probablemente se haya pretendido incrementar o decrementar una expresión constante o una que involucre varios operandos.

A continuación, se muestra un programa con varios ejemplos de uso válido de los operadores ++ y --, y otros tantos inválidos.

Ejemplo:
PROGRAM mi_juego;
CONST
    mi_constante=0;
GLOBAL
    mi_variable=0;
    mi_tabla[10];
    STRUCT mi_estructura[10]
        variable;
    END
BEGIN
    // Ejemplos correctos
    mi_variable++;
    mi_tabla--;
    ++mi_tabla[mi_variable];
    --mi_estructura[0].variable;
    id.x++;

    // Ejemplos erróneos
    (mi_variable*2)++;
    mi_constante--;
    ++0;
    --(mi_variable+1);
END


Las constantes como mi_constante no se pueden incrementar pues son simples sinónimos del valor numérico que representan.

La sentencia (mi_variable*2)++; es errónea debido a que la multiplicación se realiza en primer lugar y, una vez realizada, el valor mi_variable*2 se convierte en un resultado numérico que no tiene dirección y, por lo tanto, no se puede acceder a ella para incrementarlo.

En este caso, probablemente, la sentencia correcta que se debería haber utilizado habría sido mi_variable=mi_variable*2+1;


Ver: Sintaxis - ++ - --