Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





lbreria de expresiones regulares en c (codigo compacto y elegante)

Iniciado por nasciiboy, 08 de Abril de 2016, 05:30:17 PM

« anterior - próximo »

nasciiboy

hola que tal,  aca el codigo:

https://github.com/nasciiboy/RecursiveRegexpRaptor

creo que es la biblioteca mas simple y pequeña del tipo que ha sido escrita jamas aunque no lo he corroborado,
ni conosco suficientemente el tema si saben algo mas se agradecera la informacion.

no cuenta con deteccion de errores (c no es asi) y el soporte a caracteres 16-24-32 bits es cuestionable.

nasciiboy

#1
lista la version 1(misma direccion), se pasan de 393 lineas iniciales a 408, se agrega soporte utf8, signo especial de agrupacion con captura, reemplaso de capturas, generacion de nueva linea con captura y algo de musica al commit.

nasciiboy

que tal, despues de unos meses trabajando en la libreria (reescribierdola de cero y modificando algunas cosas) hay una nueva vercion, esta ves incluye backreferences, ignorecase, y una peculiar forma de negar expreciones. y dos verciones de la liberira, puro ascii y utf8

lo he compilado con gcc 6.1.1 en freidora 24, creo que hay algun problema con gcc pues se producen dos errores especificamente en las pruebas  de las lineas 180 y 181. en cambio con clang version 3.8.0 cero errores.. dejo un enlace para que me hagan el favor de probar con su compilador, el comando es

   $ compilador test_ascii.c regexp3_ASCII.c

  $ a.out

https://drive.google.com/open?id=0BwlAq07XJ-Rta0lXZFRheUdjdVk

gracias

nasciiboy

log para "la gente del futuro" : se retira el enlace del anterior comentario, el error era provocado por no inicializar una varible. compilar con gcc o clang proporciona el mismo resultado.

adicionalmente se realizo una comparacion (se tomo la prueva de pcre elaborada por [dack100][sourceforge]) con las principales librerias.

los links

https://github.com/nasciiboy/RecursiveRegexpRaptor
https://github.com/nasciiboy/RecursiveRegexpRaptor-vs-Benchmarks

las siguientes metas

- explicacion de construccion detallada
- buscar un reemplazo elegante tanto en sintaxis como en codigo a la "negacion de expresion"
- mejorar el rendimiento.

el ultimo proposito escapa del plantamiento inicial de la libreria, el cual consite en ser el motor  mas sencillo tanto de uso como de codigo, por lo que seria un derivado con otro nombre... a menos que.. la nueva version "encaje armonicamente" con el codigo existente...






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.