# File lib/main/program/class_methods.rb, line 97
      def dynamically_extend_via_commandline_modes!
        size = modes.size
        depth_first_modes = Array.fields

        loop do
          modes.each do |mode|
            arg = argv.first && %r/^#{ argv.first }/
            if arg and mode.name =~ arg
              argv.shift
              modes.clear
              evaluate(&mode)
              depth_first_modes[mode.name] = mode
              break
            end
          end

          arg = argv.first && %r/^#{ argv.first }/
          more_modes = (
            !modes.empty? and modes.any?{|mode| arg && mode.name =~ arg}
          )

          break unless more_modes
        end

        self.modes = depth_first_modes
      end