def p_funciones2(p): #ya 'funciones : SUBSTRING PABRE ID COMA NUMERO COMA NUMERO PCIERRA' p[0] = FuncionCadena(funcion='SUBSTRING', parametro1=ExpresionID(p[3], p.slice[1].lineno), parametro2=ExpresionNumero(p[5], TIPO_DE_DATO.ENTERO, p.slice[2].lineno), parametro3=ExpresionNumero(p[7], TIPO_DE_DATO.ENTERO, p.slice[2].lineno), linea=p.slice[2].lineno)
def p_expresion_tabla_campo(p): 'expresion : ID PUNTO ID' # mmm tal vez agregar un atributo tabla en expresionID p[0] = ExpresionID(p[3], p.slice[1].lineno, tabla=p[1])
def p_exp_aux_id(p): 'exp_aux : ID' p[0] = ExpresionID(p[1], p.slice[1].lineno)
def p_exp_aux_tabla(p): 'exp_aux : ID PUNTO ID' p[0] = ExpresionID(p[3], p.slice[1].lineno , tabla = p[1])