Banco de pruebas de analizadores de texto, abril de 2024
========================================================

Aca se compararon tres formas de leer un archivo de tabla:

  flex.l + calc.y   una gramatica con flex y bison
  lexeralt.c        un lexer escrito a mano, 55 KB
  pcre2demo.c       expresiones regulares con PCRE2

Gano el escrito a mano, y de ahi salio src/manual_lexer.c de tabular 2, que
es el que carga las tablas hoy. En svn/siru/reflex esta el mismo
experimento con la biblioteca RE/flex, y tiene sus propias copias.

La gramatica se fue, y el programa que la usaba tambien
------------------------------------------------------

flex.l, calc.y y main.c pasaron a ../tabular2/viejos/ejemplo-01. Alla compilan
contra la biblioteca de tabular 2; aca dependian de la copia vieja que sigue
en este directorio. El main.c de aca era la version anterior del mismo
programa, 722 lineas contra 759, y llamaba a print_list_views() y
view_colx_coly(), que en tabular 2 se llaman print_views() y
search_view_colx_coly(): el que quedo alla ya usa los nombres nuevos, en las
mismas cuatro lineas. No se perdio nada.

Con ellos se fue del Makefile el objetivo lexer1, que era el de por defecto, y
las reglas de flex y bison. No queda ninguna referencia al analizador. Lo que
se averiguo de todo eso esta en el LEAME de ese directorio.

Que anda y que no
-----------------

  pcre       anda:  make pcre. Son 16 KB y es un demo de PCRE2, no tiene
             nada que ver con tablas.
  lexeralt   NO compila: lexeralt.c:1727, "conflicting types for get_token".
  lexer1     ya no existe. No se construia igual, y desde antes de la
             mudanza: faltaban view.c y view.h --la regla los pedia como
             view.o-- y table.c no compila, linea 739, "expected ';' before
             'if'". Comprobado exportando la revision anterior a la mudanza y
             corriendo make lexer1 ahi: falla igual. Roto desde antes de
             r1292 (2021).
  coredump   el objetivo esta pero coredump.c no existe.

De los 32 archivos que quedan, cinco tienen dueño --lexeralt.c, lexeralt.h,
mem.c, mem.h y pcre2demo.c-- y 27 no los construye ni los incluye nadie: la
copia de la biblioteca, otrostextos.c, file_helpers.c, los tres .test que eran
la entrada de lexer1 y el directorio data/ con 176 KB de tablas de prueba.

La copia de la biblioteca
-------------------------

table.c, cell.c, interpola.c, header.c, sequence.c, lines.c, tables.c,
gnuplot.c, mem.c, time.c, util.c y sus .h son una copia anterior a tabular 2
--table.c de 31 KB contra los 42 de hoy, sin create_search_table,
free_tablelist ni get_table_info-- que estaba aca para que el experimento
compilara. No es de donde sacar codigo.

Lo que de verdad quedo
----------------------

No el codigo, sino la lista de lo que aquel formato entendia y el de hoy no:
comentarios de varias lineas, // como comentario, punto y coma como fin de
linea, barra invertida para continuar, \include(archivo) y comandos
\nombre(...). Esa lista, con lo que costaria traer cada cosa a
manual_lexer.c, esta en el HACKING de tabular 2.
