close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#1441 closed defect (invalid)

#Require se ejecuta al revisar la sintaxis

Reported by: imendez Owned by: Jorge
Priority: low Milestone: Mantainance
Component: Interface Version: 3.1
Severity: minor Keywords:
Cc: mruiz@…, jgallardo@…

Description

Hola, la instrucción #Require se ejecuta al revisar la sintaxis. Por lo que se dice en el ticket #1393 entiendo que es "normal" en el sentido de que no se puede hacer nada por evitarlo, pero lo reporto por si en el futuro se puede corregir, porque desde luego es algo que sorprende bastante.

Basta con crear un archivo con, por ejemplo, la instrucción

#Require MMS

y revisar la sintaxis (lógicamente sin haber incluido antes el paquete).

Un saludo.

Change History (2)

comment:1 Changed 13 years ago by Víctor de Buen Remiro

Resolution: invalid
Status: newclosed

No es que sea normal ni nada que se pueda corregir, es que es correcto.
Si no incluyes el paquete no hay forma de comprobar la sintaxis porque en el paquete se pueden crear clases y estructuras que de no existir darán error de parseo.

comment:2 Changed 13 years ago by imendez

Entendido, pero entonces llama la atención que no funcionen igual #Require e Include: en Include el parser no evalúa si hay un error sintáctico motivado porque falte una clase o una estructura en el archivo que se está incluyendo, ¿no?

Pero vamos, leyendo la documentación está más claro que el agua: "#Embed: This macro is an alternative to function Include to avoid some problems using declarated Struct's as type of arguments. Function Include acts at "evaluation time", returning a Set, and so some parser status are not well defined. Macro #Embed is equivalent to C-C++ #Include, is to say, is the same that copy the text of embeded file in the caller file."

Un saludo.

Note: See TracTickets for help on using tickets.