Beispiel #1
0
 def visitControlLine(self, node):
     if node.isend:
         self.printer.writeline(None)
         if node.has_loop_context:
             self.printer.writeline('finally:')
             self.printer.writeline("loop = __M_loop._exit()")
             self.printer.writeline(None)
     else:
         self.printer.start_source(node.lineno)
         if self.compiler.enable_loop and node.keyword == 'for':
             text = mangle_mako_loop(node, self.printer)
         else:
             text = node.text
         self.printer.writeline(text)
         children = node.get_children()
         # this covers the three situations where we want to insert a pass:
         #    1) a ternary control line with no children,
         #    2) a primary control line with nothing but its own ternary
         #          and end control lines, and
         #    3) any control line with no content other than comments
         if not children or (compat.all(
                 isinstance(c, (parsetree.Comment, parsetree.ControlLine))
                 for c in children) and compat.all(
                     (node.is_ternary(c.keyword) or c.isend)
                     for c in children
                     if isinstance(c, parsetree.ControlLine))):
             self.printer.writeline("pass")
Beispiel #2
0
 def visitControlLine(self, node):
     if node.isend:
         self.printer.writeline(None)
         if node.has_loop_context:
             self.printer.writeline('finally:')
             self.printer.writeline("loop = __M_loop._exit()")
             self.printer.writeline(None)
     else:
         self.printer.start_source(node.lineno)
         if self.compiler.enable_loop and node.keyword == 'for':
             text = mangle_mako_loop(node, self.printer)
         else:
             text = node.text
         self.printer.writeline(text)
         children = node.get_children()
         # this covers the three situations where we want to insert a pass:
         #    1) a ternary control line with no children,
         #    2) a primary control line with nothing but its own ternary
         #          and end control lines, and
         #    3) any control line with no content other than comments
         if not children or (
                 compat.all(isinstance(c, (parsetree.Comment,
                                           parsetree.ControlLine))
                            for c in children) and
                 compat.all((node.is_ternary(c.keyword) or c.isend)
                            for c in children
                            if isinstance(c, parsetree.ControlLine))):
             self.printer.writeline("pass")