<s> import re <EOL> try : <EOL> import utils <EOL> except : <EOL> from . import utils <EOL> def expand_to_line ( string , startIndex , endIndex ) : <EOL> linebreakRe = re . compile ( r'<STR_LIT:\n>' ) <EOL> spacesAndTabsRe = re . compile ( r'<STR_LIT>' ) <EOL> searchIndex = startIndex - <NUM_LIT:1> ; <EOL> while True : <EOL> if searchIndex < <NUM_LIT:0> : <EOL> newStartIndex = searchIndex + <NUM_LIT:1> <EOL> break <EOL> char = string [ searchIndex : searchIndex + <NUM_LIT:1> ] <EOL> if linebreakRe . match ( char ) : <EOL> newStartIndex = searchIndex + <NUM_LIT:1> <EOL> break <EOL> else : <EOL> searchIndex -= <NUM_LIT:1> <EOL> searchIndex = endIndex ; <EOL> while True : <EOL> if searchIndex > len ( string ) - <NUM_LIT:1> : <EOL> newEndIndex = searchIndex <EOL> break <EOL> char = string [ searchIndex : searchIndex + <NUM_LIT:1> ] <EOL> if linebreakRe . match ( char ) : <EOL> newEndIndex = searchIndex <EOL> break <EOL> else : <EOL> searchIndex += <NUM_LIT:1> <EOL> s = string [ newStartIndex : newEndIndex ] <EOL> r = spacesAndTabsRe . match ( s ) <EOL> if r and r . end ( ) <= startIndex : <EOL> newStartIndex = newStartIndex + r . end ( ) ; <EOL> try : <EOL> if startIndex == newStartIndex and endIndex == newEndIndex : <EOL> return None <EOL> else : <EOL> return utils . create_return_obj ( newStartIndex , newEndIndex , string , "<STR_LIT>" ) <EOL> except NameError : <EOL> return None </s>
