El día 11 de octubre de 2009 20:09, Sebastian A. Espindola
<[email protected]> escribió:
> 2009/10/11 Rafael Bidegain <[email protected]>:
>> Hola a todos
>>
>> Hace un tiempo empecé un proyecto y hay una parte que requiere la
>> ejecución paso a paso de sentencias ruby.
>> Estoy cargando las sentencias ruby en un array y pretendo ejecutarlas
>> llamando a eval.
>>
>> Si a eval le paso el array completo consigo ejecutar todas las
>> sentencias, pero yo necesito pasarlas una a una.
>> postie un programa que estoy usando para probar en 
>> http://pastebin.com/m22bd1309
>>
>> si en ese programa ejecuto:
>> e.run
>> funciona correctamente (bah, obtengo los resultados que espero)
>>
>> pero si yo ejecuto:
>>
>> e.ejecutar_paso(0)
>> esa linea funciona, tiene nada mas que una asignación
>>
>> e.ejecutar_paso(1)
>> esta linea ya no funciona, tiene un while.
>>
>>
>> Me gustaría que me orienten para poder avanzar un poco.
>>
>
> Rafa,
>  El eval falla porque solo puede evaluar bloques de codigo completos,
> o sea, no
>  encuentra el end.
>
>  Acabo de submitear una correccion a tu pastebin donde meto el bloque
> while entero
>  en un string e inserto el string en el array.
>  Lo acabo de probar y funciona joya. Tenes que hacer lo mismo con los
> demas pasos.
eeehhh! bueno me has dado una idea interesante.

Como yo tengo que detectar los bloques (while end/ if else end/if end)
podría hacer un array con cada bloque.

no puedo aplicar literalmente tu solucion porque no puedo ejecutar
cada una de las sentencias, pero igual me sirvio tu post.

>
> Saludos.
> Sebastian A. Espindola.
>
> PD: Tu pseudocodigo es HORRIBLE! :P
es por la influencia del pisco Chileno, un par de tragos y me pega mal :P

-- 
Rafael Bidegain

Ya que los cuerdos no hablan, hablará el loco.
(The Fool, Padraic Pearse)

# divertite programando
# http://rubytutorial.wikidot.com/introduccion
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a