#NEWLINE# def compile_store( self , ctx ) : #NEWLINE# #INDENT# ctx . emit ( consts . DUP_TOP ) #NEWLINE# ctx . emit ( consts . COERCE_ARRAY , 0 ) #NEWLINE# splat_index = self . splat_index ( ) #NEWLINE# if ( elems == ( - 1 ) ) : #NEWLINE# #INDENT# ctx . emit ( consts . UNPACK_SEQUENCE , len ( self . targets ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# ctx . emit ( consts . UNPACK_SEQUENCE_SPLAT , len ( self . targets ) , splat_index ) #NEWLINE# #UNINDENT# for target in self . targets : #NEWLINE# #INDENT# elems = target . compile_receiver ( ctx ) #NEWLINE# if ( elems == 1 ) : #NEWLINE# #INDENT# ctx . emit ( consts . ROT_TWO ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( elems == 2 ) : #NEWLINE# #INDENT# ctx . emit ( consts . ROT_THREE ) #NEWLINE# ctx . emit ( consts . ROT_THREE ) #NEWLINE# #UNINDENT# #UNINDENT# target . compile_store ( ctx ) #NEWLINE# ctx . emit ( consts . DISCARD_TOP )