class RDoc::Parser

def self.check_modeline file_name

def self.check_modeline file_name
  line = File.open file_name do |io|
    io.gets
  end
  /-\*-\s*(.*?\S)\s*-\*-/ =~ line
  return nil unless type = $1
  if /;/ =~ type then
    return nil unless /(?:\s|\A)mode:\s*([^\s;]+)/i =~ type
    type = $1
  end
  return nil if /coding:/i =~ type
  type.downcase
rescue ArgumentError
rescue Encoding::InvalidByteSequenceError # invalid byte sequence
end