[Python-es] Parsear Fortran en Python

Juan Luis Cano juanlu001 en gmail.com
Dom Nov 8 12:52:25 EST 2015


Hola a todos:

Estoy investigando cómo podría parsear código Fortran en Python y como 
no sé nada de parsers, gramáticas y estas cosas he pensado en escribir a 
esta lista por si podríais iluminarme un poco el camino.

Lo más parecido a lo que busco sería f2py, pero no me sirve porque no 
soporta muchas características de Fortran 90 en adelante, concretamente 
tipos derivados. Y nunca los va a soportar: actualmente *nadie* entiende 
el código fuente (ni siquiera su autor original), los bugs se acumulan 
con el paso de los años y a la gente de SciPy le basta con que lea 
FORTRAN 77.

Otras opciones que tengo son usar unas reglas formuladas con SDF[1], 
pero como no sé qué hacer con ellas no sé en qué estado están. He 
intentado usar Open Fortran Parser, supuestamente basado en ANTLR, pero 
ni siquiera me compila. También he buscado por ahí gramáticas de Fortran 
ya escritas (por ejemplo para lex/yacc) pero no he encontrado nada 
satisfactorio.

Básicamente necesitaría ayuda para decidirme entre PLY y pyparsing 
porque los enfoques son muy distintos. He visto que PLY lo usa por 
ejemplo pycparser con éxito, pero me gustaría conocer opiniones al 
respecto antes de lanzarme.

En la wiki de Python vienen como una veintena de opciones pero me da 
pereza revisar todas a ver cuales están mantenidas, tienen una 
documentación medio decente...

Aprovechando, si alguien me recomienda alguna lecturita al respecto o da 
algún consejo genérico se lo agradecería también. No es mi objetivo 
hacerme un experto en parsers, con que resuelva mi problema me basta.

Gracias por adelantado y un saludo:

Juanlu

[1]: https://github.com/OpenFortranProject/ofp-sdf


Más información sobre la lista de distribución Python-es