2 repositorios
Tools for creating custom binary data parsers using domain-specific languages with backtracking.
Distinct from Binary Data Parsers: Specifically provides the generation mechanism for parsers, rather than just providing a set of static parser libraries.
Explore 2 awesome GitHub repositories matching data & databases · Parser Generators. Refine with filters or upvote what's useful.
Racket es un lenguaje de programación de propósito general y multiparadigma de la familia Lisp, diseñado para la creación de lenguajes. Funciona como un banco de trabajo de lenguajes, proporcionando una plataforma para diseñar e implementar lenguajes de programación personalizados a través de un sistema flexible de macros y módulos. El sistema se distingue por ofrecer una suite integral para la ingeniería de semántica, permitiendo la construcción de subconjuntos de lenguajes especializados y capas educativas. Incluye herramientas para el diseño de lenguajes personalizados, como la generación de lexers y parsers, así como la capacidad de definir reglas de expansión de módulos y selección dinámica de lenguaje en tiempo de lectura. El proyecto proporciona un entorno de desarrollo integrado con un editor incorporado, depurador visual y un gestor de paquetes de software. Su superficie de capacidades se extiende a una biblioteca estándar de propósito general que cubre renderizado de gráficos 2D, procesamiento de datos binarios, integración con SQL y bases de datos deductivas, y la construcción de interfaces gráficas de usuario. El entorno admite la compilación de código fuente en archivos ejecutables independientes para su distribución.
Provides a domain-specific language for generating binary data parsers with backtracking and context-sensitivity.
Kaitai Struct es un framework para especificación binaria declarativa que proporciona generación automatizada de analizadores y serializadores a través de múltiples lenguajes de programación. Utiliza un lenguaje portátil específico del dominio para describir el diseño de archivos binarios y paquetes de red, convirtiendo estas especificaciones en código fuente para leer y escribir datos binarios. El sistema permite el procesamiento de datos entre lenguajes traduciendo una definición estructural única en código fuente nativo para lenguajes incluyendo C++, C#, Go, Java, JavaScript, Python y Rust. Este enfoque permite que la misma especificación de datos binarios se implemente a través de diferentes plataformas sin reescribir manualmente la lógica de análisis. El framework cubre el modelado y procesamiento de datos binarios, incluyendo la capacidad de gestionar punteros de lectura para navegación de offset y aplicar transformaciones de datos como descompresión y descifrado. También proporciona herramientas para la depuración de especificaciones de formato para validar el mapeo entre diseños de datos binarios y sus descripciones declarativas.
Automatically generates binary data parser source code for multiple languages from a declarative format specification.