<p dir="ltr">Te paso un contacto por privado del autor de varias de estqs cosas entre ellas el xdk de Intel </p>
<br><div class="gmail_quote"><div dir="ltr">El dom, nov 15, 2015 15:06, Juan Luis Cano <<a href="mailto:juanlu001@gmail.com">juanlu001@gmail.com</a>> escribió:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
<div>On 2015-11-11 13:48, Luis Fernando
Lopez Aguilar wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Pueden pasarme ese programa escrito en fortran?
<div><br>
</div>
<div>Tengo curiosidad de cuan dificil es reinterpretar, por los
80 al 85 he programado en fortran IV en un pdp11/45</div>
<div><br>
</div>
<div>Saludos.</div>
<div>f.l.</div>
</div>
</blockquote>
<br></div><div bgcolor="#FFFFFF" text="#000000">
Luis Fernando, no es un programa concreto el que quiero parsear:
estaba explorando opciones sobre cuál sería la mejor manera de
escribir un parser. Me temo que desde FORTRAN IV hasta Fortran 2003
ha cambiado bastante la cosa :)<br>
<br>
Gracias Alex y Mario por las ideas. Mario, no me queda claro cómo
utilizar alguno de los parsers de Fortran existentes para extraer
los tokens y convertirlos a Python, o a lo mejor es que te he
entendido mal. ¿Te refieres, por ejemplo, a tratar de reutilizar la
lógica de gfortran?<br>
<br>
También he descubierto grako, que está bastante bien documentado y
trabaja con EBNF <a href="https://pypi.python.org/pypi/grako" target="_blank">https://pypi.python.org/pypi/grako</a> Creo que
escogeré una de estas tres opciones.<br>
<br>
Y sí, efectivamente quiero hacerlo con tokens y reglas porque ya he
leído demasiado código que trata de parsear lenguajes complicados
"chapuceramente" solo utilizando regex (o ni siquiera) y me sangran
los ojos. Quiero producir una cosa que sea lo más sólida y robusta
posible (si es que finalmente lo hago).<br>
<br>
Un saludo:<br>
<br>
Juanlu</div><div bgcolor="#FFFFFF" text="#000000"><br>
<br>
<blockquote type="cite">
<div class="gmail_extra"><br>
<div class="gmail_quote">El 11 de noviembre de 2015, 6:45,
Alexandre Manhaes Savio <span dir="ltr"><<a href="mailto:alexsavio@gmail.com" target="_blank"><a href="mailto:alexsavio@gmail.com" target="_blank">alexsavio@gmail.com</a></a>></span>
escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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.<br>
Estoy de acuerdo con María. Lo de programar con tokens
aunque al principio parezcan un engorro, te salvarán el
pellejo.<br>
<br>
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.<br>
<br>
<br>
-----------------------------------<br>
Alexandre Manhães Savio<br>
Post-doctoral researcher<br>
Klinikum rechts der Isar, TUM, München<br>
<a href="http://alexsavio.github.io" rel="noreferrer" target="_blank">alexsavio.github.io</a><br>
Nebenstellennummer: 4570<br>
<span>On 11.11.2015 09:39, Kiko wrote:<br>
><br>
><br>
> El 11 de noviembre de 2015, 0:02, Mario R. Osorio<br>
</span>> <<a href="mailto:mario@osorio.solutions" target="_blank">mario@osorio.solutions</a> <mailto:<a href="mailto:mario@osorio.solutions" target="_blank"><a href="mailto:mario@osorio.solutions" target="_blank">mario@osorio.solutions</a></a>>>
escribió:<br>
<span>><br>
> Juan Luis,<br>
><br>
> Es posible que yo haya simplificado mucho tus
necesidades. A mi me<br>
> toco estudiar a profundidad pyparser y me dio la
impresion que era<br>
> casi imposible no poder parsear cualquier cosa,
por complicado que<br>
> fuera.<br>
><br>
</span>> Sin embargo, y en otro order de ideas, no se
conoces *como funcionan<br>
> los parsers y compiladores* <<a href="http://parsingintro.sourceforge.net/" rel="noreferrer" target="_blank"><a href="http://parsingintro.sourceforge.net/" target="_blank">http://parsingintro.sourceforge.net/</a></a>>,<br>
<span>> pero en dos palabras, el parser
genera tokens, los cuales son<br>
> convertidos en lenguaje de maquina por el
compilador. Existen<br>
> docenas de parsers para fortran. Quizas
perrefieras utilizar alguno<br>
> de estos parsers y en vez de compilar los token,
convertirlos a<br>
> python con tu priopio codigo.<br>
><br>
> Pareciera el mismo trabajo porque de todas
maneras tendrias que (o<br>
> al menos te seria mas facil) utilizar pyparser
para convertir los<br>
> tokens a codigo python. SIN EMBARGO, debo SUPONER
que es mas facil<br>
> generar las reglas para los tokens que para el
codigo.<br>
><br>
> Mi preferencia personal seria utilizar pyparser,
pero debes tener la<br>
> documentacion correcta y completa del lenguaje a
compilar, o mejor<br>
</span>> aun, las definiciones EBNF de FORTRAN 77,
asi podrias utilizar *este<br>
> modulo* <<a href="http://pyparsing.wikispaces.com/file/view/ebnf.py" rel="noreferrer" target="_blank">http://pyparsing.wikispaces.com/file/view/ebnf.py</a>>,
y<br>
<span>> ahorrarte muuuchos dolores de
cabeza...<br>
><br>
><br>
> Dtb/Gby<br>
> =======<br>
> Mario R. Osorio<br>
> A.S. of Computer Programming and Analysis<br>
><br>
> “If I had asked people what they wanted, they
would have said faster<br>
> horses.”<br>
> ― Henry Ford<br>
><br>
><br>
><br>
</span><span>> 2015-11-10 16:06 GMT-05:00
Juan Luis Cano <<a href="mailto:juanlu001@gmail.com" target="_blank">juanlu001@gmail.com</a><br>
</span>> <mailto:<a href="mailto:juanlu001@gmail.com" target="_blank">juanlu001@gmail.com</a>>>:<br>
<div>
<div>><br>
> Gracias a todos por las respuestas, si
consigo algo decente<br>
> habrá artículo en el blog pero no antes de
2016 :)<br>
><br>
> Juanlu<br>
><br>
><br>
> On 2015-11-10 21:47, francismb wrote:<br>
><br>
> Hola Juan,<br>
><br>
> Otras opciones que tengo son usar
unas reglas formuladas<br>
> con SDF[1],<br>
> pero como no sé qué hacer con ellas
no sé en qué estado<br>
> están. He<br>
> intentado usar Open Fortran Parser,
supuestamente basado<br>
> en ANTLR, pero<br>
> ni siquiera me compila. También he
buscado por ahí<br>
> gramáticas de Fortran<br>
> ya escritas (por ejemplo para
lex/yacc) pero no he<br>
> encontrado nada<br>
> satisfactorio.<br>
><br>
> Aprovechando, si alguien me
recomienda alguna lecturita<br>
> al respecto o da<br>
> algún consejo genérico se lo
agradecería también. No es<br>
> mi objetivo<br>
> hacerme un experto en parsers, con
que resuelva mi<br>
> problema me basta.<br>
><br>
> Otra alternativa si tuvieras la
gramatica seria ANTLR [1],<br>
> es java pero<br>
> segun tengo entendido genera python [2]<br>
><br>
><br>
><br>
> [1] <a href="http://www.antlr.org/" rel="noreferrer" target="_blank">http://www.antlr.org/</a><br>
> [2]<br>
> <a href="https://theantlrguy.atlassian.net/wiki/display/ANTLR4/Python+Target" rel="noreferrer" target="_blank">https://theantlrguy.atlassian.net/wiki/display/ANTLR4/Python+Target</a><br>
><br>
> Saludos,<br>
> francis<br>
><br>
><br>
><br>
> Quizá en la lista de numpy te puedan dar más
opciones.<br>
><br>
> De mi experiencia con Brython y su transpilador
(Python a JS) te puedo<br>
> decir que la tarea es un infierno lleno de
excepciones en las reglas y<br>
> corner cases que hacen que sea fácil tener bugs.<br>
><br>
> Saludos.<br>
><br>
><br>
</div>
</div>
<div>
<div>>
_______________________________________________<br>
> Python-es mailing list<br>
> <a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
> <a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
> FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
><br>
<br>
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
Python-es mailing list
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a>
</pre>
</blockquote>
<br>
</div>
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" rel="noreferrer" target="_blank">http://python-es-faq.wikidot.com/</a><br>
</blockquote></div><div dir="ltr">-- <br></div><p dir="ltr">Juan BC (from phone)</p>