Estoy buscando escribir un filtro de importación de Python o preprocesador para archivos fuente que son esencialmente Python con elementos de lenguaje adicionales. El objetivo es leer el archivo fuente, analizarlo en un árbol sintáctico abstracto, aplicar algunas transformaciones para implementar las nuevas partes del idioma y escribir una fuente válida de Python que CPython pueda utilizar. Quiero escribir esto en Python y estoy buscando el mejor analizador para la tarea.Analizador de Python para Python-like language
El analizador incorporado en Python no es apropiado porque requiere que los archivos fuente sean Python reales, que no serán. Hay toneladas de analizadores (o generadores de analizadores sintácticos) que funcionarán con Python, pero es difícil saber cuál es la mejor para mis necesidades sin un montón de investigación.
En resumen, mis requisitos son:
- Analizador está escrito en Python o tiene enlaces Python.
- Viene con una gramática de Python que puedo ajustar, o puede consumir fácilmente una gramática modificable de Python disponible en otros lugares (como http://docs.python.org/reference/grammar.html).
- Puede volver a serializar el AST después de transformarlo.
- No debería ser demasiado horrible para trabajar con API.
¿Alguna sugerencia?
Para que quede claro: el idioma que desea analizar ni siquiera * * parse como Python puro. ¿Correcto? –
¿Ha considerado buscar en PyYAML? – inspectorG4dget
@SvenMarnach: Eso es correcto. – kindall