# File lib/aws/core/option_grammar.rb, line 629
        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