Example #1
0
 def process_subitem(self, item):
     r = False
     if self.endlabel:
         label = item.label
         if label == self.endlabel:
             r = True
             if isinstance(self.parent, Do) and label==self.parent.endlabel:
                 # the same item label may be used for different block ends
                 self.put_item(item)
     return BeginStatement.process_subitem(self, item) or r
Example #2
0
 def process_subitem(self, item):
     r = False
     if self.endlabel:
         label = item.label
         if label == self.endlabel:
             r = True
             if isinstance(self.parent, Do) and label==self.parent.endlabel:
                 # the same item label may be used for different block ends
                 self.put_item(item)
     return BeginStatement.process_subitem(self, item) or r
Example #3
0
 def process_subitem(self, item):
     # MAIN block does not define start/end line conditions,
     # so it should never end until all lines are read.
     # However, sometimes F77 programs lack the PROGRAM statement,
     # and here we fix that:
     if self.reader.isfix77:
         line = item.get_line()
         if line=='end':
             message = item.reader.format_message(\
                     'WARNING',
                     'assuming the end of undefined PROGRAM statement',
                     item.span[0],item.span[1])
             print >> sys.stderr, message
             p = Program(self)
             p.content.extend(self.content)
             p.content.append(EndProgram(p,item))
             self.content[:] = [p]
             return
     return BeginStatement.process_subitem(self, item)