# File lib/aws/option_grammar.rb, line 465
      def parse_option(option)
        value_desc = nil
        if option.kind_of? Hash
          raise ArgumentError.new("passed empty hash where an option was expected") if
            option.empty?

          raise ArgumentError.new("too many entries in option description") if
            option.size > 1

          (name, value_desc) = option.to_a.first
          name = name.to_s

          raise ArgumentError.new("expected an array for "+
                                  "value description of option #{name},"+
                                  "got #{value_desc.inspect}") unless
            value_desc.nil? or value_desc.kind_of?(Array)
        else
          name = option
        end

        value_desc ||= []

        [name, value_desc]
      end