Ejemplo n.º 1
0
def gene(caso,nume,accion,loops,filename): 
    	cadena = ap1.read_config_case("../config.ini","case_"+caso)['actions']
	predicado=''
	if (not cadena==''):
	   dic={}
	   cade=cadena.split(':') 
	   for e in cade:
		    elem=e.split(',')
		    dic[elem[0]]=elem[1] 	
                    if not dic.get(accion)==None:
         		 predicado= ap1.load_pred_aux("../examples/"+caso+"/models/aux_pred_2.als")
			 print predicado
			    #predicado=predicado.split("\n")[0]
			    #os.system(" sed -i 's/\/\*INI_PRE.*FIN_PRE\*\//\/\*INI_PRE\*\/"+predicado+"\/\*FIN_PRE\*\//g ' "+filename)
   			    #sys.exit(0)
        return 0
Ejemplo n.º 2
0
def gen_input_fact_i32_jt(caso,i,lista,accion,loops,pin,result): #lee el elemento i de la lista i lo reemplaza en resultado.als 
	out=[]
        
	#aca
	if (i<len(lista)):
		cade=lista[i]
		
		data=cade.split('?')
		pares={}
		for e in data:
		   s=e.split(':')
		   pares[s[0]]=s[1]			
		param=''
		t=int(pares['size'])+loops+1
		n=int(pares['cantidad_enteros'])+loops+1				
		#scope_int=minBitwidthToRepresent(t)
		#check='check programa_wap for '+str(t)+" but "+str(n)+" JavaPrimitiveIntegerValue, "+str(scope_int)+" int" 
                check='check programa_wap for 0 but '+str(n)+" JavaPrimitiveIntegerValue " 
		parametros_de_accion_rota=pin
		res=[]
		cade=''
		p=0
		f=0
		for e in pin:
		     if (e[1]=='JavaPrimitiveIntegerValue' and p==0):	
				res.append( "QF."+e[0]+"_0="+pares['pi32_a'])
				#cade=cade+" "+e[0]+"="+ap1.bin_to_int(pares['pi32_a'])
				p=1
		     else:	
			     if(e[1]=='JavaPrimitiveIntegerValue' and p==1):	
					res.append( "QF."+e[0]+"_0="+pares['pi32_b'])
				#	cade=cade+" "+e[0]+"="+ap1.bin_to_int(pares['pi32_b'])

		     if (e[1]=='Int'and f==0):	
				res.append("eq[QF."+e[0]+"_0,"+pares['indice_a']+"]")
				cade=cade+" "+e[0]+"="+pares['indice_a']
				f=1
		     else:
	  	     	     if (e[1]=='Int'and f==1):	
				res.append("QF."+e[0]+"_0="+pares['indice_b'])
				cade=cade+" "+e[0]+"="+pares['indice_b']



		out.append(pares[' lista'])
		print pares[' lista']
		print 'action to fix: '+accion+"("+cade+")"		 
		out.append('action to fix: '+accion+"("+cade+")")

		parametros_de_acciones="fact { "+(" and ").join(res)+"} "


    	        cadena = ap1.read_config_case("../config.ini","case_"+caso)['actions']
		predicado=''

		if (not cadena==''):
			dic={}
		        cade=cadena.split(':') 
			for e in cade:
			    
			    elem=e.split(',')
			    dic[elem[0]]=elem[1] 	

		
			    # obtiene el scope de la accion almacenada para saber que archivo de aux_pred invocar. tenganse en cuenta que 
			    # por ejemplo para el predicado que indica el size depende de la entrada y de la accion



			if not dic.get(accion)==None:
				predicado= ap1.load_pred_aux("../examples/"+caso+"/models/aux_pred_"+str(int(dic.get(accion))+ int(pares['size']))+".als")

		
				predicado=predicado.split("\n")[0]



		pegar=pares['estado']+" "+parametros_de_acciones+" "+check+" "+predicado

		os.system(" sed -i 's/\/\*INI_PRE.*FIN_PRE\*\//\/\*INI_PRE\*\/"+pegar+"\/\*FIN_PRE\*\//g ' resultado.als")

		result[i]=out
	return [pares['size'],result]