Saltar al contenido

Gnu/Linux Vagos usa cookies. Lea nuestra Política de privacidad para más información.    Acepto el uso de cookies

Foto
En Desarrollo

libreria de expresiones regulares en C

En Desarrollo

  • Por favor, loguéate para poder responder
6 respuestas a este tema

#1 DESCONECTADO   nasciiboy

nasciiboy

    Recién llegado

  • Registrado: 20/05/2016
  • Mensajes: 44
  • Galletas: 105

Género:








Lugar:Isla de los Heroes del viento

Intereses:musica, anime, porno, cine, programacion, gnu, tecnologia, literatura, psicodelia, videojuegos,neon genesis evangelion,...

Escrito 20 May 2016 - 16:21

hola buenas, he escrito una libreria de expresiones regulares en c, creo que es la mas pequeña jamas escrita y hasta puede que eficiente, aunque nadie ha respondido para replicar esta suposicion. bueno por aca esta el codigo https://github.com/n...iveRegexpRaptor tiene un uso muy sencillo, y el codigo es extremadamente claro y evidente (o eso intenta). se desarrollo como un compontente de un proyecto mas grande, aunque por si misma es mi mas grande orgullo como programador si alguien desea colaborar con la traduccion del readme al ingles para difundirla se agradecera incluyendo un fichero CONTRIBUCIONES o algo asi. tambien se agradecerian nuevas ideas o caracteristicas.
  • eMix, pacoeloyo, Rohlling y 1 otro le gusta esto

#2 DESCONECTADO   Mgbu

Mgbu

    Gurú

  • Registrado: 22/11/2013
  • Mensajes: 767
  • Galletas: 2792

Género:






Lugar:C:\Usuarios\Mgbu

Intereses:Programación, Astronomía, Ciencia, Telecomunicaciones

Escrito 20 May 2016 - 22:19

Muy interesante y completo.

Me llamó la atención los nombres de los commits, qué usás? Da algunos nombres de canciones

 

Me dio ganas de jugar algun jueguito de regex :D


  • eMix, pacoeloyo, Rohlling y 1 otro le gusta esto
:notoy:

#3 DESCONECTADO   nasciiboy

nasciiboy

    Recién llegado

  • Registrado: 20/05/2016
  • Mensajes: 44
  • Galletas: 105

Género:








Lugar:Isla de los Heroes del viento

Intereses:musica, anime, porno, cine, programacion, gnu, tecnologia, literatura, psicodelia, videojuegos,neon genesis evangelion,...

Escrito 21 May 2016 - 00:40

es marca de la casa. hasta arriba lo mas destacado del commit en un ingles de practica, luego ficheros manoseados, y al final en la seccion Sonic-Boom (tributo a Sonic Youth) la musica que escuchada durante la labor; a la izquierda el autor y a la derecha el album ':' para disco '::' continuacion de nombre de disco y '!' por es la primer vez que lo escucho.


la verdad si da pereza aprender a usar regexp aunque si manoseas texto (mucho o poco) es una herramienta asombrosa, ademas bien usada ahorra muchas lineas de codigo.


aqui una exprecion que no puedo resolver


la linea puede empezar por una combinacion de dos caracteres que pueden ser [<_^>] seguido por uno o varios espacios, luego algo de texto y nuevamente una combinacion de dos caracteres como la inicial, para finalizar en mas texto, el reto es capturar ambas combinaciones y ambos textos. un ejemplo:

<^ texto texto _coracter-envenenado <otro-caracter-envenenado ^^ texto texto texto

Editado por nasciiboy, 21 May 2016 - 00:51 .

  • eMix, pacoeloyo, Rohlling y 1 otro le gusta esto

#4 DESCONECTADO   nasciiboy

nasciiboy

    Recién llegado

  • Registrado: 20/05/2016
  • Mensajes: 44
  • Galletas: 105

Género:








Lugar:Isla de los Heroes del viento

Intereses:musica, anime, porno, cine, programacion, gnu, tecnologia, literatura, psicodelia, videojuegos,neon genesis evangelion,...

Escrito 27 May 2016 - 19:11

despues de una ligera remodelacion del codigo (que aumento el cruft) se pudo resolver la exprecion liosa de arriba con

 

 

"^\\s*<[\\<^_\\>]{2}>\\s+<!( [\\<^_\\>]{2} )+> <[\\<^_\\>]{2}> <.*>"

 

 

agregando el signo '!' para indicar *negacion de exprecion*. listo para usar en la version recien cocinada de la libreria.


  • pacoeloyo, Rohlling y Mgbu les gusta esto

#5 DESCONECTADO   nasciiboy

nasciiboy

    Recién llegado

  • Registrado: 20/05/2016
  • Mensajes: 44
  • Galletas: 105

Género:








Lugar:Isla de los Heroes del viento

Intereses:musica, anime, porno, cine, programacion, gnu, tecnologia, literatura, psicodelia, videojuegos,neon genesis evangelion,...

Escrito 15 September 2016 - 21:25

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 180 y 181. en cambio con clang 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...ZEE0bFY3NU9TMnc

 

me niego a agregar al repo codigo del cual conosco algun error.

 

gracias. por cierto, como creo que la libreria y su metodo merece tener un lugar en los libros de informatica por el resto del tiempo estoy escribiendo un libro con todo el proceso de construccion de esta pequeña maquinaria, con mucho codigo, explicando paso a paso, solicito colaboracion para escribir algo que paresca inteligente e iteresante, ademas de que pueda traducir al ingles, en principo por amor al arte, si sale algo digno divicion de 50-50 de donaciones y ventas en bibliotecas virtuales.


Editado por nasciiboy, 15 September 2016 - 22:12 .

  • pacoeloyo, Rohlling y Mgbu les gusta esto

#6 DESCONECTADO   nasciiboy

nasciiboy

    Recién llegado

  • Registrado: 20/05/2016
  • Mensajes: 44
  • Galletas: 105

Género:








Lugar:Isla de los Heroes del viento

Intereses:musica, anime, porno, cine, programacion, gnu, tecnologia, literatura, psicodelia, videojuegos,neon genesis evangelion,...

Escrito 28 September 2016 - 03:27

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

 

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

los links

 

https://github.com/n...iveRegexpRaptor

https://github.com/n...r-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...


  • pacoeloyo y Rohlling les gusta esto

#7 DESCONECTADO   nasciiboy

nasciiboy

    Recién llegado

  • Registrado: 20/05/2016
  • Mensajes: 44
  • Galletas: 105

Género:








Lugar:Isla de los Heroes del viento

Intereses:musica, anime, porno, cine, programacion, gnu, tecnologia, literatura, psicodelia, videojuegos,neon genesis evangelion,...

Escrito 11 January 2017 - 05:29

que tal, despues de unos meses sin dar signos de vida retomo la escritura del manual raptor-book, esta vez intentando dejar las secciones en su forma definitiva.

de momento hay pocos capitulos, he revisado muchos errores dislexicos y hay una version en formato html pueden descargar una copia en

https://github.com/n...hive/master.zip

o clonar el repositorio directamente

git clone https://github.com/n...raptor-book.git

las actualizaciones seran constantes, se agradecera cualquier sugerencia o mejora que ayude a hacer mas comprensible el material


  • pacoeloyo y Rohlling les gusta esto





También etiquetado con una o más de estas palabras: En Desarrollo