[Python-es] Parsear Fortran en Python

Mario R. Osorio mario en osorio.solutions
Mar Nov 10 18:02:36 EST 2015


Juan Luis,

Es posible que yo haya simplificado mucho tus necesidades. A mi me toco
estudiar a profundidad pyparser y me dio la impresion que era casi
imposible no poder parsear cualquier cosa, por complicado que fuera.

Sin embargo, y en otro order de ideas, no se conoces *como funcionan los
parsers y compiladores* <http://parsingintro.sourceforge.net/>, pero en dos
palabras, el parser genera tokens, los cuales son convertidos en lenguaje
de maquina por el compilador. Existen docenas de parsers para fortran.
Quizas perrefieras utilizar alguno de estos parsers y en vez de compilar
los token, convertirlos a python con tu priopio codigo.

Pareciera el mismo trabajo porque de todas maneras tendrias que (o al menos
te seria mas facil) utilizar pyparser para convertir los tokens a codigo
python. SIN EMBARGO, debo SUPONER que es mas facil generar las reglas para
los tokens que para el codigo.

Mi preferencia personal seria utilizar pyparser, pero debes tener la
documentacion correcta y completa del lenguaje a compilar, o mejor aun, las
definiciones EBNF de FORTRAN 77, asi podrias utilizar *este modulo*
<http://pyparsing.wikispaces.com/file/view/ebnf.py>, y ahorrarte muuuchos
dolores de cabeza...


Dtb/Gby
=======
Mario R. Osorio
A.S. of Computer Programming and Analysis

“If I had asked people what they wanted, they would have said faster
horses.”
 ― Henry Ford



2015-11-10 16:06 GMT-05:00 Juan Luis Cano <juanlu001 en gmail.com>:

> Gracias a todos por las respuestas, si consigo algo decente habrá artículo
> en el blog pero no antes de 2016 :)
>
> Juanlu
>
>
> On 2015-11-10 21:47, francismb wrote:
>
>> Hola Juan,
>>
>> 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.
>>>
>>> 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.
>>>
>>> Otra alternativa si tuvieras la gramatica seria ANTLR [1], es java pero
>> segun tengo entendido genera python [2]
>>
>>
>>
>> [1] http://www.antlr.org/
>> [2] https://theantlrguy.atlassian.net/wiki/display/ANTLR4/Python+Target
>>
>> Saludos,
>> francis
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20151110/853d50bf/attachment.html>


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