def _get_logical(source_lines, result, logical_start, logical_end):
 row = (result[u'line'] - 1)
 col = (result[u'column'] - 1)
 ls = None
 le = None
 for i in range(0, len(logical_start), 1):
  assert logical_end
  x = logical_end[i]
  if ((x[0] > row) or ((x[0] == row) and (x[1] > col))):
   le = x
   ls = logical_start[i]
   break
 if (ls is None):
  return None
 original = source_lines[ls[0]:(le[0] + 1)]
 return (ls, le, original)

def _get_logical ( source_lines , result , logical_start , logical_end ) : row = ( result [ u'line' ] - 1 ) col = ( result [ u'column' ] - 1 ) ls = None le = None for i in range ( 0 , len ( logical_start ) , 1 ) : assert logical_end x = logical_end [ i ] if ( ( x [ 0 ] > row ) or ( ( x [ 0 ] == row ) and ( x [ 1 ] > col ) ) ) : le = x ls = logical_start [ i ] break if ( ls is None ) : return None original = source_lines [ ls [ 0 ] : ( le [ 0 ] + 1 ) ] return ( ls , le , original )
return the logical line corresponding to the result .