Package icaro-bloques :: Module crear'
[hide private]
[frames] | no frames]

Source Code for Module icaro-bloques.crear'

  1  #!/usr/bin/python 
  2  # -*- coding: utf-8 -*- 
  3   
  4  # This program is free software: you can redistribute it and/or modify 
  5  # it under the terms of the GNU General Public License as published by 
  6  # the Free Software Foundation, either version 3 of the License, or 
  7  # (at your option) any later version. 
  8  # 
  9  # This program is distributed in the hope that it will be useful, 
 10  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
 11  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 12  # GNU General Public License for more details. 
 13   
 14  import os,sys 
 15   
 16  # revizar parseador, reescribir 
17 -def parseador(lista,argumentos,texto,cadena_final,fondo,ventana):
18 cadena=[] 19 valor=[] 20 parser_final="" 21 n=0 22 xml="<"+texto.strip(' ')+">" 23 xmlfin="</"+texto.strip(' ')+">" 24 b=0 25 while b !=(len(cadena_final)): 26 if cadena_final[b]==xml: 27 b=b+1 28 while cadena_final[b]!=xmlfin: 29 if cadena_final[b]=="valor" and argumentos<>0: 30 print parser_final 31 print lista[n] 32 parser_final=parser_final+str(lista[n]) 33 print parser_final 34 n=n+1 35 else: 36 parser_final=parser_final+cadena_final[b] 37 b=b+1 38 b=b+1 39 return parser_final+"\n"
40 41
42 -def crear_archivo(fondo, ventana):
43 cadena_final=[] 44 f=open(sys.path[0] +"/diccionario.xml","r") 45 cadena=f.readlines() 46 for a in cadena: 47 cadena_final.append(a.strip("\n")) 48 conectado=1 49 50 fondo.lista_fina=[] 51 for a in range(len(fondo.lista_ordenada)): 52 for a in range(len(fondo.lista_ordenada)): 53 if fondo.lista_ordenada[a]==conectado: 54 fondo.lista_fina.append(conectado) 55 conectado=a 56 fondo.lista_fina.append(conectado) 57 fondo.lista_fina.remove(1) 58 #~ print fondo.lista_fina 59 for a in fondo.lista_fina: 60 61 for b in range(len(fondo.objetos)): 62 if fondo.objetos[b].ide==a: 63 caden=parseador( 64 fondo.objetos[b].lista_valores, 65 fondo.objetos[b].arg, 66 fondo.objetos[b].texto, 67 cadena_final,fondo,ventana 68 ) 69 if caden.find("incluir")==0: 70 fun=caden.split(",") 71 incluir(fondo,ventana,fun) 72 else: 73 ventana.cadena_pinguino.append(caden) 74 ventana.cadena_pinguino.append("}") 75 fw=open(sys.path[0] +"/source/user.c","w") 76 for a in range (len(ventana.cadena_pinguino)): 77 fw.writelines(ventana.cadena_pinguino[a]) 78 fw.close()
79
80 -def funcion(fondo,ventana,ruta):
81 cadena_funcion=[] 82 cadena_final=[] 83 f=open(sys.path[0] +"/diccionario.xml","r") 84 cadena=f.readlines() 85 for a in cadena: 86 cadena_final.append(a.strip("\n")) 87 conectado=1 88 fondo.lista_fina=[] 89 print fondo.lista_ordenada 90 91 for a in range(len(fondo.lista_ordenada)): 92 for a in range(len(fondo.lista_ordenada)): 93 print fondo.lista_ordenada[a] 94 if fondo.lista_ordenada[a]==conectado: 95 fondo.lista_fina.append(conectado) 96 conectado=a 97 fondo.lista_fina.append(conectado) 98 fondo.lista_fina.remove(1) 99 print "--------------------",fondo.lista_fina 100 for a in fondo.lista_fina: 101 for b in range(len(fondo.objetos)): 102 if fondo.objetos[b].ide==a: 103 caden=parseador( 104 fondo.objetos[b].lista_valores, 105 fondo.objetos[b].arg, 106 fondo.objetos[b].texto, 107 cadena_final,fondo,ventana 108 ) 109 110 cadena_funcion.append(caden) 111 archivo = os.path.basename(ruta) 112 archivostrip=archivo.split(".") 113 114 file=open(ruta,"w") 115 file.writelines("void " + archivostrip[0] +"(){\n") 116 for cad in cadena_funcion: 117 file.writelines(cad) 118 file.writelines("}\n")
119 -def incluir(fondo,ventana,fun):
120 ruta=sys.path[0]+ "/funcion/"+str(fun[1].strip(" \n"))+".func" 121 print ruta 122 file=open(ruta,"r") 123 for cadena in range(len(ventana.cadena_pinguino)): 124 if ventana.cadena_pinguino[cadena]=="/*funciones*/\n": 125 cadenarch=file.readlines() 126 a=1 127 for val in cadenarch: 128 ventana.cadena_pinguino.insert(cadena+a,val) 129 a=a+1
130