   else if language is 'coffeescript'
     # for i in [0...10]
     s = s.replace cStyleForLoopRegex, 'for $1 [$2...$3]'
+
+  # for(y=110; y >= 38; i -= 18) {
+  # This is brittle and will not get inclusive vs. exclusive ranges right, but better than nothing
+  cStyleForLoopWithArithmeticRegex = /for ?\((?:var )?(.+?) ?= ?(\d+); ?\1 ?(<=|<|>=|>) ?(.+?); ?\1 ?\+?(-?)= ?(.*)\) *\{?/g
+  if language is 'lua'
+    # for y=110, 38, -18 do
+    s = s.replace cStyleForLoopWithArithmeticRegex, 'for $1=$2, $4, $5$6 do'
+  else if language is 'python'
+    # for y in range(110, 38, -18):
+    s = s.replace cStyleForLoopWithArithmeticRegex, 'for $1 in range($2, $4, $5$6):'
+  else if language is 'coffeescript'
+    # for y in [110...38, -18]
+    s = s.replace cStyleForLoopWithArithmeticRegex, 'for $1 [$2...$4, $5$6]'
 
   # There are a lot of other for-loop possibilities, but we'll handle those with manual solutions
 


  # Rewrite while loops
  if language is 'lua'
    s = s.replace /^(\s*while) ?\((.*?)\) ?\{?/gm, '$1 $2 do'
  else if language is 'python'
    s = s.replace /^(\s*while) ?\((.*?)\) ?\{?/gm, '$1 $2:'
  else if language is 'coffeescript'
    s = s.replace /^(\s*while) ?\((.*?)\) ?\{?/gm, '$1 $2'

  # Rewrite if conditions
  if language is 'lua'

  s = jsCode.split('\n').map((line) -> ' ' + line).join('\n')  # Add whitespace at beginning of each line to make regexes easier

  if language is 'lua'
    s = s.replace /function (.+?)\((.*)\) ?{/g, 'function $1($2)'  # Just remove the trailing {
  else if language is 'python'
    s = s.replace /function (.+?)\((.*)\) ?{/g, 'def $1($2):'  # Convert trailing { to :
  else if language is 'coffeescript'
    s = s.replace /function (.+?)\((.*)\) ?{/g, (match, functionName, functionParams) ->
      if functionParams
        "#{functionName} = (#{functionParams}) ->"
      else
