Autor Tema: Identador Bennu (en lex/flex)  (Leído 5800 veces)

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12701
  • Karma: 374
Identador Bennu (en lex/flex)
« 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.
« última modificación: Diciembre 22, 2017, 10:20:06 pm por SplinterGU »
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: Identador Bennu (en lex/flex)
« Respuesta #1 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
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 180
Re: Identador Bennu (en lex/flex)
« Respuesta #2 en: Marzo 08, 2010, 08:13:15 am »
oh, uploading karma.
Yo, npi de lex así que poco puedo ayudar :(.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Drumpi

  • Hero Member
  • *****
  • Mensajes: 6241
  • Karma: 157
  • Odio el periodo "entre proyectos"
    • La web de Drumpi
Re: Identador Bennu (en lex/flex)
« Respuesta #3 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
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: Identador Bennu (en lex/flex)
« Respuesta #4 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
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12701
  • Karma: 374
Re: Identador Bennu (en lex/flex)
« Respuesta #5 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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

  • Hero Member
  • *****
  • Mensajes: 1569
  • Karma: 140
    • Mi pagina
Re: Identador Bennu (en lex/flex)
« Respuesta #6 en: Marzo 08, 2010, 04:49:31 pm »
karma ++ :)
en la tarde lo probaré con algunos códigos y te comento :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: Identador Bennu (en lex/flex)
« Respuesta #7 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
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12701
  • Karma: 374
Re: Identador Bennu (en lex/flex)
« Respuesta #8 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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: Identador Bennu (en lex/flex)
« Respuesta #9 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.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Mr Matsusaka

  • Sr. Member
  • ****
  • Mensajes: 329
  • Karma: 29
    • EGS Studio
Re: Identador Bennu (en lex/flex)
« Respuesta #10 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++

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12701
  • Karma: 374
Re: Identador Bennu (en lex/flex)
« Respuesta #11 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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12701
  • Karma: 374
Re:Identador Bennu (en lex/flex)
« Respuesta #12 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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12701
  • Karma: 374
Re:Identador Bennu (en lex/flex)
« Respuesta #13 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!)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

gecko

  • Hero Member
  • *****
  • Mensajes: 801
  • Karma: 47
    • Torres Baldi Studio
Re:Identador Bennu (en lex/flex)
« Respuesta #14 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.
Torres Baldi Studio
http://torresbaldi.com