La longitud no coincide con la declaración anterior

Se ha declarado una cadena de texto o puntero dos veces, como parámetro y como dato privado, y en ambas declaraciones se ha especificado una longitud diferente.

No es necesario volver a declarar este dato como privado, pudiendo especificar su longitud en los mismos parámetros del proceso.

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

PROCESS mi_proceso(string mi_cadena[16])
BEGIN
  //...
END


El proceso de este ejemplo recibe un parámetro en una cadena privada (aunque no se indique en esta sección) de hasta 17 carácteres de longitud (desde mi_cadena[0] hasta mi_cadena[16]).

El proceso anterior podría haber vuelto a declarar esta cadena en la sección PRIVATE (por ejemplo, para añadir un comentario explicativo), pero debiendo coincidir, en este caso, la longitud con la anteriormente especificada. Es decir, que mi_cadena se declararía como se muestra en el siguiente ejemplo.

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

PROCESS mi_proceso(string mi_cadena[16])

PRIVATE
  string mi_cadena[16]; // Aquí me pasarán un texto.

BEGIN
  //...
END



Ver: Sintaxis - Declaración de datos privados