parameters: (val_1, val_2, val_op)
return_statement: return c
docstring: Apply arithmetic rules to compute a result
  
  	:param val1: input parameter
  	:type val1: int or string
  	:param val2: input parameter
  	:type val2: int or string
  	:param val_op: C operator in *+*, */*, *-*, etc
  	:type val_op: string
  	:rtype: int
docstring_summary: Apply arithmetic rules to compute a result
docstring_tokens: Apply arithmetic rules to compute a result
function: def reduce_nums(val_1, val_2, val_op):
  	"""
  	Apply arithmetic rules to compute a result
  
  	:param val1: input parameter
  	:type val1: int or string
  	:param val2: input parameter
  	:type val2: int or string
  	:param val_op: C operator in *+*, */*, *-*, etc
  	:type val_op: string
  	:rtype: int
  	"""
  	#print val_1, val_2, val_op
  
  	# now perform the operation, make certain a and b are numeric
  	try:
  		a = 0 + val_1
  	except TypeError:
  		a = int(val_1)
  	try:
  		b = 0 + val_2
  	except TypeError:
  		b = int(val_2)
  
  	d = val_op
  	if d == '%':
  		c = a % b
  	elif d=='+':
  		c = a + b
  	elif d=='-':
  		c = a - b
  	elif d=='*':
  		c = a * b
  	elif d=='/':
  		c = a / b
  	elif d=='^':
  		c = a ^ b
  	elif d=='==':
  		c = int(a == b)
  	elif d=='|'  or d == 'bitor':
  		c = a | b
  	elif d=='||' or d == 'or' :
  		c = int(a or b)
  	elif d=='&'  or d == 'bitand':
  		c = a & b
  	elif d=='&&' or d == 'and':
  		c = int(a and b)
  	elif d=='!=' or d == 'not_eq':
  		c = int(a != b)
  	elif d=='^'  or d == 'xor':
  		c = int(a^b)
  	elif d=='<=':
  		c = int(a <= b)
  	elif d=='<':
  		c = int(a < b)
  	elif d=='>':
  		c = int(a > b)
  	elif d=='>=':
  		c = int(a >= b)
  	elif d=='<<':
  		c = a << b
  	elif d=='>>':
  		c = a >> b
  	else:
  		c = 0
  	return c
function_tokens: def reduce_nums ( val_1 , val_2 , val_op ) : #print val_1, val_2, val_op # now perform the operation, make certain a and b are numeric try : a = 0 + val_1 except TypeError : a = int ( val_1 ) try : b = 0 + val_2 except TypeError : b = int ( val_2 ) d = val_op if d == '%' : c = a % b elif d == '+' : c = a + b elif d == '-' : c = a - b elif d == '*' : c = a * b elif d == '/' : c = a / b elif d == '^' : c = a ^ b elif d == '==' : c = int ( a == b ) elif d == '|' or d == 'bitor' : c = a | b elif d == '||' or d == 'or' : c = int ( a or b ) elif d == '&' or d == 'bitand' : c = a & b elif d == '&&' or d == 'and' : c = int ( a and b ) elif d == '!=' or d == 'not_eq' : c = int ( a != b ) elif d == '^' or d == 'xor' : c = int ( a ^ b ) elif d == '<=' : c = int ( a <= b ) elif d == '<' : c = int ( a < b ) elif d == '>' : c = int ( a > b ) elif d == '>=' : c = int ( a >= b ) elif d == '<<' : c = a << b elif d == '>>' : c = a >> b else : c = 0 return c