Source: slex
Section: libs
Priority: optional
Maintainer: Diego Saravia <dsa@unsa.edu.ar>
Build-Depends: debhelper-compat (= 13), autoconf, automake, libtool, bison, pkg-config, libpcre2-dev, libmem-util-dev, libunidades-dev, python3
Standards-Version: 4.6.2
Homepage: https://cssan.simusol.org
Rules-Requires-Root: no

Package: libslex0
Architecture: any
Section: libs
Multi-Arch: same
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: lexer reentrante sobre PCRE2, con las subcadenas capturadas
 Parte un texto en tokens comparandolo con expresiones regulares de PCRE2 y
 quedandose con la que captura mas caracteres. Dos cosas que lex y flex no
 dan:
 .
  * la funcion de usuario de cada expresion recibe las subcadenas que la
    expresion capturo, no solo el token entero;
  * con PCRE2_PARTIAL_MATCH sabe si le conviene leer mas antes de decidir un
    token, y asi puede leer un archivo mientras otro programa lo escribe.
 .
 Es reentrante y recursivo: cada lexer vive en su hilo y puede tener varias
 fuentes abiertas a la vez --cadenas, archivos y otros lexers-- de modo que
 un include anidado, o un lexer que toma sus tokens de otro, salen naturales.
 Entiende UTF-8 e interopera con bison.
 .
 Este paquete trae la biblioteca compartida.

Package: libslex-dev
Architecture: any
Section: libdevel
Multi-Arch: same
Depends: libslex0 (= ${binary:Version}), libpcre2-dev, libmem-util-dev, ${misc:Depends}
Description: lexer reentrante sobre PCRE2 (archivos de desarrollo)
 Ver libslex0.
 .
 Este paquete trae los encabezados, el enlace de desarrollo y el archivo
 pkg-config: PKG_CHECK_MODULES([SLEX],[slex]) trae tambien PCRE2 y mem_util,
 que son sus dependencias.

Package: d2datdinc
Architecture: any
Section: science
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: de un circuito de Simul al dato JSON y al sistema de Calcula
 Lee la descripcion de un circuito en cualquiera de los tres formatos de
 Simusol --el .d de SCEPTRE, el .ds de siru y el .ds2 corregido-- en una sola
 pasada y con la misma tabla de expresiones regulares, y escribe lo que se le
 pida: con --dat el dato JSON que Simul consume, con --din el sistema que
 resuelve Calcula, o los dos.
 .
 Lo que le da sentido al nombre: con --din el sistema sale del arbol que quedo
 en memoria al leer la entrada, sin escribir ni volver a leer ningun .dat. Un
 dato da hasta 19 sistemas, uno por metodo de Runge-Kutta, y ademas la
 configuracion que lee siru.
 .
 Reemplaza a Simulparser, el parser en Perl, que necesitaba dos etapas para
 un .d (d2ds y despues ds2dat) y un modulo por seccion. La equivalencia esta
 medida sobre el corpus completo de circuitos: el mismo JSON en los 191
 archivos que los dos programas pueden leer, ninguno distinto; y el mismo .din
 en los 18 circuitos que las dos implementaciones traducen.
