class_docstr: Turns multiple compare into a function with proper temporaries.
  
  >>> import gast as ast
  >>> from pythran import passmanager, backend
  >>> node = ast.parse("def foo(a): return 0 < a + 1 < 3")
  >>> pm = passmanager.PassManager("test")
  >>> _, node = pm.apply(NormalizeCompare, node)
  >>> print(pm.dump(backend.Python, node))
  def foo(a):
      return foo_compare0(a)
  def foo_compare0(a):
      $1 = (a + 1)
      if (0 < $1):
          pass
      else:
          return False
      if ($1 < 3):
          pass
      else:
          return False
      return True
class_docstr_tok: ["Turns","multiple","compare","into","a","function","with","proper","temporaries",".",">",">",">","import","gast","as","ast",">",">",">","from","pythran","import","passmanager",",","backend",">",">",">","node","=","ast.parse","(","``","def","foo","(","a",")",":","return","0","<","a","+","1","<","3","''",")",">",">",">","pm","=","passmanager.PassManager","(","``","test","''",")",">",">",">","_",",","node","=","pm.apply","(","NormalizeCompare",",","node",")",">",">",">","print","(","pm.dump","(","backend.Python",",","node",")",")","def","foo","(","a",")",":","return","foo_compare0","(","a",")","def","foo_compare0","(","a",")",":","$","1","=","(","a","+","1",")","if","(","0","<","$","1",")",":","pass","else",":","return","False","if","(","$","1","<","3",")",":","pass","else",":","return","False","return","True"]
code: def visit_FunctionDef(self, node):
      self.prefix = node.name
      self.generic_visit(node)
      return node
  
file_path: pythran/pythran/transformations/normalize_compare.py
imports: from pythran.analyses import ImportedIds
  from pythran.passmanager import Transformation
  import pythran.metadata
  import gast
label_desc: Use image node_id 2 for calling the NormalizeCompare obj's underlying member method code with example usage: obj.visit_FunctionDef(node) and returns: node