#NEWLINE# @ tornado . gen . coroutine #NEWLINE# def perform( self , ctx , propname , nod = RootPlaceholder ) : #NEWLINE# #INDENT# 'Generate text (to ctx.accum). This is yieldy, since it may have\n        to check properties.\n\n        The propname should be a bytes; it will be prepended to node\n        prefixes.\n\n        This calls accum_append(), or else it calls GenNodeClass\n        implementations that call accum_append().\n        ' #NEWLINE# ctx . task . tick ( ) #NEWLINE# if ( nod is RootPlaceholder ) : #NEWLINE# #INDENT# nod = self . nod #NEWLINE# #UNINDENT# if ( nod is None ) : #NEWLINE# #INDENT# return #NEWLINE# #UNINDENT# if ( not isinstance ( nod , GenNodeClass ) ) : #NEWLINE# #INDENT# val = str ( nod ) #NEWLINE# if val : #NEWLINE# #INDENT# ctx . accum_append ( val ) #NEWLINE# #UNINDENT# return #NEWLINE# #UNINDENT# ( yield nod . perform ( ctx , self , self ) )