Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def p_factor1(p):
- ''' factor1 : PLUS varcte
- | MINUS varcte
- | varcte'''
- print "\n factor1"
- # Insert varcte to pOperandos
- if len(p) == 3:
- p[0] = p[1] + str(p[2])
- # Verify PLUS & MINUS are used only on INT & FLOATS
- if ((isinstance(p[2], int)) or (isinstance(p[2], float))):
- if (p[1] == '-'):
- cuadruplos.pOperandos.append(p[2]*-1)
- else:
- cuadruplos.pOperandos.append(p[2])
- # Insert Type of varcte to pTipos
- if isinstance(p[2], int):
- cuadruplos.pTipos.append(INT)
- elif isinstance(p[2], float):
- cuadruplos.pTipos.append(FLOAT)
- else:
- print("Operator mismatch you have a %s before a type: %s at line: %s" %(p[1], type(p[2]), lexer.lineno))
- exit(1)
- else:
- p[0] = p[1]
- print("VARCTE operando: %s" %(str(p[1])))
- cuadruplos.pOperandos.append(p[1])
- print("operadores VARCTE encontrada: %s" %(str(cuadruplos.pOperandos)))
- # Insert Type of varcte to pTipos
- if isinstance(p[1], int):
- cuadruplos.pTipos.append(INT)
- elif isinstance(p[1], float):
- cuadruplos.pTipos.append(FLOAT)
- elif isinstance(p[1], bool):
- cuadruplos.pTipos.append(BOOL)
- else:
- if globalVars.has_key(p[1]):
- cuadruplos.pTipos.append(globalVars[p[1]][0])
- elif function_ptr != "GLOBAL" and functionsDir[function_ptr][1].has_key(p[1]):
- cuadruplos.pTipos.append(functionsDir[function_ptr][1][p[1]][0])
- else:
- cuadruplos.pTipos.append(STRING)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement