def self.export(root_pattern, wrapper_name, output_file_name=nil, extractor_result_file_name=nil)
sexp = [:block]
sexp << export_header(wrapper_name)
sexp << export_extractor(root_pattern, wrapper_name)
sexp << export_footer(wrapper_name, extractor_result_file_name)
result = RubyToRuby.new.process(sexp)
result.gsub! '"' + root_pattern.source_file + '"', '__FILE__'
output_file_name ||= "#{wrapper_name}_extractor_export.rb"
output_file = open(output_file_name, 'w')
output_file.write(result)
output_file.close
result
end