def find_method_add_from_raw(ripped_code, array = [])
      return false unless ripped_code.is_a?(Array)

      case ripped_code.first
      when :method_add_arg
        array << MethodAdd.new(ripped_code)
        ripped_code.shift
      when :command_call
        array << CommandCall.new(ripped_code)
        ripped_code.shift
      when :binary
        array << BinaryCall.new(ripped_code)
        ripped_code.shift
      end
      ripped_code.each do |code|
        find_method_add_from_raw(code, array) unless ripped_code.empty?
      end
    end
def find_method_add_from_raw(ripped_code, array = [])
      return false unless ripped_code.is_a?(Array)

      case ripped_code.first
      when :method_add_arg
        array << MethodAdd.new(ripped_code)
        ripped_code.shift
      when :command_call
        array << CommandCall.new(ripped_code)
        ripped_code.shift
      when :binary
        array << BinaryCall.new(ripped_code)
        ripped_code.shift
      end
      ripped_code.each do |code|
        find_method_add_from_raw(code, array) unless ripped_code.empty?
      end
    end
Parses raw input recursively looking for :method_add_arg blocks