#NEWLINE# def compile( self , ctx ) : #NEWLINE# #INDENT# ctx . emit ( ( OPCODE_ASSERT if self . positive else OPCODE_ASSERT_NOT ) ) #NEWLINE# pos = ctx . tell ( ) #NEWLINE# ctx . emit ( 0 ) #NEWLINE# if self . behind : #NEWLINE# #INDENT# ( lo , hi ) = self . subpattern . getwidth ( ) #NEWLINE# if ( lo != hi ) : #NEWLINE# #INDENT# raise RegexpError ( 'look-behind requires fixed-width pattern' ) #NEWLINE# #UNINDENT# ctx . emit ( lo ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# ctx . emit ( 0 ) #NEWLINE# #UNINDENT# self . subpattern . compile ( lo ) #NEWLINE# ctx . emit ( OPCODE_SUCCESS ) #NEWLINE# ctx . patch ( pos , ( ctx . tell ( ) - pos ) )