Bonjour à tous,
dsl de faire un double post à la fois sur le groupe rails et sur ruby,
mais il semble plus avoir grand monde chez ruby.fr
j'essaye de faire une méthode pour convertir une expression infix et
prefix
ca passe pas
Ou est mon problème ?
merci
def parse_simple(expr, opers=%w(+ - * /))
return expr if opers.empty?
return parse_simple(expr, opers[1..-1]) unless expr.include?
(opers.first)
"(#{opers.first} " +
expr.split(opers.first).map {|e|
p e
parse_simple(e, opers[1..-1]).strip
}.join(" ") +
")"
end
def parse(expr, exprs = [])
while expr.gsub!(/\(([^\(\)]+)\)/) {"expr:#{(exprs <<
parse_simple($1)).size - 1}"}; end
expr = parse_simple(expr)
while expr.gsub!(/expr:(\d+)/) {exprs[$1.to_i]}; end
expr
end
Test
p "2 * 5 + 1
ca me retourne (+ (* 2 5) 1)
alors que ca devrait être (+ 1 (* 2 5))
5))"
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---