def do_classes

      # look for class renames like
      #   %rename(Solvable) _Solvable;
      #   typedef struct _Solvable {} XSolvable; /* expose XSolvable as 'Solvable' */

      extends = Hash.new
      @body.scan(/^%rename\s*\(([^\"\)]+)\)\s+([_\w]+);/) do |class_name, struct_name|
#	puts "rename #{class_name} -> #{struct_name}"
	extend_name = struct_name.to_s
	@body.scan(/typedef\s+struct\s+#{struct_name}\s*\{[^}]*\}\s*(\w+);/) do |ename|
	  extend_name = ename.to_s
	end
	
#	puts "extend #{extend_name}, class #{class_name}, struct #{struct_name}"
	# find the corresponding '%extend' directive
	@body.scan(/^%extend\s+(#{extend_name}|#{struct_name})\s*\{(.*)\}/mx) do |name,content|
	  # now check if we have multiple %extend, the regexp above is greedy and will match all of them
	  while content.to_s =~ /^%extend/
	    content = $` # discard %extend and everything behind
	  end
	  extends[name] = true
	  cn = class_name.to_s
	  cn.capitalize! unless cn[0,1] =~ /[A-Z_]/
	  swig_class = handle_class_module("class", cn, :parent => "rb_cObject", :content => content.to_s, :extend_name => name)
	end
      end
      @body.scan(/^%extend\s*(\w+)\s*\{(.*)\}/mx) do |class_name,content|
	cn = class_name.to_s
	unless extends[cn]
#	  puts "Class #{cn}"
	  cn.capitalize! unless cn[0,1] =~ /[A-Z_]/
	  swig_class = handle_class_module("class", cn, :parent => "rb_cObject", :content => content)
	  extends[cn] = true
	end
      end
    end
def do_classes

      # look for class renames like
      #   %rename(Solvable) _Solvable;
      #   typedef struct _Solvable {} XSolvable; /* expose XSolvable as 'Solvable' */

      extends = Hash.new
      @body.scan(/^%rename\s*\(([^\"\)]+)\)\s+([_\w]+);/) do |class_name, struct_name|
#	puts "rename #{class_name} -> #{struct_name}"
	extend_name = struct_name.to_s
	@body.scan(/typedef\s+struct\s+#{struct_name}\s*\{[^}]*\}\s*(\w+);/) do |ename|
	  extend_name = ename.to_s
	end
	
#	puts "extend #{extend_name}, class #{class_name}, struct #{struct_name}"
	# find the corresponding '%extend' directive
	@body.scan(/^%extend\s+(#{extend_name}|#{struct_name})\s*\{(.*)\}/mx) do |name,content|
	  # now check if we have multiple %extend, the regexp above is greedy and will match all of them
	  while content.to_s =~ /^%extend/
	    content = $` # discard %extend and everything behind
	  end
	  extends[name] = true
	  cn = class_name.to_s
	  cn.capitalize! unless cn[0,1] =~ /[A-Z_]/
	  swig_class = handle_class_module("class", cn, :parent => "rb_cObject", :content => content.to_s, :extend_name => name)
	end
      end
      @body.scan(/^%extend\s*(\w+)\s*\{(.*)\}/mx) do |class_name,content|
	cn = class_name.to_s
	unless extends[cn]
#	  puts "Class #{cn}"
	  cn.capitalize! unless cn[0,1] =~ /[A-Z_]/
	  swig_class = handle_class_module("class", cn, :parent => "rb_cObject", :content => content)
	  extends[cn] = true
	end
      end
    end
Find and handle classes within +module_name+

 return Array of classes