def main(): #Procesar parametros de entrada parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('-fIN', nargs=1,required=True,help='Fichero Entrada') parser.add_argument('-fOUT', nargs=1,required=True,help='Fichero Salida') opts = parser.parse_args() fIN=opts.fIN[0] fOUT=opts.fOUT[0] #EScritura y buffer para dos pasadas escribir=Flujo.escribirFichero(fOUT) #PASADA2--------------------------------------------------------------------------------------------- bufffer2PAs=Flujo.buffer(escribir) #PASADA1--------------------------------------------------------------------------------------------- #CAMBIAR EXCEPCIONES A MODO PYTHON 3 flu1=Flujo.sustituirCadenas(bufffer2PAs,"except Exception, e:","except Exception as e:") ##Cambiar UTIL flu24=Flujo.sustituirCadenas(flu1," AQSql."," qsatype.AQSql.") flu23=Flujo.sustituirCadenas(flu24,"(AQSql.","(qsatype.AQSql.") flu22=Flujo.sustituirCadenas(flu23," FLUtil."," qsatype.FLUtil.") flu21=Flujo.sustituirCadenas(flu22," AQUtil."," qsatype.FLUtil.") flu2=Flujo.sustituirCadenas(flu21,"AQUtil.","FLUtil.") #CAMBIAR OR flu3=Flujo.sustituirCadenas(flu2," OR "," | ") #cambiar undefined flu4=Flujo.sustituirCadenas(flu3," undefined"," None ") #Cabecera flu7=Flujo.sustituirCadenas(flu4,["from pineboolib import qsatype","from pineboolib.qsaglobals import *"],["from YBLEGACY import qsatype","import YBLEGACY.constantes\nfrom YBLEGACY.constantes import ustr , parseFloat"]) #sys. flu8=Flujo.sustituirCadenas(flu7,"sys.","qsatype.FLUtil.") #from pineboolib import qsatype #from pineboolib.qsaglobals import * #sustitucion de llamadas a modulos externos: #formXXXXXX\.[a-zA-Z0-9_]+\.iface flu9=Flujo.sustituirCadenasRe(flu8,"(?P<INICIO>.+) form(?P<MODULO>[a-zA-Z0-9_]+)\.iface(?P<FIN>.*)","{INICIO} qsatype.FactoriaModulos.get('form{MODULO}').iface{FIN}") #sustitucion de length flu10=Flujo.sustituirCadenasRe(flu9,"(?P<INICIO>.+)( (?P<NOMBRE>[a-zA-Z0-9_]+)\.length)(?P<FIN>.*)","{INICIO} len({NOMBRE}) {FIN}") #Establecer metaclase para permitir invocacion __ flu10A=Flujo.sustituirCadenasRe(flu10,"class (?P<NOMBRE>[a-zA-Z0-9_]+)\((?P<PADRE>[a-zA-Z0-9_]+)\):","class {NOMBRE}({PADRE},metaclass=qsatype.MC):") #sustituir clase base flu11=Flujo.sustituirCadenas(flu10A,"class interna(object):","class interna(qsatype.objetoBase):") #Asignacion de modulos generales fl #_fP = flfactppal.iface #_fP = qsatype.FactoriaModulos.get("flfactppal") flu12=Flujo.sustituirCadenasRe(flu11,"(?P<INICIO>.+) fl(?P<MODULO>[a-zA-Z0-9_]+)\.iface(?P<FIN>.*)","{INICIO} qsatype.FactoriaModulos.get('fl{MODULO}').iface{FIN}") #left, right y mid flu13=Flujo.sustituirCadenasReConParentesis(flu12,"(?P<INICIO>.+).left\((?P<NUMERO>.+)\)(?P<FIN>.*)","{INICIO}[:{NUMERO}]{FIN}",["NUMERO"]) flu14=Flujo.sustituirCadenasReConParentesis(flu13,"(?P<INICIO>.+).right\((?P<NUMERO>.+)\)(?P<FIN>.*)","{INICIO}[-{NUMERO}:]{FIN}",["NUMERO"]) flu15=Flujo.sustituirCadenasReConParentesis(flu14,"(?P<INICIO>.+).mid\((?P<NUMERO1>.+),(?P<NUMERO2>.+)\)(?P<FIN>.*)","{INICIO}[{NUMERO1}:{NUMERO1}+{NUMERO2}]{FIN}",["NUMERO1","NUMERO2"]) #Cambiar toString() flu16=Flujo.sustituirCadenasRe(flu15,'(?P<INICIO>.+) (?P<ELEMENTO>[a-zA-Z0-9_"\.\(\)]+)\.toString\(\)(?P<FIN>.*)',"{INICIO} str({ELEMENTO}){FIN}") #Problemas con newdate... flu17=Flujo.sustituirCadenas(flu16,"( qsatype.Date() ).toString()","str(qsatype.Date())") #Tratamiento de debug flu18=Flujo.sustituirCadenasRe(flu17,"(?P<INICIO>.+) debug\((?P<IN>.+)\)(?P<FIN>.*)","{INICIO} qsatype.debug({IN}){FIN}") fluL=flu18 leer=Flujo.leeFichero(fluL,fIN) leer.inicioProceso()
def main(): #Procesar parametros de entrada parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('-fIN', nargs=1,required=True,help='Fichero Entrada') parser.add_argument('-fOUT', nargs=1,required=True,help='Fichero Salida') opts = parser.parse_args() fIN=opts.fIN[0] fOUT=opts.fOUT[0] #Instanciar clases de proceso escribir=Flujo.escribirFichero(fOUT) #PASADA2--------------------------------------------------------------------------------------------- #PROCESAMIENTO DE LLAMADAS A PADRE fluB3=Flujo.sustituirCadenasRe(escribir,"(?P<INICIO>.*)(?P<ANTERIOR>[\s!\(=])(?P<VARIABLE>[a-zA-Z0-9_\.]+)\.__(?P<FUNCION>[a-zA-Z0-9_]+)\((?P<FIN>.*)","{INICIO}{ANTERIOR}super({CTX_CLASSNAME},{VARIABLE}).{FUNCION}({FIN}") fluB4=Flujo.setCTXRe(fluB3,"(.*)class\s+(?P<CTX_CLASSNAME>[a-zA-Z0-9_]+)\s(.*){") #INCLUSION FUENTES DE CLASES #Se estableceran listas al terminar fluBL=Flujo.sustituirCadenas(fluB4,[],[]) bufffer2PAs=Flujo.buffer(fluBL) #PASADA1--------------------------------------------------------------------------------------------- #ELIMINADO Y ALMACENADO DE CADENAS IMPLEMENTACION DE CLASES #DEBE SER EL ULTIMO PARA QUE SE REALICEN CAMBIOS ANTERIORES flu0=Flujo.almacenarCadenasReg(bufffer2PAs,"(?P<INICIO>.*)@class_definition\s+(?P<NOMBRE>[a-zA-Z0-9_]+) (?P<FIN>.*)","//__CLASE[{NOMBRE}]",fluBL) #TOCKEN PARA MARCAR ELEMENTOS NO EN PYTHON flu1=Flujo.eliminaEntre(flu0,"___NOPYTHON[[","]]___NOPYTHON") #SUSTITUIR PASS flu2=Flujo.sustituirCadenas(flu1," pass "," mpass ") #SUSTITUIR LISTA Y DICCIONARIO VACIO flu3=Flujo.sustituirCadenas(flu2,["[]","{}"],["qsatype.Array()","qsatype.Object()"]) #INCLUIR TOCKEN EN DEFINICION DE CLASES PARA PODER LUEGO AMPLIARLAS #dos filas flu4=Flujo.sustituirCadenasReMultipleFila(flu3,2,"(?P<INICIO>.*)class\s+(?P<NOMBRE>[a-zA-Z0-9_]+) (?P<FIN>.*)\n\s*{(?P<FILA2>.*)","{INICIO} class {NOMBRE} {FIN} {{\n//__CLASE[{NOMBRE}]\n{FILA2}") #fila Simple flu41=Flujo.sustituirCadenasRe(flu4,"(?P<INICIO>.*)class\s+(?P<NOMBRE>[a-zA-Z0-9_]+) (?P<FIN>.*){","{INICIO} class {NOMBRE} {FIN} {{\n//__CLASE[{NOMBRE}]") fluL=flu41 leer=Flujo.leeFichero(fluL,fIN) leer.inicioProceso()