Autor Tema: Alternativa a los corchetes [] y llaves {} en ANSI C  (Leído 2173 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jgpeiro06

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 276
Alternativa a los corchetes [] y llaves {} en ANSI C
« en: 26 de Marzo de 2013, 15:32:18 »
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:
Código: C
  1. ("{"|"<%")              { count(); return('{'); }
  2. ("}"|"%>")              { count(); return('}'); }
  3. ("["|"<:")              { count(); return('['); }
  4. ("]"|":>")              { 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!!.

Código: C
  1. #include <stdlib.h>
  2. int main( void )<%
  3.  int i;
  4.  int array<:4:>;
  5.  for( i = 0 ; i < 4 ; i++ )<%
  6.   array<:i:> = 2*i;
  7.   printf("array<:i:> = %d\n", array<:i:> );
  8.  %>
  9.  return 0;
  10. %>
  11. /*
  12. array<:i:> = 0
  13. array<:i:> = 2
  14. array<:i:> = 4
  15. array<:i:> = 6
  16. */

¿Alguien sabe por que existe esta alternativa?

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Alternativa a los corchetes [] y llaves {} en ANSI C
« Respuesta #1 en: 26 de Marzo de 2013, 15:57:44 »
¿Puede que sea para poder escribir programas en C con teclados antiguos que no tenían "Alt GR"?
Qué curioso.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Alternativa a los corchetes [] y llaves {} en ANSI C
« Respuesta #2 en: 26 de Marzo de 2013, 16:34:48 »
Es muy probable, porque escribir ese codigo asi hace mas lento todo y ademas lo hace casi ilegible al programa... :D :D :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado CompSystems

  • PIC18
  • ****
  • Mensajes: 488
    • Home Page
Re: Alternativa a los corchetes [] y llaves {} en ANSI C
« Respuesta #3 en: 26 de Marzo de 2013, 23:46:31 »
Muy interesante, pero como puedo personalizarlo con otro caracteres «, » que archivo se modifica?

Quiero definir lo siguiente
Código: [Seleccionar]
( "{" | "«" ) { count(); return('{'); }
( "}" | "»" ) { count(); return('}'); }
( "[" | "(" ) { count(); return('['); }
( "]" | " )" ) { count(); return(']'); }


Código: C
  1. //Con ZINJAI http://zinjai.sourceforge.net/
  2. #include<stdio.h>
  3. int main( int argc, char *argv[] )<% // {
  4.         int i;
  5.         int array<:4:>;
  6.         for( i = 0; i < 4; i++ )<% // {
  7.                 array<:i:> = 2*i;
  8.                 printf("array<:i:> = %d\n", array<:i:> );
  9.         %> //}
  10.         return 0;
  11. %> //}
  12.        
  13. /* Salida
  14. array<:i:> = 0
  15. array<:i:> = 2
  16. array<:i:> = 4
  17. array<:i:> = 6
  18. */
   
« Última modificación: 26 de Marzo de 2013, 23:51:35 por CompSystems »
Desde Colombia

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Alternativa a los corchetes [] y llaves {} en ANSI C
« Respuesta #4 en: 27 de Marzo de 2013, 02:39:13 »
Lo puedes personalizar sin tocar nada, simplemente incluyendo el correspondiente #define al principio de tu código.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Alternativa a los corchetes [] y llaves {} en ANSI C
« Respuesta #5 en: 29 de Marzo de 2013, 02:32:34 »
Interesante


 

anything