def p_expre(p):
	"""expre : expre MAS expre
			 | expre MENOS expre
			 | expre MUL expre
			 | expre DIV expre
	"""
	p[0]= Node(p[2], [p[1], p[3]])
	typ = symtab.comparate_types(p[1], p[3])
	p[0].typ = typ
	if typ == 'error' :
		print( ">>ERROR: Se esperaban expresiones del mismo tipo.")
def p_relacion(p):
	"""relacion : expre LT expre
				| expre LE expre
				| expre GT expre
				| expre GE expre
				| expre EQ expre
				| expre NE expre
	"""
	p[0] = Node(p[2], [p[1], p[3]])
	typ = symtab.comparate_types(p[1], p[3])
	p[0].typ = typ
	if typ == 'error' :
		print( ">>ERROR: Se esperaban relaciones del mismo tipo.")
def p_linea_4(p):
	'linea : ID ASIG expre'
	p[0] = Node( ':=', [p[3]], p[1] )

	p[0].assign = 1

	# Validacion id no declarado.
	data = symtab.find_id( p[1] )
	if not data :
		print ( ">>ERROR: identificador '%s' no declarada." % p[1] )

	# Comprobacion asignacion de tipo
	p1 = symtab.get_id( p[1] )
	typ = symtab.comparate_types(p1, p[3])
	if typ == 'error' :
		print( ">>ERROR: Se esperaban expresiones del mismo tipo. linea: ")