code: def cxx_loop(visit):
      
      def loop_visitor(self, node):
          """
          New decorate function.
  
          It push the breaking flag, run the visitor and add "else" statements.
          """
          if not node.orelse:
              with pushpop(self.break_handlers, None):
                  res = visit(self, node)
              return res
  
          break_handler = "__no_breaking{0}".format(id(node))
          with pushpop(self.break_handlers, break_handler):
              res = visit(self, node)
  
          # handle the body of the for loop
          orelse = [self.visit(stmt) for stmt in node.orelse]
          orelse_label = Label(break_handler)
          return Block([res] + orelse + [orelse_label])
      return loop_visitor
docs: Decorator for loop node (For and While) to handle "else" branching.
  
      Decorated node will save flags for a goto statement used instead of usual
      break and add this flag at the end of the else statements.
  
      Examples
      --------
      >> for i in xrange(12):
      >>     if i == 5:
      >>         break
      >> else:
      >>     ... some code ...
  
      Becomes
  
      >> for(type i : xrange(12))
      >>     if(i==5)
      >>         goto __no_breaking0;
      >> ... some code ...
      >> __no_breaking0;