version 1.10, 2010/07/14 14:19:36
|
version 1.79, 2025/04/15 10:17:53
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.0.18 |
RPL/2 (R) version 4.1.36 |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
Copyright (C) 1989-2025 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 20
|
Line 20
|
*/ |
*/ |
|
|
|
|
#include "rpl.conv.h" |
#include "rpl-conv.h" |
|
|
|
|
/* |
/* |
Line 325 instruction_hms_plus(struct_processus *s
|
Line 325 instruction_hms_plus(struct_processus *s
|
return; |
return; |
} |
} |
|
|
(*((real8 *) (*s_objet_resultat).objet)) = (*((integer8 *) |
(*((real8 *) (*s_objet_resultat).objet)) = ((real8) (*((integer8 *) |
(*s_objet_argument_2).objet)) + (*((real8 *) |
(*s_objet_argument_2).objet))) + (*((real8 *) |
(*s_objet_argument_1).objet)); |
(*s_objet_argument_1).objet)); |
|
|
conversion_decimal_vers_hms((real8 *) (*s_objet_resultat).objet); |
conversion_decimal_vers_hms((real8 *) (*s_objet_resultat).objet); |
Line 344 instruction_hms_plus(struct_processus *s
|
Line 344 instruction_hms_plus(struct_processus *s
|
} |
} |
|
|
(*((real8 *) (*s_objet_resultat).objet)) = (*((real8 *) |
(*((real8 *) (*s_objet_resultat).objet)) = (*((real8 *) |
(*s_objet_argument_2).objet)) + (*((integer8 *) |
(*s_objet_argument_2).objet)) + ((real8) (*((integer8 *) |
(*s_objet_argument_1).objet)); |
(*s_objet_argument_1).objet))); |
|
|
conversion_decimal_vers_hms((real8 *) (*s_objet_resultat).objet); |
conversion_decimal_vers_hms((real8 *) (*s_objet_resultat).objet); |
} |
} |
Line 480 instruction_hms_moins(struct_processus *
|
Line 480 instruction_hms_moins(struct_processus *
|
if (((*s_objet_argument_1).type == INT) && |
if (((*s_objet_argument_1).type == INT) && |
((*s_objet_argument_2).type == INT)) |
((*s_objet_argument_2).type == INT)) |
{ |
{ |
(*((integer8 *) (*s_objet_argument_1).objet)) = |
if (depassement_soustraction((integer8 *) (*s_objet_argument_2).objet, |
-(*((integer8 *) (*s_objet_argument_1).objet)); |
(integer8 *) (*s_objet_argument_1).objet, &tampon) == |
|
|
if (depassement_addition((integer8 *) (*s_objet_argument_1).objet, |
|
(integer8 *) (*s_objet_argument_2).objet, &tampon) == |
|
d_absence_erreur) |
d_absence_erreur) |
{ |
{ |
if ((s_objet_resultat = allocation(s_etat_processus, INT)) |
if ((s_objet_resultat = allocation(s_etat_processus, INT)) |
Line 506 instruction_hms_moins(struct_processus *
|
Line 503 instruction_hms_moins(struct_processus *
|
} |
} |
|
|
(*((real8 *) (*s_objet_resultat).objet)) = ((real8) |
(*((real8 *) (*s_objet_resultat).objet)) = ((real8) |
(*((integer8 *) (*s_objet_argument_1).objet))) + ((real8) |
(*((integer8 *) (*s_objet_argument_2).objet))) - ((real8) |
(*((integer8 *) (*s_objet_argument_2).objet))); |
(*((integer8 *) (*s_objet_argument_1).objet))); |
} |
} |
} |
} |
|
|
Line 529 instruction_hms_moins(struct_processus *
|
Line 526 instruction_hms_moins(struct_processus *
|
return; |
return; |
} |
} |
|
|
(*((real8 *) (*s_objet_resultat).objet)) = (*((integer8 *) |
(*((real8 *) (*s_objet_resultat).objet)) = ((real8) (*((integer8 *) |
(*s_objet_argument_2).objet)) - (*((real8 *) |
(*s_objet_argument_2).objet))) - (*((real8 *) |
(*s_objet_argument_1).objet)); |
(*s_objet_argument_1).objet)); |
|
|
conversion_decimal_vers_hms((real8 *) (*s_objet_resultat).objet); |
conversion_decimal_vers_hms((real8 *) (*s_objet_resultat).objet); |
Line 548 instruction_hms_moins(struct_processus *
|
Line 545 instruction_hms_moins(struct_processus *
|
} |
} |
|
|
(*((real8 *) (*s_objet_resultat).objet)) = (*((real8 *) |
(*((real8 *) (*s_objet_resultat).objet)) = (*((real8 *) |
(*s_objet_argument_2).objet)) - (*((integer8 *) |
(*s_objet_argument_2).objet)) - ((real8) (*((integer8 *) |
(*s_objet_argument_1).objet)); |
(*s_objet_argument_1).objet))); |
|
|
conversion_decimal_vers_hms((real8 *) (*s_objet_resultat).objet); |
conversion_decimal_vers_hms((real8 *) (*s_objet_resultat).objet); |
} |
} |
Line 715 instruction_help(struct_processus *s_eta
|
Line 712 instruction_help(struct_processus *s_eta
|
unsigned char *registre; |
unsigned char *registre; |
|
|
# undef COMPLETION |
# undef COMPLETION |
# include "completion.conv.h" |
# include "completion-conv.h" |
# include "usages.conv.h" |
# include "usages-conv.h" |
|
|
if ((*s_etat_processus).test_instruction == 'Y') |
if ((*s_etat_processus).test_instruction == 'Y') |
{ |
{ |
Line 797 instruction_help(struct_processus *s_eta
|
Line 794 instruction_help(struct_processus *s_eta
|
printf(" [ ] : vecteur ;\n"); |
printf(" [ ] : vecteur ;\n"); |
printf(" [[ ]] : matrice ;\n"); |
printf(" [[ ]] : matrice ;\n"); |
printf(" <[ ]> : table ;\n"); |
printf(" <[ ]> : table ;\n"); |
|
printf(" |[ ]| : enregistrement ;\n"); |
printf(" \" \" : chaîne de caractères ;\n"); |
printf(" \" \" : chaîne de caractères ;\n"); |
printf(" { } : liste ;\n"); |
printf(" { } : liste ;\n"); |
printf(" /* */ : commentaire ;\n"); |
printf(" /* */ : commentaire ;\n"); |
Line 818 instruction_help(struct_processus *s_eta
|
Line 816 instruction_help(struct_processus *s_eta
|
printf(" [ ] : scalar vector ;\n"); |
printf(" [ ] : scalar vector ;\n"); |
printf(" [[ ]] : scalar matrix ;\n"); |
printf(" [[ ]] : scalar matrix ;\n"); |
printf(" <[ ]> : table ;\n"); |
printf(" <[ ]> : table ;\n"); |
|
printf(" |[ ]| : record ;\n"); |
printf(" \" \" : character string ;\n"); |
printf(" \" \" : character string ;\n"); |
printf(" { } : list ;\n"); |
printf(" { } : list ;\n"); |
printf(" /* */ : comment ;\n"); |
printf(" /* */ : comment ;\n"); |
Line 885 instruction_help(struct_processus *s_eta
|
Line 884 instruction_help(struct_processus *s_eta
|
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
printf("Processus asynchrones :\n"); |
printf("Processus asynchrones :\n"); |
printf(" CTRL+C : interruption de l'instruction en cours ;\n"); |
printf(" CTRL+c : interruption de l'instruction en cours ;\n"); |
printf(" CTRL+D : en mode interactif, provque un ABORT ;\n"); |
printf(" CTRL+d : en mode interactif, provoque un ABORT\n"); |
printf(" CTRL+Z : en cours d'exécution, provoque un HALT " |
printf(" CTRL+g : en mode interactif, provoque l'annulation de la " |
|
"commande en cours ;\n"); |
|
printf(" CTRL+z : en cours d'exécution, provoque un HALT " |
"asynchrone.\n\n"); |
"asynchrone.\n\n"); |
|
|
printf("Drapeaux (valeurs par défaut) :\n"); |
printf("Drapeaux (valeurs par défaut) :\n"); |
Line 897 instruction_help(struct_processus *s_eta
|
Line 898 instruction_help(struct_processus *s_eta
|
printf(" 32 : impression automatique (désarmé)\n"); |
printf(" 32 : impression automatique (désarmé)\n"); |
printf(" 33 : retour à la ligne automatique invalidé " |
printf(" 33 : retour à la ligne automatique invalidé " |
"(désarmé)\n"); |
"(désarmé)\n"); |
printf(" 34 : réservé (désarmé)\n"); |
printf(" 34 : évaluation des caractères de contrôle (armé)\n"); |
printf(" 35 : évaluation symbolique des constantes (armé)\n"); |
printf(" 35 : évaluation symbolique des constantes (armé)\n"); |
printf(" 36 : évaluation symbolique des fonctions (armé)\n"); |
printf(" 36 : évaluation symbolique des fonctions (armé)\n"); |
printf(" 37 à 42 : taille des entiers binaires, bit de poids faible " |
printf(" 37 à 42 : taille des entiers binaires, bit de poids faible " |
"en tête (armés)\n"); |
"en tête (armés)\n"); |
printf(" 43 à 44 : base de numérotation binaire (désarmés)\n"); |
printf(" 43 à 44 : base de numérotation binaire (désarmés)\n"); |
printf(" 45 : affichage multiligne (armé)\n"); |
printf(" 45 : affichage multiligne (armé)\n"); |
printf(" 46 à 47 : réservés (désarmés)\n"); |
printf(" 46 : simplification automatique des expression " |
|
"(désarmé)\n"); |
|
printf(" 47 : réservé (désarmé)\n"); |
printf(" 48 : virgule comme séparateur décimal (désarmé)\n"); |
printf(" 48 : virgule comme séparateur décimal (désarmé)\n"); |
printf(" 49 à 50 : format des nombres (désarmés)\n"); |
printf(" 49 à 50 : format des nombres (désarmés)\n"); |
printf(" 51 : tonalité désactivée (désarmé)\n"); |
printf(" 51 : tonalité désactivée (désarmé)\n"); |
Line 920 instruction_help(struct_processus *s_eta
|
Line 923 instruction_help(struct_processus *s_eta
|
else |
else |
{ |
{ |
printf("Hot keys :\n"); |
printf("Hot keys :\n"); |
printf(" CTRL+C : interruption ;\n"); |
printf(" CTRL+c : interruption ;\n"); |
printf(" CTRL+D : ABORT (in interactive mode only) ;\n"); |
printf(" CTRL+d : in interactive mode only sends ABORT on empty " |
printf(" CTRL+Z : HALT.\n\n"); |
"command line ;\n"); |
|
printf(" CTRL+g : in interactive mode only, nullifies current " |
|
"command line ;\n"); |
|
printf(" CTRL+z : HALT.\n\n"); |
|
|
printf("Flags (default values) :\n"); |
printf("Flags (default values) :\n"); |
printf(" 1 à 30 : user flags (cleared)\n"); |
printf(" 1 to 30 : user flags (cleared)\n"); |
printf(" 31 : LAST stack enabled (set in interactive mode, " |
printf(" 31 : LAST stack enabled (set in interactive mode, " |
"cleared if not)\n"); |
"cleared if not)\n"); |
printf(" 32 : automatic printing (cleared)\n"); |
printf(" 32 : automatic printing (cleared)\n"); |
printf(" 33 : automatic carriage return disabled " |
printf(" 33 : automatic carriage return disabled " |
"(cleared)\n"); |
"(cleared)\n"); |
printf(" 34 : reserved (cleared)\n"); |
printf(" 34 : control characters evaluation (set)\n"); |
printf(" 35 : constant symbolic evaluation (set)\n"); |
printf(" 35 : constant symbolic evaluation (set)\n"); |
printf(" 36 : function symbolic evaluation (set)\n"); |
printf(" 36 : function symbolic evaluation (set)\n"); |
printf(" 37 à 42 : size of binary integers, while starting with " |
printf(" 37 to 42 : size of binary integers, while starting with " |
"less significant bit (set)\n"); |
"less significant bit\n"); |
printf(" 43 à 44 : binary integer basis (cleared)\n"); |
printf(" (set)\n"); |
printf(" 45 : multiline conversion (set)\n"); |
printf(" 43 to 44 : binary integer basis (cleared)\n"); |
printf(" 46 à 47 : reserved (cleared)\n"); |
printf(" 45 : multiline conversion (set)\n"); |
printf(" 48 : comma as decimal separator (cleared)\n"); |
printf(" 46 : expression simplification (cleared)\n"); |
printf(" 49 à 50 : numbers format (cleared)\n"); |
printf(" 47 : reserved (cleared)\n"); |
printf(" 51 : visual bell disabled (cleared)\n"); |
printf(" 48 : comma as decimal separator (cleared)\n"); |
printf(" 52 : graphic automatic redrawing disabled " |
printf(" 49 to 50 : numbers format (cleared)\n"); |
|
printf(" 51 : visual bell disabled (cleared)\n"); |
|
printf(" 52 : graphic automatic redrawing disabled " |
"(cleared)\n"); |
"(cleared)\n"); |
printf(" 53 à 56 : precision, while starting with " |
printf(" 53 to 56 : precision, while starting with " |
"less significant bit (cleared)\n"); |
"less significant bit (cleared)\n"); |
printf(" 57 à 59 : reserved (cleared)\n"); |
printf(" 57 to 59 : reserved (cleared)\n"); |
printf(" 60 : radian mode instead of degree one (set)\n"); |
printf(" 60 : radian mode instead of degree one (set)\n"); |
printf(" 61 à 64 : reserved (cleared)\n"); |
printf(" 61 to 64 : reserved (cleared)\n"); |
} |
} |
|
|
printf("\n"); |
printf("\n"); |
Line 979 instruction_help(struct_processus *s_eta
|
Line 987 instruction_help(struct_processus *s_eta
|
printf(" %s : connexion à une base de données SQL\n", d_SQL); |
printf(" %s : connexion à une base de données SQL\n", d_SQL); |
printf(" %s : mutex\n", d_MTX); |
printf(" %s : mutex\n", d_MTX); |
printf(" %s : sémaphore nommé\n", d_SPH); |
printf(" %s : sémaphore nommé\n", d_SPH); |
|
printf(" %s : enregistrement\n", d_REC); |
} |
} |
else |
else |
{ |
{ |
Line 1006 instruction_help(struct_processus *s_eta
|
Line 1015 instruction_help(struct_processus *s_eta
|
printf(" %s : connection to SQL database\n", d_SQL); |
printf(" %s : connection to SQL database\n", d_SQL); |
printf(" %s : mutex\n", d_MTX); |
printf(" %s : mutex\n", d_MTX); |
printf(" %s : named semaphore\n", d_SPH); |
printf(" %s : named semaphore\n", d_SPH); |
|
printf(" %s : record\n", d_REC); |
} |
} |
|
|
/* |
/* |
Line 1027 instruction_help(struct_processus *s_eta
|
Line 1037 instruction_help(struct_processus *s_eta
|
|
|
while((fonction = readline("HELP> ")) != NULL) |
while((fonction = readline("HELP> ")) != NULL) |
{ |
{ |
funlockfile(stdin); |
|
funlockfile(stdout); |
|
|
|
if (strcmp(fonction, "") == 0) |
if (strcmp(fonction, "") == 0) |
{ |
{ |
break; |
break; |
} |
} |
|
|
|
funlockfile(stdin); |
|
funlockfile(stdout); |
|
|
/* |
/* |
* Élimination des blancs précédents l'instruction |
* Élimination des blancs précédents l'instruction |
*/ |
*/ |