# File lib/rexical/rexcmd.rb, line 64
  def initialize
    @status  =  2
    @cmd  =  File.basename($0, ".rb")
    tmp  =  OPTIONS.collect do |line|
        next if /\A\s*\z/ === line
        disp, sopt, lopt, takearg, doc  =  line.strip.split(/\s+/, 5)
        a  =  []
        a.push lopt    unless lopt == '-'
        a.push sopt    unless sopt == '-'
        a.push takearg == '-' ?
               GetoptLong::NO_ARGUMENT : GetoptLong::REQUIRED_ARGUMENT
        a
    end
    getopt  =  GetoptLong.new(*tmp.compact)
    getopt.quiet  =  true

    @opt  =  {}
    begin
      getopt.each do |name, arg|
        raise GetoptLong::InvalidOption,
            "#{@cmd}: #{name} given twice" if @opt.key? name
        @opt[name]  =  arg.empty? ? true : arg
      end
    rescue GetoptLong::AmbigousOption, GetoptLong::InvalidOption,
           GetoptLong::MissingArgument, GetoptLong::NeedlessArgument
      usage $!.message
    end

    usage    if @opt['--help']

    if @opt['--version']
      puts "#{@cmd} version #{Rexical::Version}"
      exit 0
    end
    if @opt['--copyright']
      puts "#{@cmd} version #{Rexical::Version}"
      puts "#{Rexical::Copyright} <#{Rexical::Mailto}>"
      exit 0
    end
  end