コード例 #1
0
ファイル: posproceso.py プロジェクト: yeboyebo/AQNext
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()
コード例 #2
0
ファイル: preproceso.py プロジェクト: yeboyebo/AQNext
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()