# File lib/main/usage.rb, line 25
    def self.default_synopsis main
    # build up synopsis
      s = "#{ main.name }"

    # mode info
      if main.mode_name != 'main'
        s << " #{ main.fully_qualified_mode.join ' ' }"
      end

#p 'main.breadth_first_modes' => main.breadth_first_modes.map{|m| m.name}
#p 'main.depth_first_modes' => main.depth_first_modes.map{|m| m.name}
#p 'main.modes' => main.modes.map{|m| m.name}

      unless main.breadth_first_modes.empty?
        modes = main.breadth_first_modes.map{|mode| mode.name}.join('|')
        s << " (#{ modes })"
      end

    # argument info
      main.parameters.each do |p|
        if p.type == :argument
          if(p.required? and p.arity != -1)
            if p.arity > 0
              p.arity.times{ s << " #{ p.name }" }
            else
              (p.arity.abs - 1).times{ s << " #{ p.name }" }
              s << " #{ p.name }*"
            end
          else
            #s << " [#{ p.name }]"
            if p.arity > 0
              a = []
              p.arity.times{ a << "#{ p.name }" }
              s << " [#{ a.join ' ' }]"
            else
              a = []
              (p.arity.abs - 1).times{ a << "#{ p.name }" }
              a << "#{ p.name }*"
              s << " [#{ a.join ' ' }]"
            end
          end
        end
      end

    # keyword info
      main.parameters.each do |p|
        if p.type == :keyword
          if p.required?
            s << " #{ p.name }=#{ p.name }"
          else
            s << " [#{ p.name }=#{ p.name }]"
          end
        end
      end

    # option info
      n = 0
      main.parameters.each do |p|
        if p.type == :option
          if p.required?
            case p.argument
              when :required
                s << " --#{ p.name }=#{ p.name }"
              when :optional
                s << " --#{ p.name }=[#{ p.name }]"
              else
                s << " --#{ p.name }"
            end
          else
            n += 1
          end
        end
      end
      if n > 0
        s << " [options]+"
      end

    # help info
??

      s
    end