Estoy escribiendo un código Python que necesita interoperar con el código C que también escribí. En CI tiene una sección como
#define FOO 23 // whatever
#define BAR 54.3 // something else
Quiero usarlos en python (ya que las variables regulares están bien). No estoy encontrando nada en mis búsquedas en la web, y fácilmente podría escribir un analizador, pero... No puedo creer que sea el primero con tal necesidad. PyPreprocessor se acerca, pero no exactamente.
¿Hay una manera obvia de hacerlo que me falta?
Solución del problema
Tal vez sea excesivo, pero podría usar el analizador del módulo dissect.cstruct.
Actualmente admite definiciones simples de preprocesador y expresiones simples como #define TWO (ONE+1)
, pero no admite condicionales como #if
y #ifdef
.
ejemplo de código
from dissect.cstruct import cstruct
defs_str = """
#define FOO 23 // whatever
#define BAR 54.3 // something else
"""
c = cstruct()
c.load(defs_str)
print(c.consts) # => {'FOO': 23, 'BAR': 54.3}
print(c.FOO) # => 23
print(c.BAR) # => 54.3
No hay comentarios.:
Publicar un comentario