[Python-es] Parsear Fortran en Python

Alexandre Manhaes Savio alexsavio en gmail.com
Mie Nov 11 05:45:36 EST 2015


Tengo experiencia con ANTLR y bison (ya he hecho functionar un parser para un sub-set de algo parecido a python con ambos). Además de las respectivas asignaturas en la ingeniería.
Estoy de acuerdo con María. Lo de programar con tokens aunque al principio parezcan un engorro, te salvarán el pellejo.

Yo que tú le daba un intento con pyparser, lo más aburrido es generar las reglas desde la sintaxis y comprobar que va bien.


-----------------------------------
Alexandre Manhães Savio
Post-doctoral researcher
Klinikum rechts der Isar, TUM, München
alexsavio.github.io
Nebenstellennummer: 4570
On 11.11.2015 09:39, Kiko wrote:
>
>
> El 11 de noviembre de 2015, 0:02, Mario R. Osorio
> <mario en osorio.solutions <mailto:mario en osorio.solutions>> escribió:
>
>     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
>     <mailto: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
>
>
>
> Quizá en la lista de numpy te puedan dar más opciones.
>
> De mi experiencia con Brython y su transpilador (Python a JS) te puedo
> decir que la tarea es un infierno lleno de excepciones en las reglas y
> corner cases que hacen que sea fácil tener bugs.
>
> Saludos.
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



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