Llamar a una función desde un string

Iniciado por prometheus48, 23 Mayo 2012, 20:43 PM

0 Miembros y 1 Visitante están viendo este tema.

prometheus48

Hola,

Me gustaría saber cómo puedo ejecutar una función de forma que si el usuario hace:
print("Hola")
No tenga que decir: if(entrada=="print(..."), sino que la ejecute directamente. Por ejemplo:

------------------
Programa:
>>>print("Hola")
------------------

Entonces la función print se ejecuta con el parámetro "Hola" .

Salu2!

"Si tú tienes una manzana, y yo otra, y las intercambiamos, tu sigues teniendo una manzana, y yo sigo teniendo una manzana.
Pero, si tu tienes una idea, y yo otra, y nos las intercambiamos, tu tienes dos ideas, y yo tengo dos ideas"
The knowledge is free

durasno

Hola! y como sabes si lo que se ingresa es lo correcto o no? si o si tenes q verificar la entrada
Ahorrate una pregunta, lee el man

icoheed

De una u otra manera tienes que hacer un parser e inmediatamente después tienes que verificar la entrada para validar que sea un "comando" valido.

RyogiShiki

Quieres saber como funciona por ejemplo un lenguaje como Ruby. Te recomiendo la siguiente charla de Matt Aimonetti quien hace parte del grupo principal de desarrolladores de Ruby:
Si quieres puedes ir directo al minuto 4, donde empieza lo bueno.

Creo que la parte que más te interesa es la primera:
- Lexer / Tokenizer / Parser

Iba a poner esto en el hilo que te bloquearon, pero igual está relacionado con lo que quieres hacer aquí.

Saludos


prometheus48

Gracias me sirvió mucho :D.

Ahora necesito saber como usar Lex y YACC/Bison.
Lo malo es que no hay casi nada de documentación.
Y no entiendo muy bien como usarlo.

Salu2!
"Si tú tienes una manzana, y yo otra, y las intercambiamos, tu sigues teniendo una manzana, y yo sigo teniendo una manzana.
Pero, si tu tienes una idea, y yo otra, y nos las intercambiamos, tu tienes dos ideas, y yo tengo dos ideas"
The knowledge is free