Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2016
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.41 KB | None | 0 0
  1.  
  2. def p_factor1(p):
  3.     ''' factor1 : PLUS varcte
  4.                 | MINUS varcte
  5.                 | varcte'''
  6.  
  7.     print "\n factor1"
  8.     # Insert varcte to pOperandos
  9.     if len(p) == 3:
  10.         p[0] = p[1] + str(p[2])
  11.         # Verify PLUS & MINUS are used only on INT & FLOATS
  12.         if ((isinstance(p[2], int)) or (isinstance(p[2], float))):
  13.             if (p[1] == '-'):
  14.                 cuadruplos.pOperandos.append(p[2]*-1)
  15.             else:
  16.                 cuadruplos.pOperandos.append(p[2])
  17.  
  18.             # Insert Type of varcte to pTipos
  19.             if isinstance(p[2], int):
  20.                 cuadruplos.pTipos.append(INT)
  21.             elif isinstance(p[2], float):
  22.                 cuadruplos.pTipos.append(FLOAT)
  23.         else:
  24.             print("Operator mismatch you have a %s before a type: %s at line: %s" %(p[1], type(p[2]), lexer.lineno))
  25.             exit(1)
  26.     else:
  27.         p[0] = p[1]
  28.         print("VARCTE operando: %s" %(str(p[1])))
  29.         cuadruplos.pOperandos.append(p[1])
  30.         print("operadores VARCTE encontrada: %s" %(str(cuadruplos.pOperandos)))
  31.         # Insert Type of varcte to pTipos
  32.         if isinstance(p[1], int):
  33.             cuadruplos.pTipos.append(INT)
  34.         elif isinstance(p[1], float):
  35.             cuadruplos.pTipos.append(FLOAT)
  36.         elif isinstance(p[1], bool):
  37.             cuadruplos.pTipos.append(BOOL)
  38.         else:
  39.             if globalVars.has_key(p[1]):
  40.                     cuadruplos.pTipos.append(globalVars[p[1]][0])
  41.             elif function_ptr != "GLOBAL" and functionsDir[function_ptr][1].has_key(p[1]):
  42.                     cuadruplos.pTipos.append(functionsDir[function_ptr][1][p[1]][0])
  43.             else:
  44.                 cuadruplos.pTipos.append(STRING)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement