Bennu Game Development

Foros en Español => Herramientas => Mensaje iniciado por: SplinterGU en Marzo 08, 2010, 02:07:40 am

Título: Identador Bennu (en lex/flex)
Publicado por: SplinterGU en Marzo 08, 2010, 02:07:40 am
Aca les dejo el identador que arme este fin de semana... es mi primera cosa que armo en lex, asi que seguramente puede ser mejorado...

Las pruebas que hice andan bien... mete algunos enters demas en ciertas ocaciones, pero identa el codigo bien...

posiblemente haya problemas con defines del tipo "#define lalala      (a+b)" ya que lo convertira a #define lalala(a+b)"... creo...

si alguien lo quiere corregir, perfecto... como ya dije es la primera cosa que hago en lex y tiene mucho seteo de variables varias veces en la misma funcion, pero todo es porque hice copy&paste segun funcionalidad para hacerlo mas rapido y no arme funciones... asi que seguramente se puede mejorar...

pruebenlo y digamne que tal les va...

incluyo binarios windows, linux, fuentes y scripts de compilacion.

forma de usarlo:

ident < input.prg > output.prg

saludos.
Título: Re: Identador Bennu (en lex/flex)
Publicado por: Windgate en Marzo 08, 2010, 06:27:35 am
Vamos a probar, qué malos recuerdos me trae lex, pero bueno, como mínimo refrescaré la memoria sobre él xD
Título: Re: Identador Bennu (en lex/flex)
Publicado por: DCelso en Marzo 08, 2010, 08:13:15 am
oh, uploading karma.
Yo, npi de lex así que poco puedo ayudar :(.
Título: Re: Identador Bennu (en lex/flex)
Publicado por: Drumpi en Marzo 08, 2010, 11:54:11 am
Incoming karma. Aunque seguramente yo no lo vaya a usar (salvo que llegue el típico novato con su código en una columna), es un buen trabajo que se agradece ;)
Además, más de uno y dos te debemos unas cuantos karmas, Splinter :D
Título: Re: Identador Bennu (en lex/flex)
Publicado por: Windgate en Marzo 08, 2010, 12:49:59 pm
Me ha parecido bien su funcionamiento, lo he probado con unas cuantas lineas con LOOP, IF, FRAME, END, un poquito de todo lo más básico.

Prueba 1: Todo el código pegado a la izquierda -> el resultado es bueno, queda tabulado correctamente.

Prueba 2: El código parcialmente pegado a la izquierda, pero también espacios y tabuladores en algunas lineas, tal y como hacen mis peores alumnos >:( -> El resultado es también perfecto, queda bien tabulado.

Creo que voy a incluirlo en mi plantilla de proyecto, como el .prg principal siempre se llama videojuego voy a probar a hacer que el .bat se encargue automáticamente de aplicar ident en cada ejecución... Creo que me ahorrará tabularles a mano todo lo que ponen mal cada vez que me acerco a ver donde la han cagado :S

Te doy un karma Splinter, que como tienes muchos parece que últimamente nos cuesta más dártelos xD
Título: Re: Identador Bennu (en lex/flex)
Publicado por: SplinterGU en Marzo 08, 2010, 02:59:41 pm
Incoming karma. Aunque seguramente yo no lo vaya a usar (salvo que llegue el típico novato con su código en una columna), es un buen trabajo que se agradece ;)
Además, más de uno y dos te debemos unas cuantos karmas, Splinter :D

No voy a dar nombres, pero el ganador del concurso de juegos bennugd/wiz... fue uno de esos codigos... :P

Me ha parecido bien su funcionamiento, lo he probado con unas cuantas lineas con LOOP, IF, FRAME, END, un poquito de todo lo más básico.

Prueba 1: Todo el código pegado a la izquierda -> el resultado es bueno, queda tabulado correctamente.

Prueba 2: El código parcialmente pegado a la izquierda, pero también espacios y tabuladores en algunas lineas, tal y como hacen mis peores alumnos >:( -> El resultado es también perfecto, queda bien tabulado.

Creo que voy a incluirlo en mi plantilla de proyecto, como el .prg principal siempre se llama videojuego voy a probar a hacer que el .bat se encargue automáticamente de aplicar ident en cada ejecución... Creo que me ahorrará tabularles a mano todo lo que ponen mal cada vez que me acerco a ver donde la han cagado :S

Te doy un karma Splinter, que como tienes muchos parece que últimamente nos cuesta más dártelos xD

fantastico, gracias por la prueba... cualquier error avisa...
Título: Re: Identador Bennu (en lex/flex)
Publicado por: Prg en Marzo 08, 2010, 04:49:31 pm
karma ++ :)
en la tarde lo probaré con algunos códigos y te comento :)
Título: Re: Identador Bennu (en lex/flex)
Publicado por: Windgate en Marzo 08, 2010, 07:49:32 pm
Citar
No voy a dar nombres, pero el ganador del concurso de juegos bennugd/wiz... fue uno de esos codigos...

Enseñé ese código a mis alumnos más aventajados para enseñarles como NO deben hacerse las cosas, pero también les recordé que al fin y al cabo fue el ganador, el código nadie lo ve, sólo la ejecución :D
Título: Re: Identador Bennu (en lex/flex)
Publicado por: SplinterGU en Marzo 08, 2010, 08:11:12 pm
Yo no he visto el codigo realmente... si se que no identa... no le gusta, y que trabaja el codigo sobre la marcha... pero no hay dudas que la momia es el mas friki de todos, siempre nos sorprende con alguna frikada... y si codifica bien o mal, no me puse a verlo, lo que si se es que sabe plasmar sus ideas en resultados...
Título: Re: Identador Bennu (en lex/flex)
Publicado por: Windgate en Marzo 08, 2010, 10:29:04 pm
No ha quedado lugar a dudas de eso :D

Sobre tu indentador, he intentado hacer que mi .bat que se encarga de compilar y ejecutar también aproveche para indentar, pero he observado que si indicas el mismo nombre de archivo origen y destino el archivo se borra entero y queda vacío... ¿Sabías eso?

Te lo comento por si te apetece añadir esa funcionalidad en algún momento.
Título: Re: Identador Bennu (en lex/flex)
Publicado por: Mr Matsusaka en Marzo 09, 2010, 12:13:54 am
En mi opinion hace demasiado XD
Especialmente mete demasiadas tabulaciones. Un codigo de 45000 lineas que tenia me lo ha puesto a 65000 XDD

Al margen de eso va como la seda. Karma++
Título: Re: Identador Bennu (en lex/flex)
Publicado por: SplinterGU en Marzo 09, 2010, 03:08:32 am
No ha quedado lugar a dudas de eso :D

Sobre tu indentador, he intentado hacer que mi .bat que se encarga de compilar y ejecutar también aproveche para indentar, pero he observado que si indicas el mismo nombre de archivo origen y destino el archivo se borra entero y queda vacío... ¿Sabías eso?

Te lo comento por si te apetece añadir esa funcionalidad en algún momento.

claro que lo sabia... es algo basico de las redirecciones... vos podes o bien tener los archivos sin identar con otra extension, podes usar archivos temporales y luego renombrarlo al nombre correcto... o usar otro directorio para los procesados... lo que se te ocurra sirve... pero asi son las redirecciones...
Título: Re:Identador Bennu (en lex/flex)
Publicado por: SplinterGU en Diciembre 22, 2017, 10:20:46 pm
update! corregido espacios que dejaba antes de los ; tambien lineas en blanco que se generaban demas.

ahora creo que quedo prolijo.
Título: Re:Identador Bennu (en lex/flex)
Publicado por: SplinterGU en Diciembre 22, 2017, 11:43:08 pm
falsa alarma, necesita mas correccion...

(nota mental: no usar variables con nombres tipo "es", "ws", "hnl"... hacerlas mas descriptivas sino despues -si no es claro-, es imposible recordar para que sirven... damn!)
Título: Re:Identador Bennu (en lex/flex)
Publicado por: gecko en Diciembre 23, 2017, 12:34:03 am
Nota sobre tu nota mental: Estoy leyendo un libro, el cual recorre cada detalle de la programación y explica las mejores practicas y da consejos para cada uno de todos los aspectos de la programacion. Tiene un capitulo entero dedidaco al nombre de las variables.

Y si, en el libro aconsejan exactamente lo mismo que vos concluiste, jaja.

El libro se llama Code Complete de Steve McConnell, y lo SUPER recomiendo para programadores de todos los niveles. No enseña a programar, sino que enseña a ser programador.
Título: Re:Identador Bennu (en lex/flex)
Publicado por: Drumpi en Diciembre 23, 2017, 02:19:37 am
¿Ese libro dice algo cuando en el código se puede leer un comentario que dice "CODIGO HORROR MÁS ADELANTE"? :D

Las variables tienen que ser autoexplicativas, no extremadamente largas (y aunque lo fueran, no pasa nada, sólo tardas más en escribirlas) y es recomendable que tengan un prefijo único para su proceso, método, función o clase.
Y sobre todo, no crear el objeto "whtrbt" si no se está seguro de poder sobrevivir a un ataque de Dilophosaurio LOL
Título: Re:Identador Bennu (en lex/flex)
Publicado por: gecko en Diciembre 23, 2017, 01:08:02 pm
jajajaja si, así con esta cara y todo

(http://forum.bennugd.org/index.php?action=dlattach;topic=1219.0;attach=4050)
Título: Re:Identador Bennu (en lex/flex)
Publicado por: SplinterGU en Diciembre 23, 2017, 11:22:15 pm
es que siempre lo hago, pero aca me pase... al menos estoy seguro que son las iniciales de lo que representan, pero tengo dudas al respecto, voy a analizar que hice y a corregirlo...