Buenas tardes a todos,
quería comentaros una curiosidad que he encontrado en el ANSI C. Estaba revisando la gramatica en EBNF del lenguaje cuando he visto esto:
("{"|"<%") { count(); return('{'); }
("}"|"%>") { count(); return('}'); }
("["|"<:") { count(); return('['); }
("]"|":>") { count(); return(']'); }
parece que, por algún motivo que aun no tengo claro, están definidos simbolos alternativos a los corchetes y a las llaves. Pensaba que seria alguna peculiaridad de la pagina donde estaba mirando, pero he probado en un par de compiladores y funciona!!.
#include <stdlib.h>
int main( void )<%
int i;
int array<:4:>;
for( i = 0 ; i < 4 ; i++ )<%
array<:i:> = 2*i;
printf("array<:i:> = %d\n", array
<:i
:> ); %>
return 0;
%>
/*
array<:i:> = 0
array<:i:> = 2
array<:i:> = 4
array<:i:> = 6
*/
¿Alguien sabe por que existe esta alternativa?