#NEWLINE# def _walk_FunctionCall( self , node ) : #NEWLINE# #INDENT# if ( not isinstance ( node . exp_prefix , parser . VarName ) ) : #NEWLINE# #INDENT# return #NEWLINE# #UNINDENT# func_name = node . exp_prefix . name . code #NEWLINE# if ( self . _flipbuttons and ( ( func_name == 'btn' ) or ( func_name == 'btnp' ) ) ) : #NEWLINE# #INDENT# if isinstance ( node . args . explist . exps [ 0 ] . value , lexer . TokNumber ) : #NEWLINE# #INDENT# numval = int ( node . args . explist . exps [ 0 ] . value . code ) #NEWLINE# if ( ( numval % 2 ) == 0 ) : #NEWLINE# #INDENT# numval += 1 #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# numval -= 1 #NEWLINE# #UNINDENT# node . args . explist . exps [ 0 ] . value = lexer . TokNumber ( str ( numval ) ) #NEWLINE# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'pget' ) : #NEWLINE# #INDENT# node . args . explist . exps [ 0 ] = self . _make_binop ( 127 , node . args . explist . exps [ 0 ] ) #NEWLINE# node . args . explist . exps [ 1 ] = self . _make_binop ( 127 , node . args . explist . exps [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'pset' ) : #NEWLINE# #INDENT# node . args . explist . exps [ 0 ] = self . _make_binop ( 127 , node . args . explist . exps [ 0 ] ) #NEWLINE# node . args . explist . exps [ 1 ] = self . _make_binop ( 127 , node . args . explist . exps [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'sget' ) : #NEWLINE# #INDENT# node . args . explist . exps [ 0 ] = self . _make_binop ( 127 , node . args . explist . exps [ 0 ] ) #NEWLINE# node . args . explist . exps [ 1 ] = self . _make_binop ( ( 127 if self . _smallmap else 63 ) , node . args . explist . exps [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'sset' ) : #NEWLINE# #INDENT# node . args . explist . exps [ 0 ] = self . _make_binop ( 127 , node . args . explist . exps [ 0 ] ) #NEWLINE# node . args . explist . exps [ 1 ] = self . _make_binop ( ( 127 if self . _smallmap else 63 ) , node . args . explist . exps [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'print' ) : #NEWLINE# #INDENT# if ( len ( node . args . explist . exps ) > 1 ) : #NEWLINE# #INDENT# node . args . explist . exps [ 2 ] = self . _make_binop ( 119 , node . args . explist . exps [ 2 ] ) #NEWLINE# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'cursor' ) : #NEWLINE# #INDENT# node . args . explist . exps [ 1 ] = self . _make_binop ( 119 , node . args . explist . exps [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'camera' ) : #NEWLINE# #INDENT# if ( node . args . explist is not None ) : #NEWLINE# #INDENT# node . args . explist . exps [ 0 ] = self . _make_binop ( 0 , node . args . explist . exps [ 0 ] ) #NEWLINE# node . args . explist . exps [ 1 ] = self . _make_binop ( 0 , node . args . explist . exps [ 1 ] ) #NEWLINE# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'circ' ) : #NEWLINE# #INDENT# node . args . explist . exps [ 0 ] = self . _make_binop ( 127 , node . args . explist . exps [ 0 ] ) #NEWLINE# node . args . explist . exps [ 1 ] = self . _make_binop ( 127 , node . args . explist . exps [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'circfill' ) : #NEWLINE# #INDENT# node . args . explist . exps [ 0 ] = self . _make_binop ( 127 , node . args . explist . exps [ 0 ] ) #NEWLINE# node . args . explist . exps [ 1 ] = self . _make_binop ( 127 , node . args . explist . exps [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'line' ) : #NEWLINE# #INDENT# node . args . explist . exps [ 0 ] = self . _make_binop ( 127 , node . args . explist . exps [ 0 ] ) #NEWLINE# node . args . explist . exps [ 1 ] = self . _make_binop ( 127 , node . args . explist . exps [ 1 ] ) #NEWLINE# node . args . explist . exps [ 2 ] = self . _make_binop ( 127 , node . args . explist . exps [ 2 ] ) #NEWLINE# node . args . explist . exps [ 3 ] = self . _make_binop ( 127 , node . args . explist . exps [ 3 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'rect' ) : #NEWLINE# #INDENT# node . args . explist . exps [ 0 ] = self . _make_binop ( 127 , node . args . explist . exps [ 2 ] ) #NEWLINE# node . args . explist . exps [ 1 ] = self . _make_binop ( 127 , node . args . explist . exps [ 1 ] ) #NEWLINE# node . args . explist . exps [ 2 ] = self . _make_binop ( 127 , node . args . explist . exps [ 0 ] ) #NEWLINE# node . args . explist . exps [ 3 ] = self . _make_binop ( 127 , sx . args . explist . exps [ 3 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'rectfill' ) : #NEWLINE# #INDENT# node . args . explist . exps [ 0 ] = self . _make_binop ( 127 , node . args . explist . exps [ 2 ] ) #NEWLINE# node . args . explist . exps [ 1 ] = self . _make_binop ( 127 , node . args . explist . exps [ 1 ] ) #NEWLINE# node . args . explist . exps [ 2 ] = self . _make_binop ( 127 , node . args . explist . exps [ 0 ] ) #NEWLINE# node . args . explist . exps [ 3 ] = self . _make_binop ( 127 , node . args . explist . exps [ 3 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'spr' ) : #NEWLINE# #INDENT# if ( len ( node . args . explist . exps ) > 3 ) : #NEWLINE# #INDENT# util . error ( "Unsupported: can't invert blitting more than one tile\n" ) #NEWLINE# #UNINDENT# node . args . explist . exps [ 1 ] = self . _make_binop ( 113 , node . args . explist . exps [ 1 ] ) #NEWLINE# node . args . explist . exps [ 2 ] = self . _make_binop ( 113 , node . args . explist . exps [ 2 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'sspr' ) : #NEWLINE# #INDENT# util . error ( "Unsupported: can't invert sspr\n" ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'mget' ) : #NEWLINE# #INDENT# node . args . explist . exps [ 0 ] = self . _make_binop ( 127 , node . args . explist . exps [ 0 ] ) #NEWLINE# node . args . explist . exps [ 1 ] = self . _make_binop ( ( 31 if self . _smallmap else 63 ) , node . args . explist . exps [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( func_name == 'mset' ) : #NEWLINE# #INDENT# node . args . explist . exps [ 0 ] = self . _make_binop ( 127 , node . args . explist . exps [ 0 ] ) #NEWLINE# node . args . explist . exps [ 1 ] = self . _make_binop ( ( 31 if self . _smallmap else 63 ) , node . args . explist . exps [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( ( func_name == 'map' ) or ( func_name == 'mapdraw' ) ) : #NEWLINE# #INDENT# cel_x = node . args . explist . exps [ 0 ] #NEWLINE# cel_y = node . args . explist . exps [ 1 ] #NEWLINE# sx = node . args . explist . exps [ 2 ] #NEWLINE# sy = node . args . explist . exps [ 3 ] #NEWLINE# cel_w = node . args . explist . exps [ 4 ] #NEWLINE# cel_h = node . args . explist . exps [ 5 ] #NEWLINE# cel_x = self . _make_binop ( self . _make_binop ( 128 , cel_x ) , cel_w ) #NEWLINE# node . args . explist . exps [ 0 ] = cel_x #NEWLINE# cel_y = self . _make_binop ( self . _make_binop ( ( 32 if self . _smallmap else 64 ) , cel_y ) , cel_h ) #NEWLINE# node . args . explist . exps [ 1 ] = cel_y #NEWLINE# sx = self . _make_binop ( self . _make_binop ( 128 , sx ) , self . _make_binop ( 8 , cel_w , binop = '*' ) ) #NEWLINE# node . args . explist . exps [ 2 ] = sx #NEWLINE# sy = self . _make_binop ( self . _make_binop ( 128 , sy ) , self . _make_binop ( 8 , cel_h , binop = '*' ) ) #NEWLINE# node . args . explist . exps [ 3 ] = sy #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# ( yield )