[pyar] desarrollar lenguage de programacion...es muy (pero muy) dificil?

Mariano Guerra luismarianoguerra en gmail.com
Dom Ago 29 18:42:17 ART 2010


2010/8/29  <gherzig en fmed.uba.ar>:
> Grosso muchachos, ya me orientaron. No parece algo tan terrible de hacer,
> voy a empezar leyendo la nota de Juanjo y vere si va surgiendo algo.

lo que podes hacer si en lugar de "interpretar el lenguaje en python"
queres generar bytecode para la maquina virtual de python podes usar
el modulo ast para generar una representacion en forma de arbol que
representa un programa, a eso despues lo podes compilar o ejecutar.

aca tenes un ejemplo simple:

In [14]: expr = ast.parse("val = []")

In [15]: ast.dump(expr)
Out[15]: "Module(body=[Assign(targets=[Name(id='val', ctx=Store())],
value=List(elts=[], ctx=Load()))])"

In [16]: expr.body
Out[16]: [<_ast.Assign object at 0xa65406c>]

In [18]: expr.body[0]
Out[18]: <_ast.Assign object at 0xa65406c>

In [20]: expr.body[0].targets
Out[20]: [<_ast.Name object at 0xa65404c>]

In [22]: expr.body[0].targets[0].id
Out[22]: 'val'

mas documentacion aca:

http://docs.python.org/library/ast.html
http://docs.python.org/library/compiler.html

para ejemplos de uso podes ver los tests del modulo

http://www.google.com/codesearch/p?hl=en#OAMlx_jo-ck/tools/third_party/python_26/Lib/test/test_ast.py&q=lang:python%20ast.Call&sa=N&cd=2&ct=rc

saludos



More information about the pyar mailing list