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.
- 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
-
-
Property
Status
changed from
new
to
accepted
-
initial
|
v1
|
|
1 | 1 | Al ejecutar lo siguiente: |
2 | | |
| 2 | {{{ |
3 | 3 | NameBlock Fun(Set s){ |
4 | 4 | NameBlock k = SetToNameBlock(s) |
… |
… |
|
10 | 10 | NameBlock kk = Fun({[[Text cod = "kk"]]}) |
11 | 11 | ]]; |
12 | | |
| 12 | }}} |
13 | 13 | obtenemos el siguiente error: |
14 | 14 | |
| 15 | {{{ |
15 | 16 | ERROR: [1] Variable 'cod' ya definida como "k::cod " |
| 17 | }}} |