old_contents: """
  A list of the languages that Pycco supports, mapping the file extension to
  the name of the Pygments lexer and the symbol that indicates a comment. To
  add another language to Pycco's repertoire, add it here.
  """
  
  __all__ = ("supported_languages",)
  
  HASH = "#"
  SLASH_STAR = "/*"
  STAR_SLASH = "*/"
  SLASH_SLASH = "//"
  DASH_DASH = "--"
  TRIPLE_QUOTE = '"""'
  
  def lang(name, comment_symbol, multistart=None, multiend=None):
      """
      Generate a language entry dictionary, given a name and comment symbol and
      optional start/end strings for multiline comments.
      """
      result = {
          "name": name,
          "comment_symbol": comment_symbol
      }
      if multistart is not None and multiend is not None:
          result.update(multistart=multistart, multiend=multiend)
      return result
  
  
  c_lang = lang("c", SLASH_SLASH, SLASH_STAR, STAR_SLASH)
  
  supported_languages = {
      ".coffee": lang("coffee-script", HASH, "###", "###"),
  
      ".pl": lang("perl", HASH),
  
      ".sql": lang("sql", DASH_DASH, SLASH_STAR, STAR_SLASH),
  
      ".sh": lang("bash", HASH),
  
      ".c": c_lang,
  
      ".h": c_lang,
  
      ".cl": c_lang,
  
      ".cpp": lang("cpp", SLASH_SLASH),
  
      ".js": lang("javascript", SLASH_SLASH, SLASH_STAR, STAR_SLASH),
  
      ".rb": lang("ruby", HASH, "=begin", "=end"),
  
      ".py": lang("python", HASH, TRIPLE_QUOTE, TRIPLE_QUOTE),
  
      ".pyx": lang("cython", HASH, TRIPLE_QUOTE, TRIPLE_QUOTE),
  
      ".scm": lang("scheme", ";;", "#|", "|#"),
  
      ".lua": lang("lua", DASH_DASH, "--[[", "--]]"),
  
      ".erl": lang("erlang", "%%"),
  
      ".tcl": lang("tcl", HASH),
  
      ".hs": lang("haskell", DASH_DASH, "{-", "-}"),
  }
  
new_contents: """
  A list of the languages that Pycco supports, mapping the file extension to
  the name of the Pygments lexer and the symbol that indicates a comment. To
  add another language to Pycco's repertoire, add it here.
  """
  
  __all__ = ("supported_languages",)
  
  HASH = "#"
  SLASH_STAR = "/*"
  STAR_SLASH = "*/"
  SLASH_SLASH = "//"
  DASH_DASH = "--"
  TRIPLE_QUOTE = '"""'
  
  def lang(name, comment_symbol, multistart=None, multiend=None):
      """
      Generate a language entry dictionary, given a name and comment symbol and
      optional start/end strings for multiline comments.
      """
      result = {
          "name": name,
          "comment_symbol": comment_symbol
      }
      if multistart is not None and multiend is not None:
          result.update(multistart=multistart, multiend=multiend)
      return result
  
  
  c_lang = lang("c", SLASH_SLASH, SLASH_STAR, STAR_SLASH)
  
  supported_languages = {
      ".coffee": lang("coffee-script", HASH, "###", "###"),
  
      ".pl": lang("perl", HASH),
  
      ".sql": lang("sql", DASH_DASH, SLASH_STAR, STAR_SLASH),
  
      ".sh": lang("bash", HASH),
  
      ".c": c_lang,
  
      ".h": c_lang,
  
      ".cl": c_lang,
  
      ".cpp": lang("cpp", SLASH_SLASH),
  
      ".js": lang("javascript", SLASH_SLASH, SLASH_STAR, STAR_SLASH),
  
      ".rb": lang("ruby", HASH, "=begin", "=end"),
  
      ".py": lang("python", HASH, TRIPLE_QUOTE, TRIPLE_QUOTE),
  
      ".pyx": lang("cython", HASH, TRIPLE_QUOTE, TRIPLE_QUOTE),
  
      ".scm": lang("scheme", ";;", "#|", "|#"),
  
      ".lua": lang("lua", DASH_DASH, "--[[", "--]]"),
  
      ".erl": lang("erlang", "%%"),
  
      ".tcl": lang("tcl", HASH),
  
      ".hs": lang("haskell", DASH_DASH, "{-", "-}"),
  
      ".r": lang("r", HASH),
  
      ".jl": lang("julia", HASH, "#=", "=#"),
  
      ".m": lang("matlab", "%", "%{", "%}"),
  
      ".do": lang("stata", SLASH_SLASH, SLASH_STAR, STAR_SLASH)
  
  }
  
subject: Add R, Julia, Matlab, and Stata to supported languages