Regex

Un marco Objective-C para expresiones regulares utilizando la biblioteca PCRE para Mac OS X COCOA y GNUSTEP
Descargar ahora

Regex Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • BSD
  • Precio:
  • FREE
  • Nombre del editor:
  • John Engelhart
  • Sitio web del editor:
  • Sistemas operativos:
  • 10.5
  • Tamaño del archivo:
  • 1.7 MB

Regex Etiquetas


Regex Descripción

Un marco Objective-C para expresiones regulares utilizando la biblioteca PCRE para Mac OS X COCOA y GNUSTEP REGEXKIT es un marco de Objective-C para expresiones regulares: · Soporte para Mac OS X COCOA y GNUSTEP. · No se requiere subclasificación. Agrega perfectamente el soporte de expresión regular a todos los objetos de la Fundación Nsarray, NSDictionary, Nsset y Nstring con un rico conjunto de adiciones de categoría OBJETIVO-C. · Unicode UTF-8 compatible. · Documentación extensa y de alta calidad. · Código fuente completo con una licencia BSD . · Utiliza la biblioteca de expresiones regulares compatibles con licencia de BSD PCRE PERL para el motor de expresión regular. Claude el soporte para Mac OS X 10.5 Leopard: · Soporte de 64 bits. Pre-construido para PPC, PPC64, I386 y X86_64. · Colección de basura habilitada. Soporte completo para la función de recolección de basura de leopardos. · Documentación integrada de Xcode 3.0. Obtenga información de API en tiempo real a través del Asistente de Investigación. Aquí hay algunas características clave de "regexkit": · Cachas de la forma compilada de la expresión regular para la velocidad. · Caja fuerte multithreading, incluido el lector múltiple, el escritor único de acceso multiprollado a la memoria caché regex compilada. · Hace un uso mínimo del almacenamiento de montones (es decir, malloc () y libre ()), en su lugar, asignar la mayoría de las necesidades de tampón temporal dinámicamente desde la pila. · Usa la base central directamente en Mac OS X para una velocidad adicional. ¿Qué hay de nuevo en este lanzamiento: · Modificó las macros RKPrettyObject para ser una función en lugar de una macro de preprocesador. Esto se afeita ~ 30k del ejecutable, o 4-7K por arquitectura. · Se agregó una ejecución, si PCRE_STUDY pudo optimizar la expresión regular. · Se agregó Xcode_CFLAGS_ * y PCRE_CFLAGS_ * a REGEXKIT CONFIGURACIÓN DE CONFIGURACIÓN.XCCONFIG para agregar CFLAGS específicos de OS a fuentes XCODE y PCRE. · Uso de los nuevos CFLAGS agregados anteriormente, agregados -fstack-protector-all a los objetivos Mac OS X 10.5. -Fstack-protector: todo es una característica de GCC que Apple posterpó a los lanzamientos posteriores de GCC que pueden atrapar muchos aplastamientos. · ProjectExportedsymbols modificados para exportar las nuevas constantes de RKErrory, Rkerrordomain y RKREGEXPCRelibrary Nstring. · Se agregaron extensiones privadas reguladas a Nsexception y NSError para simplificar la creación de versiones localizadas de cada una para instancias simples. · Señalaron varias macros pre-procesadores privados regulares para simplificar la creación de cadenas localizadas. Estos son similares en la naturaleza a fundaciones. Familia NSLocalizado de macros. · Convertido rkconvertutf8toutf16rangeforstring y rkconvertutf16toutf8rangeforstring a los equivalentes de StringBuffer, por lo que las rutinas internas podrían llamar las funciones de StringBuffer más eficientes. Los métodos de cadena simple se convirtieron en envolturas alrededor de las funciones de StringBuffer. · Creó una función privada regexkit rklocalizedstringForpCreCompileErrorCode que devuelve una cadena de descripción de error que se adapta mejor a las descripciones de NSError que los usuarios finales ven. Las cadenas localizadas en última instancia provienen del archivo de recursos de Bundle Frameworks PCRE.Strings. · Creó una variable global privada de regeo, RKFRAMEWORKBUNDLE que crea RKREGEX en tiempo de carga que proporciona los medios para acceder a las cadenas localizadas. · Creó una función privada que crea una etsxception desde un NSError de la misma manera que InitWithRegexString: Opciones: Método previamente hizo desde ese método ahora crea y devuelve un NSError para la mayoría de las condiciones de error. · RKREGEX ISIGAL modificado: para acceder directamente a las variables de instancia de objetos de comparación si es un objeto de clase RKREGEX para la velocidad. · Se agregó una función privada de regexkit para devolver el número de bytes para un carácter codificado UTF8 en un puntero dado, y una función que devuelve el rango para un carácter codificado UTF8 en un desplazamiento determinado de un puntero. Si el compensado apunta a la mitad de un carácter codificado UTF8, retrocederá hasta el inicio del carácter UTF8 que está en el desplazamiento dado, luego determine el número de bytes requeridos para representar un único punto de código de Unicode codificado en formato UTF8. Amplió las estrategias de bloqueo que proporciona la clase de bloqueo privado marco. Anteriormente, la clase de bloqueo solo proporcionó una estrategia de bloqueo de bloqueo. Las estrategias ahora disponibles incluyen: · Intenta leer. · Intenta escribir. · Intenta escribir, intente leer. · Intente escribir, luego bloquear adquirir para leer. · Bloqueo de adquisición de la lectura. · Bloqueo adquirido por escrito. · Este cambio se realizó para permitir que ciertas funciones de almacenamiento en caché no se bloqueen cuando un hilo no puede adquirir el grado solicitado de exclusión mutua para un recurso compartido de inmediato. · Se agregó una nueva clase de bloqueo privado, RkConditionlock, que es similar a su contraparte de fundaciones. Esto se hizo para proporcionar una interfaz de llamada de función más rápida y metodologías de bloqueo mejoradas, junto con los tiempos relativos basados ​​en NstimeInterval en lugar de los tiempos basados ​​en objetos NSDATE mucho más caros. El uso de objetos NSDATE incurre en una penalización de rendimiento significativa debido a la creación de objetos y la sobrecarga de la destrucción para finalmente transmitir un valor doble como un argumento. Al proporcionar directamente un argumento de parámetro de doble paso de tiempo relativo, que la sobrecarga se pasa por alto por completo. Las dos funciones RKFASTCONITYCLOCK y RKFASTCONITIONIONLLOCK proporcionan toda la funcionalidad, que se pueden llamar directamente, y los métodos de la interfaz orientada a objetos son solo los talones para estas dos funciones. Estas funciones y objetos no se exportan y son privadas del marco. · Consolidó una gran cantidad de lógica común para las cerraduras en las dos funciones rkfastmutexlock y rkfastmutexunlock. La clase Rklock se trasladó a esta base de código común, pero por el momento, Rkreadwritelock permanece inalterado. · Los mutexes PTHEAD creados por RKLOCK y RKCONITYLOCK no se crean con el atributo MUTEX PTHEAD PTHREAD_MUTUTEX_ERRORCHECHO, lo que hace que se realicen controles de corduras adicionales, como la misma rosca que bloquea un mutex bloqueado, desbloqueando un mutex desbloqueado, o un hilo que intenta desbloquear un mutex Eso fue bloqueado por un hilo diferente. · Actualizado la licencia que se muestra en el instalador para incluir explícitamente la licencia PCE. · Se agregó la licencia PCRE al archivo de licencia de directorio de la raíz del proyecto. · Se agregó el archivo de licencia a la fase de compilación de Recursos de Bundle Destacados de Framework. · Macros / Funciones de RkatomicBarrier agregadas que realizan semánticas de barrera de memoria completa para las arquitecturas donde esto hace una diferencia. · Cambió el segundo argumento de SBOINLOCK Y ENDLOCK DTRACE SONDES DE INT a NSINGEGER Para que coincida con la información que ahora proporciona RKLOCK y RKREADWITELOCK. La estrategia de bloqueo solicitada y el nivel de bloqueo final adquirido ahora se informan en lugar de una simple indicación de lectura / escritura booleana. · Agregado SCOMLOOK, ENDLOCK y DESBLOQUEO A REGEXKIT.USDT. · Dividir el archivo de encabezado regexkitprivate.h en varios archivos, regexkitprivateatomic.h, regexkitprivedtrivedtrace.h, regexkitprivatElocalization.h, regexkitprivatemory.h, regexkitprivatemory.h, y nstringprivate.h. · Cambió RKREGEX para que toda la inicialización de la clase tenga lugar en el método de inicialización. Anteriormente, se llevó a cabo alguna inicialización en el método de carga, lo que significó que se ejecutó incluso si la clase no se usaba en última instancia. También se agregaron cheques de protección en algunos puntos de entrada de la función, ya que llamar a una función no activaría el comportamiento de inicialización. · Actualizado GENERATEHTML.PL para iterar correctamente sobre los grupos en la entrada de la Tabla de Contenido de Constantes. Anteriormente, esto se actualizó manualmente para cada nuevo grupo. · Copyright actualizado para 2008. · Señaló la capacidad de especificar la disponibilidad (introducida en, en desuso en la versión, etc.) en el sistema de documentación con la disponibilidad de archivos.sql. Actualice las herramientas Docset para usar esta información al crear el archivo tokens.xml. · Alteró la estructura de las distintas pruebas de la unidad. Había un gran código que, con el tiempo, había logrado replicarse en varios archivos y luego separarse con el tiempo. Esto se consolidó en RKTESTCASE.M, que crea un objeto base común que es una subclase de FentStcase de la que se hereda los objetos de prueba de la unidad de regexkit. · Se eliminó la funcionalidad de las estadísticas MAC OS X MALLOC de la unidad Prueba el objeto NSDATE. También eliminó el tipo NHIGHRESTIMEINTERVAL y lo reemplazó con NStimeInterval, ya que ambos eran de tipo DOBLE. · Se agregó SortEDEGEExcollection.m para mantener las pruebas relacionadas con la nueva funcionalidad de recolección Rogex ordenada multipreada. Corrección de errores: · En regexkit.USTDT, se intercambiaron los argumentos de la sonda de Empresentación para la gravedad y el almacén general. Esto fue corregido. · Se corrigió un tipo-O en regexkit_match_timing.instrument. De alguna manera, "% x" se cambió a B, lo que hizo que el instrumento no fuera legal para analizar y, por lo tanto, no aparecerá en los instrumentos.app. · Se solucionaron algunos errores en algunos archivos HTML y la hoja de estilo Print.css que hará que algunos títulos se compensen negativamente en el borde imprimible. · Se corrigió un error de visualización de Firefox en common.css que causó que los cuadros de código de fuentes no se formaran. · La clase RkReadWritelock mostrará inofensivamente un recuento incorrecto de la cantidad de errores espurios que intentan un número máximo de intentos. · La clase RkReadWritelock incrementaría inofensivamente un contador de depuración interno dos veces si no podía adquirir un bloqueo de nivel de escritura en el primer intento. · La clase RkReadWritelock actualizaría incorrectamente un IVAR interno con respecto a la condición de lectura o escritura de la cerradura, independientemente de si un error PTHEAD, evitó que se adquiere o no el bloqueo. · Cambió los métodos de retención y liberación de RKREGEX para usar las rutinas RkatomicBarrier para hacer cumplir una barrera de memoria completa. Esto puede haber llevado a las condiciones de raza en arquitecturas en las que esto hace una diferencia, como la arquitectura PowerPC, y cuando múltiples CPU intentan actualizar la misma ubicación de memoria simultáneamente. . RKREGEX con las opciones requeridas en lugar de usar la clase Base RKREGEX. Esto haría una diferencia solo a una subclase de RKREGEX que sobrepasaran el proceso de creación de objetos. · SourceForge Bug 1850418 - 'Error en vinculación de menos de 10.4'. Este problema está cubierto en la información de la versión: notas de la versión para 0.6.0 beta. Actualización: Reenvió este error a Apple como error # 5708443. El informe de errores original se cerró como se comporta correctamente. La justificación dada es "es lo mismo para la vinculación, los errores de enlaces basados ​​en 10.4 cuando ve las cosas que no entiende en el 10.5 Libsystem.Dylb. (SIC)" y "en lo que respecta a la segunda publicación, no hay errores en el enlazador 10.5. Está bien vincularse contra el 10.5 libsystem.dylib con -macosx_version_min = 10.4. La sección DTrace es parte de la implementación de Libsystem.Dylib. No es parte de la interfaz al Dylib (pero el enlazador 10.410.4 no lo sabe) ". Para ser honesto, estoy perdiendo la pérdida de cómo el ingeniero logró saltar del error a las justificaciones que se otorga para cerrarla como se comporta correctamente. · Error de ForceForge 1878659 - 'No se basa en 10.5 sistemas que construyen un objetivo de 10.4'. Se corrigió el condicional de rk_requires_nil_termination. El condicional anterior redefinió incorrectamente como ns_requires_nil_termination cuando se basa en un sistema 10.5, pero se dirige estrictamente a 10.4. Se agregó definido (ns_requires_nil_termination) para restringir aún más el condicional. También se restringió aún más habetable_macosx_garbage_collection con definido (__ objc_gc__) y enable_dtrace_instrumentation que se restringirá aún más por definido (S_DTRACE_DOF), que se define en MACH-O / Loader.h. · Se solucionó un error informado por primera vez por Doug Dickinson en el Mensaje del Foro de SourceForge Regexkit 'MATCH / REPLASE CON LA CUERZA DE REFERENCIA VACÍA?'. Esto resultó ser un error en la función privada de nstring.m rkstringbymatchinganyexpanding. Esta función tuvo una optimización donde no se llevaron a cabo reemplazos, no se realizaron cambios en el original, y podría devolver la cadena original sin editar en lugar de crear una nueva. Desafortunadamente, el caso en el que la rogex coincidió con el comienzo de la cadena a buscar, pero la cadena de reemplazo estaba 'vacía' (i.e., @ ""), esto apareció como si no se tuviera cambios, ya que no se requirieron reemplazos. Fijo al verificar también el NSRange final de la cadena editada contra la cadena original para buscar. Si una "coincidencia al comienzo, pero reemplaza con nada", ocurre ahora (es decir, como si la ubicación NSRange se hubiera movido de 0 a un valor> 0), estos rangos serán diferentes y ahora volverán correctamente una cadena con el corte de inicio. apagado. Esto puede haber efectuado una búsqueda y reemplaza similares que tuvieron lugar en el extremo trasero de una cadena, pero la solución también atrapará esa condición.


Regex Software relacionado

Refactorista

Refactorit - Herramienta de refactorización integral dirigida a las necesidades de los desarrolladores corporativos ...

151 8.2 MB

Descargar