#NEWLINE# def visit_PrimCall( self , expr ) : #NEWLINE# #INDENT# p = expr . prim #NEWLINE# args = self . visit_expr_list ( expr . args ) #NEWLINE# if ( p == prims . add ) : #NEWLINE# #INDENT# return self . add ( args [ 0 ] , args [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( p == prims . subtract ) : #NEWLINE# #INDENT# return self . sub ( args [ 0 ] , args [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( p == prims . multiply ) : #NEWLINE# #INDENT# return self . mul ( args [ 0 ] , args [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( p == prims . divide ) : #NEWLINE# #INDENT# return self . div ( args [ 0 ] , args [ 1 ] ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# result = shape . combine_list ( args , preserve_const = False ) #NEWLINE# if ( result . __class__ is Shape ) : #NEWLINE# #INDENT# return result #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# return any_scalar