/* EndUser4gl 4GL V1.0 */ #include "EndUser4glwinX.h" #include "executeX.h" int subr_update_Tabsym(void); extern long OPCExecute_CalculSimple(long OPCcodeExe) { char zone1[C_CMP_TAILLE_NOM_DICT] = "\0"; short int ReturnOpc = 0 ; short int Ival = 0 ; float FloatValOpe = 0; double DoubleValOpe = 0; float valeur=0; short int vasizeof=0,nbelem=0,longueur=0,offsetdebut=0,offsetfin=0; switch( OPCcodeExe) { /* ********* ********* : = affectation(move) variable numérique + calcul **************** */ case CodeTableSym : OPCF_Pile_Depile(P_NAMEVAR,(void *)GlobalNomVariable) ; if(!strcmp(GlobalNomVariable,"***NULL")) // c'est la decimale de float + table +struct etc TRES IMPORTANT OPCF_Pile_Depile(P_NAMEVAR,(void *)GlobalNomVariable) ; // printfEU(" CodeTableSym : GlobalNomVariable: %s",GlobalNomVariable); OPC_ReturnValuesTabSymboleII(&GP_TYPE,GContexteLocal, GlobalNomVariable ,&vasizeof, &nbelem,\ &offsetdebut,&offsetfin,&longueur,&valeur); // TRACEEU(" vasizeof : %d de %s type : %d", vasizeof, GlobalNomVariable,GP_TYPE ); break ; /* ************************************************************************************ */ case CodeExeOpeFloat : GtypeOpe = 1 ; break ; case CodeExeOpeLong : GtypeOpe = 2 ; break ; case CodeExeOpeInt : GtypeOpe = 3 ; break ; case CodeExeOpeDouble : GtypeOpe = 4 ; break ; case CodeExeAdd : if(!GlobalDoubleValResult) { OPCF_Pile_Depile(P_NAMEVAR,(void *)zone1) ; GlobalDoubleValResult = Function_Type_Numeric();} OPC_Depile_All(); GlobalAttrs = 1; break; case CodeExeSoust : if(!GlobalDoubleValResult) { OPCF_Pile_Depile(P_NAMEVAR,(void *)zone1) ; GlobalDoubleValResult = Function_Type_Numeric() ;} OPC_Depile_All(); GlobalAttrs = 2; break; case CodeExeMult : if(!GlobalDoubleValResult) { OPCF_Pile_Depile(P_NAMEVAR,(void *)zone1) ; GlobalDoubleValResult = Function_Type_Numeric();} OPC_Depile_All(); GlobalAttrs = 3; break; case CodeExeDiv: if(!GlobalDoubleValResult) { OPCF_Pile_Depile(P_NAMEVAR,(void *)zone1) ; GlobalDoubleValResult = Function_Type_Numeric(); TRACEEU("1CodeExeDiv : %lf",GlobalDoubleValResult);} OPC_Depile_All(); GlobalAttrs = 4 ; break; case CodeExeIncrAdd : OPCF_Pile_Depile(P_NAMEVAR,(void *)GlobalNomVariable) ; OPC_ReturnValuesTabSymboleII(&GP_TYPE,GContexteLocal, GlobalNomVariable ,&vasizeof, &nbelem,\ &offsetdebut,&offsetfin,&longueur,&valeur); GlobalDoubleValResult = Function_Type_Numeric(); GlobalDoubleValResult += 1; if(strlen(GlobalNomVariable)) {ReturnOpc =subr_update_Tabsym(); OPC_Depile_All(); //ReturnOpc = OPC_Update_TableSymbole(GlobalNomVariable,&GlobalDoubleValResult); GlobalDoubleValResult = 0 ; FloatValOpe = 0 ; GlobalAttrs = 0; memcpy(GlobalNomVariable,"\0",strlen(GlobalNomVariable)); } return ReturnOpc; case CodeExeIncrSoust : OPCF_Pile_Depile(P_NAMEVAR,(void *)GlobalNomVariable) ; OPC_ReturnValuesTabSymboleII(&GP_TYPE,GContexteLocal, GlobalNomVariable ,&vasizeof, &nbelem,\ &offsetdebut,&offsetfin,&longueur,&valeur); GlobalDoubleValResult = Function_Type_Numeric(); GlobalDoubleValResult -= 1; if(strlen(GlobalNomVariable)) { ReturnOpc =subr_update_Tabsym(); OPC_Depile_All(); //ReturnOpc = OPC_Update_TableSymbole(GlobalNomVariable,&GlobalDoubleValResult); GlobalDoubleValResult = 0 ; FloatValOpe = 0 ; GlobalAttrs = 0; memcpy(GlobalNomVariable,"\0",strlen(GlobalNomVariable)); } return ReturnOpc; case CodeExeAffect : if(!GlobalDoubleValResult) .....si vous achetez une license ENduser4gl , vous aurez la totalité du code source...