parameters: (self, i=0, last=None)
docstring: Main copy method: process lines [i,last) of block
docstring_summary: Main copy method: process lines [i,last) of block
docstring_tokens: Main copy method : process lines [ i last ) of block
function: def copyblock(self, i=0, last=None):
          "Main copy method: process lines [i,last) of block"
          def repl(match, self=self):
              "return the eval of a found expression, for replacement"
              # uncomment for debug:
  	    # print '!!! replacing',match.group(1)
              expr = self.preproc(match.group(1), 'eval')
              try: return str(eval(expr, self.globals, self.locals))
              except: return str(self.handle(expr))
          block = self.locals['_bl']
          if last is None: last = len(block)
          while i<last:
              line = block[i]
              match = self.restat.match(line)
              if match:   # a statement starts "here" (at line block[i])
                  # i is the last line to _not_ process
                  stat = match.string[match.end(0):].strip()
                  j=i+1   # look for 'finish' from here onwards
                  nest=1  # count nesting levels of statements
                  while j<last:
                      line = block[j]
                      # first look for nested statements or 'finish' lines
                      if self.restend.match(line):    # found a statement-end
                          nest = nest - 1     # update (decrease) nesting
                          if nest==0: break   # j is first line to _not_ process
                      elif self.restat.match(line):   # found a nested statement
                          nest = nest + 1     # update (increase) nesting
                      elif nest==1:   # look for continuation only at this nesting
                          match = self.recont.match(line)
                          if match:                   # found a contin.-statement
                              nestat = match.string[match.end(0):].strip()
                              stat = '%s _cb(%s,%s)\n%s' % (stat,i+1,j,nestat)
                              i=j     # again, i is the last line to _not_ process
                      j=j+1
                  stat = self.preproc(stat, 'exec')
                  stat = '%s _cb(%s,%s)' % (stat,i+1,j)
                  # for debugging, uncomment...:
  		# print "-> Executing: {"+stat+"}"
                  exec ( stat, self.globals, self.locals )
                  i=j+1
              else:       # normal line, just copy with substitution
                  self.ouf.write(self.regex.sub(repl,line))
                  i=i+1
function_tokens: def copyblock ( self , i = 0 , last = None ) : def repl ( match , self = self ) : "return the eval of a found expression, for replacement" # uncomment for debug: # print '!!! replacing',match.group(1) expr = self . preproc ( match . group ( 1 ) , 'eval' ) try : return str ( eval ( expr , self . globals , self . locals ) ) except : return str ( self . handle ( expr ) ) block = self . locals [ '_bl' ] if last is None : last = len ( block ) while i < last : line = block [ i ] match = self . restat . match ( line ) if match : # a statement starts "here" (at line block[i]) # i is the last line to _not_ process stat = match . string [ match . end ( 0 ) : ] . strip ( ) j = i + 1 # look for 'finish' from here onwards nest = 1 # count nesting levels of statements while j < last : line = block [ j ] # first look for nested statements or 'finish' lines if self . restend . match ( line ) : # found a statement-end nest = nest - 1 # update (decrease) nesting if nest == 0 : break # j is first line to _not_ process elif self . restat . match ( line ) : # found a nested statement nest = nest + 1 # update (increase) nesting elif nest == 1 : # look for continuation only at this nesting match = self . recont . match ( line ) if match : # found a contin.-statement nestat = match . string [ match . end ( 0 ) : ] . strip ( ) stat = '%s _cb(%s,%s)\n%s' % ( stat , i + 1 , j , nestat ) i = j # again, i is the last line to _not_ process j = j + 1 stat = self . preproc ( stat , 'exec' ) stat = '%s _cb(%s,%s)' % ( stat , i + 1 , j ) # for debugging, uncomment...: # print "-> Executing: {"+stat+"}" exec ( stat , self . globals , self . locals ) i = j + 1 else : # normal line, just copy with substitution self . ouf . write ( self . regex . sub ( repl , line ) ) i = i + 1