У меня установлена следующая программа на Ruby.
puts "hai"
def mult(a,b)
a * b
end
puts "hello"
def getCostAndMpg
cost = 30000 # some fancy db calls go here
mpg = 30
return cost,mpg
end
AltimaCost, AltimaMpg = getCostAndMpg
puts "AltimaCost = #{AltimaCost}, AltimaMpg = {AltimaMpg}"
Я написал скрипт на Perl, который будет извлекать только функции из файла Ruby следующим образом
while (<DATA>){
print if ( /def/ .. /end/ );
}
Здесь <DATA>
читает из файла ruby.
Таким образом, программа Perl производит следующий вывод:
def mult(a,b)
a * b
end
def getCostAndMpg
cost = 30000 # some fancy db calls go here
mpg = 30
return cost,mpg
end
Но, если функция имеет блок операторов, скажем, например, она имеетесли блок проверки состояния означает, что он не работает.Это занимает только до «конца» блока «если».И это не доходит до «конца» функции.Пожалуйста, предоставьте мне решения.
Пример:
def function
if x > 2
puts "x is greater than 2"
elsif x <= 2 and x!=0
puts "x is 1"
else
puts "I can't guess the number"
end #----- My code parsing only up to this
end
Заранее спасибо!