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.

Changes between Initial Version and Version 1 of Ticket #760


Ignore:
Timestamp:
Oct 17, 2009, 10:47:31 AM (16 years ago)
Author:
Víctor de Buen Remiro
Comment:

No hay ningún problema con la función SetToNameBlock El problema es del parser que "se traga" la llave en la combinación de paréntesis y llave consecutivas. Por este motivo se quedas las variables cod todas en el mismo ámbito y da error a partir der la segunda, simplemente porque ya existe. Es un viejo problema con difícil solución, ya lo he intentado varias veces sin éxito, pues si se prescinde del mecanismo que elimina esas llaves entonces fallan otras cosas. Sin embargo, es muy fácil evadirse de este problema, basta con escribirlo así:

NameBlock Fun(Set s){
  NameBlock k = SetToNameBlock(s)
 };

 NameBlock KK = [[
  NameBlock Eco = { Fun([[Text cod = "Eco"]]) };
  NameBlock Cli = { Fun([[Text cod = "Cli"]]) };
  NameBlock kk =  { Fun([[Text cod = "kk" ]]) }
 ]];

o así

NameBlock Fun(Set s){
  NameBlock k = SetToNameBlock(s)
 };

 NameBlock KK = [[
  NameBlock Eco = Fun([[Text {cod = "Eco"} ]]);
  NameBlock Cli = Fun([[Text {cod = "Cli"} ]]);
  NameBlock kk =  Fun([[Text {cod = "kk"}  ]])
 ]];

No obstante, volveré a intentar una vez más que funcione esa combinación ({...})

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #760

    • Property Status changed from new to accepted
  • Ticket #760 – Description

    initial v1  
    11Al ejecutar lo siguiente:
    2 
     2{{{
    33NameBlock Fun(Set s){
    44  NameBlock k = SetToNameBlock(s)
     
    1010  NameBlock kk = Fun({[[Text cod = "kk"]]})
    1111]];
    12 
     12}}}
    1313obtenemos el siguiente error:
    1414
     15{{{
    1516ERROR: [1] Variable 'cod' ya definida como "k::cod "
     17}}}