#NEWLINE# def _add_delayed_subst( self , subst , delay ) : #NEWLINE# #INDENT# if ( not isinstance ( subst , vtypes . Subst ) ) : #NEWLINE# #INDENT# return subst #NEWLINE# #UNINDENT# left = subst . left #NEWLINE# right = subst . right #NEWLINE# if isinstance ( right , ( bool , int , float , str , vtypes . _Constant , vtypes . _ParameterVairable ) ) : #NEWLINE# #INDENT# return subst #NEWLINE# #UNINDENT# width = left . bit_length ( ) #NEWLINE# prev = right #NEWLINE# name_prefix = ( '_' . join ( [ '' , left . name , str ( self . tmp_count ) ] ) if isinstance ( left , vtypes . _Variable ) else '_' . join ( [ '' , self . name , 'sbst' , str ( self . tmp_count ) ] ) ) #NEWLINE# self . tmp_count += 1 #NEWLINE# for i in range ( delay ) : #NEWLINE# #INDENT# tmp_name = '_' . join ( [ name_prefix , str ( ( i + 1 ) ) ] ) #NEWLINE# tmp = self . m . Reg ( tmp_name , width , initval = 0 ) #NEWLINE# self . add ( tmp ( prev ) , delay = i ) #NEWLINE# prev = tmp #NEWLINE# #UNINDENT# return left ( prev )