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 11 years ago

Last modified 11 years ago

#1731 new defect

Problema con #Embed: Error sintáctico extraño

Reported by: Pedro Gea Owned by: Víctor de Buen Remiro
Priority: high Milestone: Mantainance
Component: Kernel Version: 3.1
Severity: normal Keywords:
Cc:

Description

El problema al anidar llamadas con #Embed es ya conocido: #661 o #724.

El siguiente ejemplo:

Class @A { Static Real void = 1 };

@A n = [[
  #Embed "b.tol";
  #Embed "c.tol"
]];

con:

// b.tol
WriteLn("");

con:

// c.tol
Real c = 1;

produce el siguiente error en el que se entremezclan el código de los dos archivos:

ERROR: [1] Sintaxis incorrecta en declaración de miembro 
[[WriteLn((""), Real c=1, )]] de Class n

ERROR: [2] [Stack Manager FATAL]
Cannot push unnamed structures.

ERROR: [3] Tipo descponocido en declaración de miembro [[WriteLn((""), Real c=1, )]] de Class n

ERROR: [4] Sintaxis errónea en el área de de miembros de declaración de [[
  
]]

Warning: [2] NameBlock n se ha construido con 4 errores.

ERROR: [5] n no se pudo crear.

Attachments (1)

Embed03.zip (760 bytes) - added by Pedro Gea 11 years ago.

Download all attachments as: .zip

Change History (3)

comment:1 Changed 11 years ago by Pedro Gea

Se adjunta el ejemplo.

Changed 11 years ago by Pedro Gea

Attachment: Embed03.zip added

comment:2 Changed 11 years ago by Pedro Gea

El código ya incrustado:

Class @A { Static Real void = 1 };

@A n = [[
  WriteLn("");
  Real c = 1
]];

produce también errores, pero expresados de manera distinta:

ERROR: [1] Sintaxis incorrecta en declaración de miembro 
WriteLn("") de Class n

ERROR: [2] [Stack Manager FATAL]
Cannot push unnamed structures.

ERROR: [3] Tipo descponocido en declaración de miembro WriteLn("") de Class n

ERROR: [4] Sintaxis errónea en el área de de miembros de declaración de [[
  
]]

Warning: [1] NameBlock n se ha construido con 4 errores.

ERROR: [5] n no se pudo crear.

Esto quizá puede ilustrar la solución de #724.

Note: See TracTickets for help on using tickets.