def visit_ForLoop(self, stmt):
    s = self.visit_merge_left(stmt.merge, fresh_vars = True)
    start = self.visit_expr(stmt.start)
    stop = self.visit_expr(stmt.stop)
    step = self.visit_expr(stmt.step)
    var = self.visit_expr(stmt.var)
    t = self.to_ctype(stmt.var.type)
    body =  self.visit_block(stmt.body)
    body += self.visit_merge_right(stmt.merge)
    body = self.indent("\n" + body) 
    s += "\n %(t)s %(var)s;"
    up_loop = \
        "\nfor (%(var)s = %(start)s; %(var)s < %(stop)s; %(var)s += %(step)s) {%(body)s}"
    down_loop = \
        "\nfor (%(var)s = %(start)s; %(var)s > %(stop)s; %(var)s += %(step)s) {%(body)s}"
      
    if stmt.step.__class__ is Const:
      if stmt.step.value >= 0:
        s += up_loop
      else:
        s += down_loop
    else:
      s += "if(%(step)s >= 0) {\n"
      s += up_loop
      s += "\n} else {\n"
      s += down_loop
      s += "\n}"
    return locals() % s
dataset/ETHPy150Open iskandr/parakeet/parakeet/c_backend/fn_compiler.py/FnCompiler.visit_ForLoop/swapped operands of `%`