• Viernes 15 de Noviembre de 2024, 21:11

Autor Tema:  "expect Procedure Name In Procedure Call"  (Leído 1904 veces)

Seraphs

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
"expect Procedure Name In Procedure Call"
« en: Domingo 29 de Febrero de 2004, 13:42 »
0
He de realizar una práctica de programación en ADA, y en uno de los (sub)procedimientos que debo implementar me sale el error "expect procedure name in procedure call" al compilar. Por mucho que le de vueltas no consigo encontrar dónde esta el fallo, por esto agradecería que alguien me echase una mano. "Almacenar" y "Comprobar" son dos "separates".
El código es: (el error lo indica en la función "Comprobar")

Begin
   Open (F,In_File,"origen.txt");
   Open (G,In_File,"palabras_reservadas.txt");
   Create (H,Out_File,"destino.txt");
   while not(End_Of_File(F)) loop

      Almacenar(F,Palabra1);
      Almacenar(G,Palabra2);

-- función que compara las dos palabras obtenidas con el procedimiento almacenar
      Comprobar(Palabra1,Palabra2);

      if Car=' ' or Car='(' then
         Put(H,Car);
         Get(F,Car);
      else
         Put(H,Car);
         New_Line(G);
         Get(F,Car);
         while Car=' ' and not(End_Of_File(F)) loop
            Get(F,Car);
         end loop;
      end if;
   end loop;
   Close(F);
   Close(G);
   Close(H);
end Buscar_Palabra;


FUNCTION Comprobar (A,B: in Palabra) return Boolean is
   I : Integer := 1;  
Begin
   while A(I)=B(I) and B(I)/=' ' loop
      I:=I+1;
   end loop;
   return A(I)=B(I);
end Comprobar;

Muchas gracias de antemano a todos aquellos que me puedan ayudar.

gandalfelgris

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Re: "expect Procedure Name In Procedure Call"
« Respuesta #1 en: Sábado 6 de Marzo de 2004, 09:30 »
0
Hola amigo, para solucionar ese error simplemente debes asignarle a una variable booleana el resultado de la llamada a la funcion (haciendo lo siguente)
Comprobacion:boolean;
Comprobacion:=Comprobar (parametros);
si sigues este consejo con las dos funciones se te solucionará el error. Este error te ha dado porque esa manera de llamar solo se utiliza para los procedimientos, en los que en lugar de tener un return, cuentas con pàrametros de tipo out.
gandalfelgris