Annotation of rpl/src/instructions_b1.c, revision 1.22

1.1       bertrand    1: /*
                      2: ================================================================================
1.21      bertrand    3:   RPL/2 (R) version 4.1.0.prerelease.1
1.17      bertrand    4:   Copyright (C) 1989-2011 Dr. BERTRAND Joël
1.1       bertrand    5: 
                      6:   This file is part of RPL/2.
                      7: 
                      8:   RPL/2 is free software; you can redistribute it and/or modify it
                      9:   under the terms of the CeCILL V2 License as published by the french
                     10:   CEA, CNRS and INRIA.
                     11:  
                     12:   RPL/2 is distributed in the hope that it will be useful, but WITHOUT
                     13:   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
                     14:   FITNESS FOR A PARTICULAR PURPOSE.  See the CeCILL V2 License
                     15:   for more details.
                     16:  
                     17:   You should have received a copy of the CeCILL License
                     18:   along with RPL/2. If not, write to info@cecill.info.
                     19: ================================================================================
                     20: */
                     21: 
                     22: 
1.13      bertrand   23: #include "rpl-conv.h"
1.1       bertrand   24: 
                     25: 
                     26: /*
                     27: ================================================================================
                     28:   Fonction 'bin'
                     29: ================================================================================
                     30:   Entrées :
                     31: --------------------------------------------------------------------------------
                     32:   Sorties :
                     33: --------------------------------------------------------------------------------
                     34:   Effets de bord : néant
                     35: ================================================================================
                     36: */
                     37: 
                     38: void
                     39: instruction_bin(struct_processus *s_etat_processus)
                     40: {
                     41:    (*s_etat_processus).erreur_execution = d_ex;
                     42: 
                     43:    if ((*s_etat_processus).affichage_arguments == 'Y')
                     44:    {
                     45:        printf("\n  BIN ");
                     46: 
                     47:        if ((*s_etat_processus).langue == 'F')
                     48:        {
                     49:            printf("(base binaire)\n\n");
                     50:            printf("  Aucun argument\n");
                     51:        }
                     52:        else
                     53:        {
                     54:            printf("(binary base)\n\n");
                     55:            printf("  No argument\n");
                     56:        }
                     57: 
                     58:        return;
                     59:    }
                     60:    else if ((*s_etat_processus).test_instruction == 'Y')
                     61:    {
                     62:        (*s_etat_processus).nombre_arguments = -1;
                     63:        return;
                     64:    }
                     65: 
                     66:    if (test_cfsf(s_etat_processus, 31) == d_vrai)
                     67:    {
                     68:        if (empilement_pile_last(s_etat_processus, 0) == d_erreur)
                     69:        {
                     70:            return;
                     71:        }
                     72:    }
                     73: 
                     74:    cf(s_etat_processus, 43);
                     75:    sf(s_etat_processus, 44);
                     76: 
                     77:    return;
                     78: }
                     79: 
                     80: 
                     81: /*
                     82: ================================================================================
                     83:   Fonction 'beep'
                     84: ================================================================================
                     85:   Entrées :
                     86: --------------------------------------------------------------------------------
                     87:   Sorties :
                     88: --------------------------------------------------------------------------------
                     89:   Effets de bord : néant
                     90: ================================================================================
                     91: */
                     92: 
                     93: void
                     94: instruction_beep(struct_processus *s_etat_processus)
                     95: {
                     96:    (*s_etat_processus).erreur_execution = d_ex;
                     97: 
                     98:    if ((*s_etat_processus).affichage_arguments == 'Y')
                     99:    {
                    100:        printf("\n  BEEP ");
                    101: 
                    102:        if ((*s_etat_processus).langue == 'F')
                    103:        {
                    104:            printf("(son d'avertissement)\n\n");
                    105:            printf("  Aucun argument\n");
                    106:        }
                    107:        else
                    108:        {
                    109:            printf("(warning bell)\n\n");
                    110:            printf("  No argument\n");
                    111:        }
                    112: 
                    113:        return;
                    114:    }
                    115:    else if ((*s_etat_processus).test_instruction == 'Y')
                    116:    {
                    117:        (*s_etat_processus).nombre_arguments = -1;
                    118:        return;
                    119:    }
                    120: 
                    121:    if (test_cfsf(s_etat_processus, 31) == d_vrai)
                    122:    {
                    123:        if (empilement_pile_last(s_etat_processus, 0) == d_erreur)
                    124:        {
                    125:            return;
                    126:        }
                    127:    }
                    128: 
                    129:    if (test_cfsf(s_etat_processus, 51) == d_faux)
                    130:    {
                    131:        printf("%s", ds_beep);
                    132:    }
                    133: 
                    134:    return;
                    135: }
                    136: 
                    137: 
                    138: /*
                    139: ================================================================================
                    140:   Fonction 'b->r'
                    141: ================================================================================
                    142:   Entrées : pointeur sur une structure struct_processus
                    143: --------------------------------------------------------------------------------
                    144:   Sorties :
                    145: --------------------------------------------------------------------------------
                    146:   Effets de bord : néant
                    147: ================================================================================
                    148: */
                    149: 
                    150: void
                    151: instruction_b_vers_r(struct_processus *s_etat_processus)
                    152: {
                    153:    struct_objet                *s_objet_argument;
                    154:    struct_objet                *s_objet_resultat;
                    155: 
                    156:    (*s_etat_processus).erreur_execution = d_ex;
                    157: 
                    158:    if ((*s_etat_processus).affichage_arguments == 'Y')
                    159:    {
                    160:        printf("\n  B->R ");
                    161: 
                    162:        if ((*s_etat_processus).langue == 'F')
                    163:        {
                    164:            printf("(binaire vers réel)\n\n");
                    165:        }
                    166:        else
                    167:        {
                    168:            printf("(binary to real)\n\n");
                    169:        }
                    170: 
                    171:        printf("    1: %s\n", d_BIN);
                    172:        printf("->  1: %s\n", d_INT);
                    173: 
                    174:        return;
                    175:    }
                    176:    else if ((*s_etat_processus).test_instruction == 'Y')
                    177:    {
                    178:        (*s_etat_processus).nombre_arguments = -1;
                    179:        return;
                    180:    }
                    181: 
                    182:    if (test_cfsf(s_etat_processus, 31) == d_vrai)
                    183:    {
                    184:        if (empilement_pile_last(s_etat_processus, 1) == d_erreur)
                    185:        {
                    186:            return;
                    187:        }
                    188:    }
                    189: 
                    190:    if (depilement(s_etat_processus, &((*s_etat_processus).l_base_pile),
                    191:            &s_objet_argument) == d_erreur)
                    192:    {
                    193:        (*s_etat_processus).erreur_execution = d_ex_manque_argument;
                    194:        return;
                    195:    }
                    196: 
                    197:    if ((*s_objet_argument).type == BIN)
                    198:    {
                    199:        if ((s_objet_resultat = allocation(s_etat_processus, INT))
                    200:                == NULL)
                    201:        {
                    202:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                    203:            return;
                    204:        }
                    205: 
                    206:        (*((integer8 *) (*s_objet_resultat).objet)) = (*((logical8 *)
                    207:                (*s_objet_argument).objet));
                    208:    }
                    209:    else
                    210:    {
                    211:        liberation(s_etat_processus, s_objet_argument);
                    212: 
                    213:        (*s_etat_processus).erreur_execution = d_ex_erreur_type_argument;
                    214:        return;
                    215:    }
                    216: 
                    217:    if (empilement(s_etat_processus, &((*s_etat_processus).l_base_pile),
                    218:            s_objet_resultat) == d_erreur)
                    219:    {
                    220:        return;
                    221:    }
                    222: 
                    223:    liberation(s_etat_processus, s_objet_argument);
                    224: 
                    225:    return;
                    226: }
                    227: 
                    228: 
                    229: /*
                    230: ================================================================================
                    231:   Fonction 'backspace'
                    232: ================================================================================
                    233:   Entrées :
                    234: --------------------------------------------------------------------------------
                    235:   Sorties :
                    236: --------------------------------------------------------------------------------
                    237:   Effets de bord : néant
                    238: ================================================================================
                    239: */
                    240: 
                    241: void
                    242: instruction_backspace(struct_processus *s_etat_processus)
                    243: {
1.5       bertrand  244:    struct_descripteur_fichier  *descripteur;
1.1       bertrand  245: 
                    246:    integer8                    position_finale;
                    247:    integer8                    position_initiale;
                    248: 
                    249:    logical1                    presence_chaine;
                    250:    logical1                    presence_indicateur;
                    251: 
                    252:    long                        pointeur;
                    253:    long                        niveau;
                    254: 
                    255:    size_t                      longueur_effective;
                    256:    size_t                      longueur_questure;
                    257: 
                    258:    struct flock                lock;
                    259: 
                    260:    struct_objet                *s_objet_argument;
                    261: 
                    262:    unsigned char               *tampon_lecture;
                    263: 
                    264:    (*s_etat_processus).erreur_execution = d_ex;
                    265: 
                    266:    if ((*s_etat_processus).affichage_arguments == 'Y')
                    267:    {
                    268:        printf("\n  BACKSPACE ");
                    269: 
                    270:        if ((*s_etat_processus).langue == 'F')
                    271:        {
                    272:            printf("(retour à l'enregistrement précédent)\n\n");
                    273:        }
                    274:        else
                    275:        {
                    276:            printf("(return to the previous record)\n\n");
                    277:        }
                    278: 
                    279:        printf("    1: %s\n", d_FCH);
                    280: 
                    281:        return;
                    282:    }
                    283:    else if ((*s_etat_processus).test_instruction == 'Y')
                    284:    {
                    285:        (*s_etat_processus).nombre_arguments = -1;
                    286:        return;
                    287:    }
                    288: 
                    289:    if (test_cfsf(s_etat_processus, 31) == d_vrai)
                    290:    {
                    291:        if (empilement_pile_last(s_etat_processus, 1) == d_erreur)
                    292:        {
                    293:            return;
                    294:        }
                    295:    }
                    296: 
                    297:    if (depilement(s_etat_processus, &((*s_etat_processus).l_base_pile),
                    298:            &s_objet_argument) == d_erreur)
                    299:    {
                    300:        (*s_etat_processus).erreur_execution = d_ex_manque_argument;
                    301:        return;
                    302:    }
                    303: 
                    304:    if ((*s_objet_argument).type == FCH)
                    305:    {
                    306:        /*
1.5       bertrand  307:         * Fichiers à accès séquentiel
1.1       bertrand  308:         */
                    309: 
1.5       bertrand  310:        if ((*((struct_fichier *) (*s_objet_argument).objet)).acces == 'S')
                    311:        {
                    312:            /*
                    313:             * Vérification des verrous
                    314:             */
1.1       bertrand  315: 
1.5       bertrand  316:            lock.l_type = F_RDLCK;
                    317:            lock.l_whence = SEEK_SET;
                    318:            lock.l_start = 0;
                    319:            lock.l_len = 0;
                    320:            lock.l_pid = getpid();
1.1       bertrand  321: 
1.5       bertrand  322:            if ((descripteur = descripteur_fichier(s_etat_processus,
                    323:                    (struct_fichier *) (*s_objet_argument).objet)) == NULL)
                    324:            {
                    325:                liberation(s_etat_processus, s_objet_argument);
                    326:                return;
                    327:            }
1.1       bertrand  328: 
1.5       bertrand  329:            if (fcntl(fileno((*descripteur).descripteur_c), F_GETLK, &lock)
                    330:                    == -1)
                    331:            {
                    332:                liberation(s_etat_processus, s_objet_argument);
1.1       bertrand  333: 
1.5       bertrand  334:                (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
                    335:                return;
                    336:            }
1.1       bertrand  337: 
1.5       bertrand  338:            if (lock.l_type != F_UNLCK)
                    339:            {
                    340:                liberation(s_etat_processus, s_objet_argument);
1.1       bertrand  341: 
1.5       bertrand  342:                (*s_etat_processus).erreur_execution =
                    343:                        d_ex_fichier_verrouille;
                    344:                return;
                    345:            }
1.1       bertrand  346: 
                    347:            if ((*((struct_fichier *) (*s_objet_argument).objet)).binaire
                    348:                    == 'N')
                    349:            {
                    350:                /*
                    351:                 * Fichiers formatés
                    352:                 */
                    353: 
1.5       bertrand  354:                if ((position_finale = ftell((*descripteur).descripteur_c))
                    355:                        == -1)
1.1       bertrand  356:                {
                    357:                    liberation(s_etat_processus, s_objet_argument);
                    358: 
                    359:                    (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
                    360:                    return;
                    361:                }
                    362: 
                    363:                longueur_questure = 256;
                    364: 
                    365:                if ((tampon_lecture = malloc(longueur_questure *
                    366:                        sizeof(unsigned char))) == NULL)
                    367:                {
                    368:                    (*s_etat_processus).erreur_systeme =
                    369:                            d_es_allocation_memoire;
                    370:                    return;
                    371:                }
                    372: 
                    373:                do
                    374:                {
                    375:                    if ((position_initiale = (position_finale -
                    376:                            longueur_questure)) < 0)
                    377:                    {
                    378:                        position_initiale = 0;
                    379:                        longueur_effective = position_finale + 1;
                    380:                    }
                    381:                    else
                    382:                    {
                    383:                        longueur_effective = longueur_questure;
                    384:                    }
                    385: 
1.5       bertrand  386:                    if (fseek((*descripteur).descripteur_c, position_initiale,
                    387:                            SEEK_SET) != 0)
1.1       bertrand  388:                    {
                    389:                        (*s_etat_processus).erreur_systeme =
                    390:                                d_es_erreur_fichier;
                    391:                        return;
                    392:                    }
                    393: 
                    394:                    longueur_effective = fread(tampon_lecture,
                    395:                            (size_t) sizeof(unsigned char), longueur_effective,
1.5       bertrand  396:                            (*descripteur).descripteur_c);
1.1       bertrand  397: 
                    398:                    pointeur = longueur_effective - 1;
                    399:                    presence_indicateur = d_faux;
                    400: 
                    401:                    while((pointeur >= 0) && (presence_indicateur == d_faux))
                    402:                    {
                    403:                        if (tampon_lecture[pointeur] == '}')
                    404:                        {
                    405:                            presence_indicateur = d_vrai;
                    406:                        }
                    407:                        else
                    408:                        {
                    409:                            position_finale--;
                    410:                            pointeur--;
                    411:                        }
                    412:                    }
                    413:                } while((longueur_effective == longueur_questure) &&
                    414:                        (presence_indicateur == d_faux));
                    415: 
                    416:                if (presence_indicateur == d_faux)
                    417:                {
                    418:                    /*
                    419:                     * Le début du fichier est atteint.
                    420:                     */
                    421: 
1.5       bertrand  422:                    if (fseek((*descripteur).descripteur_c, 0, SEEK_SET) != 0)
1.1       bertrand  423:                    {
                    424:                        liberation(s_etat_processus, s_objet_argument);
                    425:                        free(tampon_lecture);
                    426: 
                    427:                        (*s_etat_processus).erreur_systeme =
                    428:                                d_es_erreur_fichier;
                    429:                        return;
                    430:                    }
                    431: 
                    432:                    (*s_etat_processus).erreur_execution =
                    433:                            d_ex_debut_de_fichier_atteint;
                    434: 
                    435:                    liberation(s_etat_processus, s_objet_argument);
                    436:                    free(tampon_lecture);
                    437: 
                    438:                    return;
                    439:                }
                    440: 
                    441:                position_finale = position_finale - 1;
                    442:                presence_chaine = d_faux;
                    443:                niveau = 1;
                    444: 
                    445:                if (position_finale < 0)
                    446:                {
                    447:                    liberation(s_etat_processus, s_objet_argument);
                    448:                    free(tampon_lecture);
                    449: 
                    450:                    (*s_etat_processus).erreur_execution =
                    451:                            d_ex_debut_de_fichier_atteint;
                    452:                    return;
                    453:                }
                    454: 
                    455:                do
                    456:                {
                    457:                    if ((position_initiale = (position_finale -
                    458:                            longueur_questure)) < 0)
                    459:                    {
                    460:                        position_initiale = 0;
                    461:                        longueur_effective = position_finale + 1;
                    462:                    }
                    463:                    else
                    464:                    {
                    465:                        longueur_effective = longueur_questure;
                    466:                        position_finale--;
                    467:                    }
                    468: 
1.5       bertrand  469:                    if (fseek((*descripteur).descripteur_c, position_initiale,
                    470:                            SEEK_SET) != 0)
1.1       bertrand  471:                    {
                    472:                        (*s_etat_processus).erreur_systeme =
                    473:                                d_es_erreur_fichier;
                    474:                        return;
                    475:                    }
                    476: 
                    477:                    longueur_effective = fread(tampon_lecture,
                    478:                            (size_t) sizeof(unsigned char), longueur_effective,
1.5       bertrand  479:                            (*descripteur).descripteur_c);
1.1       bertrand  480: 
                    481:                    pointeur = longueur_effective - 1;
                    482:                    presence_indicateur = d_faux;
                    483: 
                    484:                    while((pointeur >= 0) && (presence_indicateur == d_faux))
                    485:                    {
                    486:                        if (tampon_lecture[pointeur] == '"')
                    487:                        {
                    488:                            presence_chaine = (presence_chaine == d_vrai)
                    489:                                    ? d_faux : d_vrai;
                    490:                        }
                    491:                        else
                    492:                        {
                    493:                            if (tampon_lecture[pointeur] == '}')
                    494:                            {
                    495:                                niveau++;
                    496:                            }
                    497:                            else if (tampon_lecture[pointeur] == '{')
                    498:                            {
                    499:                                niveau--;
                    500:                            }
                    501:                        }
                    502: 
                    503:                        if (niveau == 0)
                    504:                        {
                    505:                            presence_indicateur = d_vrai;
                    506:                        }
                    507:                        else
                    508:                        {
                    509:                            position_finale--;
                    510:                            pointeur--;
                    511:                        }
                    512:                    }
                    513:                } while((longueur_effective == longueur_questure) &&
                    514:                        (presence_indicateur == d_faux));
                    515: 
                    516:                if (presence_indicateur == d_faux)
                    517:                {
                    518:                    liberation(s_etat_processus, s_objet_argument);
                    519:                    free(tampon_lecture);
                    520: 
                    521:                    (*s_etat_processus).erreur_execution =
                    522:                            d_ex_fin_de_fichier_atteinte;
                    523:                    return;
                    524:                }
                    525: 
1.5       bertrand  526:                if (fseek((*descripteur).descripteur_c, position_finale,
                    527:                        SEEK_SET) != 0)
1.1       bertrand  528:                {
                    529:                    liberation(s_etat_processus, s_objet_argument);
                    530:                    free(tampon_lecture);
                    531: 
                    532:                    (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
                    533:                    return;
                    534:                }
                    535: 
                    536:                free(tampon_lecture);
                    537:            }
                    538:            else
                    539:            {
                    540:                /*
                    541:                 * Fichiers non formatés
                    542:                 */
                    543:            }
                    544:        }
                    545:        else
                    546:        {
                    547:            liberation(s_etat_processus, s_objet_argument);
                    548: 
                    549:            (*s_etat_processus).erreur_execution = d_ex_erreur_type_fichier;
                    550:            return;
                    551:        }
                    552:    }
                    553:    else
                    554:    {
                    555:        liberation(s_etat_processus, s_objet_argument);
                    556: 
                    557:        (*s_etat_processus).erreur_execution = d_ex_erreur_type_argument;
                    558:        return;
                    559:    }
                    560: 
                    561:    liberation(s_etat_processus, s_objet_argument);
                    562: 
                    563:    return;
                    564: }
                    565: 
                    566: 
                    567: /*
                    568: ================================================================================
                    569:   Fonction 'bessel'
                    570: ================================================================================
                    571:   Entrées :
                    572: --------------------------------------------------------------------------------
                    573:   Sorties :
                    574: --------------------------------------------------------------------------------
                    575:   Effets de bord : néant
                    576: ================================================================================
                    577: */
                    578: 
                    579: void
                    580: instruction_bessel(struct_processus *s_etat_processus)
                    581: {
                    582:    logical1                    creation_expression;
                    583: 
                    584:    struct_liste_chainee        *l_element_atome;
                    585:    struct_liste_chainee        *l_element_courant;
                    586:    struct_liste_chainee        *l_element_precedent;
                    587: 
                    588:    struct_objet                *s_copie_argument_1;
                    589:    struct_objet                *s_copie_argument_2;
                    590:    struct_objet                *s_copie_argument_3;
                    591:    struct_objet                *s_objet_argument_1;
                    592:    struct_objet                *s_objet_argument_2;
                    593:    struct_objet                *s_objet_argument_3;
                    594:    struct_objet                *s_objet_resultat;
                    595: 
                    596:    unsigned long               i;
                    597: 
                    598:    (*s_etat_processus).erreur_execution = d_ex;
                    599: 
                    600:    if ((*s_etat_processus).affichage_arguments == 'Y')
                    601:    {
                    602:        printf("\n  BESSEL ");
                    603: 
                    604:        if ((*s_etat_processus).langue == 'F')
                    605:        {
                    606:            printf("(fonctions de Bessel)\n\n");
                    607:        }
                    608:        else
                    609:        {
                    610:            printf("(Bessel functions)\n\n");
                    611:        }
                    612: 
                    613:        printf("    3: \"J\", \"Y\", \"I\", \"K\", \"j\", \"y\", "
                    614:                "\"i\", \"k\"\n");
                    615:        printf("    2: %s, %s\n", d_INT, d_REL);
                    616:        printf("    1: %s, %s\n", d_INT, d_REL);
                    617:        printf("->  1: %s\n\n", d_REL);
                    618: 
                    619:        printf("    3: \"J\", \"Y\", \"I\", \"K\", \"j\", \"y\", "
                    620:                "\"i\", \"k\"\n");
                    621:        printf("    2: %s, %s\n", d_INT, d_REL);
                    622:        printf("    1: %s, %s\n", d_NOM, d_ALG);
                    623:        printf("->  1: %s\n\n", d_ALG);
                    624: 
                    625:        printf("    3: \"J\", \"Y\", \"I\", \"K\", \"j\", \"y\", "
                    626:                "\"i\", \"k\"\n");
                    627:        printf("    2: %s, %s\n", d_INT, d_REL);
                    628:        printf("    1: %s\n", d_RPN);
                    629:        printf("->  1: %s\n", d_RPN);
                    630:        return;
                    631:    }
                    632:    else if ((*s_etat_processus).test_instruction == 'Y')
                    633:    {
                    634:        (*s_etat_processus).nombre_arguments = 3;
                    635:        return;
                    636:    }
                    637: 
                    638:    if (test_cfsf(s_etat_processus, 31) == d_vrai)
                    639:    {
                    640:        if (empilement_pile_last(s_etat_processus, 3) == d_erreur)
                    641:        {
                    642:            return;
                    643:        }
                    644:    }
                    645: 
                    646:    /*
                    647:     * Jn   fonction cylindrique régulière
                    648:     * Yn   fonction cylindrique irrégulière
                    649:     * In   fonction cylindrique régulière modifiée
                    650:     * Kn   fonction cylindrique irrégulière modifiée
                    651:     * jn   fonction sphérique régulière
                    652:     * yn   fonction sphérique irrégulière
                    653:     * in   fonction sphérique régulière modifiée
                    654:     * kn   fonction sphérique irrégulière modifiée
                    655:     *
                    656:     * Attention : Ordre fractionnaire uniquement pour les
                    657:     * fonctions cylindriques
                    658:     */
                    659: 
                    660:    creation_expression = d_faux;
                    661: 
                    662:    if (depilement(s_etat_processus, &((*s_etat_processus).l_base_pile),
                    663:            &s_objet_argument_1) == d_erreur)
                    664:    {
                    665:        (*s_etat_processus).erreur_execution = d_ex_manque_argument;
                    666:        return;
                    667:    }
                    668: 
                    669:    if (depilement(s_etat_processus, &((*s_etat_processus).l_base_pile),
                    670:            &s_objet_argument_2) == d_erreur)
                    671:    {
                    672:        liberation(s_etat_processus, s_objet_argument_1);
                    673: 
                    674:        (*s_etat_processus).erreur_execution = d_ex_manque_argument;
                    675:        return;
                    676:    }
                    677: 
                    678:    if (depilement(s_etat_processus, &((*s_etat_processus).l_base_pile),
                    679:            &s_objet_argument_3) == d_erreur)
                    680:    {
                    681:        liberation(s_etat_processus, s_objet_argument_1);
                    682:        liberation(s_etat_processus, s_objet_argument_2);
                    683: 
                    684:        (*s_etat_processus).erreur_execution = d_ex_manque_argument;
                    685:        return;
                    686:    }
                    687: 
                    688:    if ((*s_objet_argument_3).type == CHN)
                    689:    {
                    690:        if ((strcmp((unsigned char *) (*s_objet_argument_3).objet, "J") == 0) ||
                    691:                (strcmp((unsigned char *) (*s_objet_argument_3).objet, "Y")
                    692:                == 0) || (strcmp((unsigned char *) (*s_objet_argument_3).objet,
                    693:                "I") == 0) || (strcmp((unsigned char *) (*s_objet_argument_3)
                    694:                .objet, "K") == 0) || (strcmp((unsigned char *)
                    695:                (*s_objet_argument_3).objet, "j") == 0) || (strcmp(
                    696:                (unsigned char *) (*s_objet_argument_3).objet, "y") == 0) ||
                    697:                (strcmp((unsigned char *) (*s_objet_argument_3).objet, "i") ==
                    698:                0) || (strcmp((unsigned char *) (*s_objet_argument_3).objet,
                    699:                "k") == 0))
                    700:        {
                    701:            if ((*s_objet_argument_2).type == INT)
                    702:            {
                    703:                if ((*s_objet_argument_1).type == INT)
                    704:                {
                    705:                    if ((s_objet_resultat = allocation(s_etat_processus, REL))
                    706:                            == NULL)
                    707:                    {
                    708:                        (*s_etat_processus).erreur_systeme =
                    709:                                d_es_allocation_memoire;
                    710:                        return;
                    711:                    }
                    712: 
                    713:                    switch((*((unsigned char *) (*s_objet_argument_3).objet)))
                    714:                    {
                    715:                        case 'J' :
                    716:                        {
                    717:                            (*((real8 *) (*s_objet_resultat).objet)) =
                    718:                                    gsl_sf_bessel_Jn((int) ((*((integer8 *)
                    719:                                    (*s_objet_argument_2).objet))),
                    720:                                    (double) ((*((integer8 *)
                    721:                                    (*s_objet_argument_1).objet))));
                    722:                            break;
                    723:                        }
                    724: 
                    725:                        case 'Y' :
                    726:                        {
                    727:                            if ((*((integer8 *) (*s_objet_argument_1).objet))
                    728:                                    <= 0)
                    729:                            {
                    730:                                (*s_etat_processus).exception =
                    731:                                        d_ep_resultat_indefini;
                    732: 
                    733:                                liberation(s_etat_processus,
                    734:                                        s_objet_argument_1);
                    735:                                liberation(s_etat_processus,
                    736:                                        s_objet_argument_2);
                    737:                                liberation(s_etat_processus,
                    738:                                        s_objet_argument_3);
                    739:                                liberation(s_etat_processus,
                    740:                                        s_objet_resultat);
                    741: 
                    742:                                return;
                    743:                            }
                    744: 
                    745:                            (*((real8 *) (*s_objet_resultat).objet)) =
                    746:                                    gsl_sf_bessel_Yn((int) ((*((integer8 *)
                    747:                                    (*s_objet_argument_2).objet))),
                    748:                                    (double) ((*((integer8 *)
                    749:                                    (*s_objet_argument_1).objet))));
                    750:                            break;
                    751:                        }
                    752: 
                    753:                        case 'I' :
                    754:                        {
                    755:                            (*((real8 *) (*s_objet_resultat).objet)) =
                    756:                                    gsl_sf_bessel_In((int) ((*((integer8 *)
                    757:                                    (*s_objet_argument_2).objet))),
                    758:                                    (double) ((*((integer8 *)
                    759:                                    (*s_objet_argument_1).objet))));
                    760:                            break;
                    761:                        }
                    762: 
                    763:                        case 'K' :
                    764:                        {
                    765:                            if ((*((integer8 *) (*s_objet_argument_1).objet))
                    766:                                    <= 0)
                    767:                            {
                    768:                                (*s_etat_processus).exception =
                    769:                                        d_ep_resultat_indefini;
                    770: 
                    771:                                liberation(s_etat_processus,
                    772:                                        s_objet_argument_1);
                    773:                                liberation(s_etat_processus,
                    774:                                        s_objet_argument_2);
                    775:                                liberation(s_etat_processus,
                    776:                                        s_objet_argument_3);
                    777:                                liberation(s_etat_processus,
                    778:                                        s_objet_resultat);
                    779: 
                    780:                                return;
                    781:                            }
                    782: 
                    783:                            (*((real8 *) (*s_objet_resultat).objet)) =
                    784:                                    gsl_sf_bessel_Kn((int) ((*((integer8 *)
                    785:                                    (*s_objet_argument_2).objet))),
                    786:                                    (double) ((*((integer8 *)
                    787:                                    (*s_objet_argument_1).objet))));
                    788:                            break;
                    789:                        }
                    790: 
                    791:                        case 'j' :
                    792:                        {
                    793:                            if (((*((integer8 *) (*s_objet_argument_1).objet))
                    794:                                    < 0) || ((*((integer8 *)
                    795:                                    (*s_objet_argument_2).objet)) < 0))
                    796:                            {
                    797:                                (*s_etat_processus).exception =
                    798:                                        d_ep_resultat_indefini;
                    799: 
                    800:                                liberation(s_etat_processus,
                    801:                                        s_objet_argument_1);
                    802:                                liberation(s_etat_processus,
                    803:                                        s_objet_argument_2);
                    804:                                liberation(s_etat_processus,
                    805:                                        s_objet_argument_3);
                    806:                                liberation(s_etat_processus,
                    807:                                        s_objet_resultat);
                    808: 
                    809:                                return;
                    810:                            }
                    811: 
                    812:                            (*((real8 *) (*s_objet_resultat).objet)) =
                    813:                                    gsl_sf_bessel_jl((int) ((*((integer8 *)
                    814:                                    (*s_objet_argument_2).objet))),
                    815:                                    (double) ((*((integer8 *)
                    816:                                    (*s_objet_argument_1).objet))));
                    817:                            break;
                    818:                        }
                    819: 
                    820:                        case 'y' :
                    821:                        {
                    822:                            if (((*((integer8 *) (*s_objet_argument_1).objet))
                    823:                                    <= 0) || ((*((integer8 *)
                    824:                                    (*s_objet_argument_2).objet)) < 0))
                    825:                            {
                    826:                                (*s_etat_processus).exception =
                    827:                                        d_ep_resultat_indefini;
                    828: 
                    829:                                liberation(s_etat_processus,
                    830:                                        s_objet_argument_1);
                    831:                                liberation(s_etat_processus,
                    832:                                        s_objet_argument_2);
                    833:                                liberation(s_etat_processus,
                    834:                                        s_objet_argument_3);
                    835:                                liberation(s_etat_processus,
                    836:                                        s_objet_resultat);
                    837: 
                    838:                                return;
                    839:                            }
                    840: 
                    841:                            (*((real8 *) (*s_objet_resultat).objet)) =
                    842:                                    gsl_sf_bessel_yl((int) ((*((integer8 *)
                    843:                                    (*s_objet_argument_2).objet))),
                    844:                                    (double) ((*((integer8 *)
                    845:                                    (*s_objet_argument_1).objet))));
                    846:                            break;
                    847:                        }
                    848: 
                    849:                        case 'i' :
                    850:                        {
                    851:                            if ((*((integer8 *) (*s_objet_argument_2).objet))
                    852:                                    < 0)
                    853:                            {
                    854:                                (*s_etat_processus).exception =
                    855:                                        d_ep_resultat_indefini;
                    856: 
                    857:                                liberation(s_etat_processus,
                    858:                                        s_objet_argument_1);
                    859:                                liberation(s_etat_processus,
                    860:                                        s_objet_argument_2);
                    861:                                liberation(s_etat_processus,
                    862:                                        s_objet_argument_3);
                    863:                                liberation(s_etat_processus,
                    864:                                        s_objet_resultat);
                    865: 
                    866:                                return;
                    867:                            }
                    868: 
                    869:                            (*((real8 *) (*s_objet_resultat).objet)) =
                    870:                                    exp(fabs((double) (*((integer8 *)
                    871:                                    (*s_objet_argument_1).objet)))) *
                    872:                                    gsl_sf_bessel_il_scaled(
                    873:                                    (int) ((*((integer8 *)
                    874:                                    (*s_objet_argument_2).objet))),
                    875:                                    (double) ((*((integer8 *)
                    876:                                    (*s_objet_argument_1).objet))));
                    877:                            break;
                    878:                        }
                    879: 
                    880:                        case 'k' :
                    881:                        {
                    882:                            if (((*((integer8 *) (*s_objet_argument_1).objet))
                    883:                                    <= 0) || ((*((integer8 *)
                    884:                                    (*s_objet_argument_2).objet)) < 0))
                    885:                            {
                    886:                                (*s_etat_processus).exception =
                    887:                                        d_ep_resultat_indefini;
                    888: 
                    889:                                liberation(s_etat_processus,
                    890:                                        s_objet_argument_1);
                    891:                                liberation(s_etat_processus,
                    892:                                        s_objet_argument_2);
                    893:                                liberation(s_etat_processus,
                    894:                                        s_objet_argument_3);
                    895:                                liberation(s_etat_processus,
                    896:                                        s_objet_resultat);
                    897: 
                    898:                                return;
                    899:                            }
                    900: 
                    901:                            (*((real8 *) (*s_objet_resultat).objet)) =
                    902:                                    exp(fabs((double) (*((integer8 *)
                    903:                                    (*s_objet_argument_1).objet)))) *
                    904:                                    gsl_sf_bessel_kl_scaled(
                    905:                                    (int) ((*((integer8 *)
                    906:                                    (*s_objet_argument_2).objet))),
                    907:                                    (double) ((*((integer8 *)
                    908:                                    (*s_objet_argument_1).objet))));
                    909:                            break;
                    910:                        }
                    911:                    }
                    912:                }
                    913:                else if ((*s_objet_argument_1).type == REL)
                    914:                {
                    915:                    if ((s_objet_resultat = allocation(s_etat_processus, REL))
                    916:                            == NULL)
                    917:                    {
                    918:                        (*s_etat_processus).erreur_systeme =
                    919:                                d_es_allocation_memoire;
                    920:                        return;
                    921:                    }
                    922: 
                    923:                    switch((*((unsigned char *) (*s_objet_argument_3).objet)))
                    924:                    {
                    925:                        case 'J' :
                    926:                        {
                    927:                            (*((real8 *) (*s_objet_resultat).objet)) =
                    928:                                    gsl_sf_bessel_Jn((int) ((*((integer8 *)
                    929:                                    (*s_objet_argument_2).objet))),
                    930:                                    (double) ((*((real8 *)
                    931:                                    (*s_objet_argument_1).objet))));
                    932:                            break;
                    933:                        }
                    934: 
                    935:                        case 'Y' :
                    936:                        {
                    937:                            if ((*((real8 *) (*s_objet_argument_1).objet))
                    938:                                    <= 0)
                    939:                            {
                    940:                                (*s_etat_processus).exception =
                    941:                                        d_ep_resultat_indefini;
                    942: 
                    943:                                liberation(s_etat_processus,
                    944:                                        s_objet_argument_1);
                    945:                                liberation(s_etat_processus,
                    946:                                        s_objet_argument_2);
                    947:                                liberation(s_etat_processus,
                    948:                                        s_objet_argument_3);
                    949:                                liberation(s_etat_processus,
                    950:                                        s_objet_resultat);
                    951: 
                    952:                                return;
                    953:                            }
                    954: 
                    955:                            (*((real8 *) (*s_objet_resultat).objet)) =
                    956:                                    gsl_sf_bessel_Yn((int) ((*((integer8 *)
                    957:                                    (*s_objet_argument_2).objet))),
                    958:                                    (double) ((*((real8 *)
                    959:                                    (*s_objet_argument_1).objet))));
                    960:                            break;
                    961:                        }
                    962: 
                    963:                        case 'I' :
                    964:                        {
                    965:                            (*((real8 *) (*s_objet_resultat).objet)) =
                    966:                                    gsl_sf_bessel_In((int) ((*((integer8 *)
                    967:                                    (*s_objet_argument_2).objet))),
                    968:                                    (double) ((*((real8 *)
                    969:                                    (*s_objet_argument_1).objet))));
                    970:                            break;
                    971:                        }
                    972: 
                    973:                        case 'K' :
                    974:                        {
                    975:                            if ((*((real8 *) (*s_objet_argument_1).objet))
                    976:                                    <= 0)
                    977:                            {
                    978:                                (*s_etat_processus).exception =
                    979:                                        d_ep_resultat_indefini;
                    980: 
                    981:                                liberation(s_etat_processus,
                    982:                                        s_objet_argument_1);
                    983:                                liberation(s_etat_processus,
                    984:                                        s_objet_argument_2);
                    985:                                liberation(s_etat_processus,
                    986:                                        s_objet_argument_3);
                    987:                                liberation(s_etat_processus,
                    988:                                        s_objet_resultat);
                    989: 
                    990:                                return;
                    991:                            }
                    992: 
                    993:                            (*((real8 *) (*s_objet_resultat).objet)) =
                    994:                                    gsl_sf_bessel_Kn((int) ((*((integer8 *)
                    995:                                    (*s_objet_argument_2).objet))),
                    996:                                    (double) ((*((real8 *)
                    997:                                    (*s_objet_argument_1).objet))));
                    998:                            break;
                    999:                        }
                   1000: 
                   1001:                        case 'j' :
                   1002:                        {
                   1003:                            if (((*((integer8 *) (*s_objet_argument_1).objet))
                   1004:                                    < 0) || ((*((integer8 *)
                   1005:                                    (*s_objet_argument_2).objet)) < 0))
                   1006:                            {
                   1007:                                (*s_etat_processus).exception =
                   1008:                                        d_ep_resultat_indefini;
                   1009: 
                   1010:                                liberation(s_etat_processus,
                   1011:                                        s_objet_argument_1);
                   1012:                                liberation(s_etat_processus,
                   1013:                                        s_objet_argument_2);
                   1014:                                liberation(s_etat_processus,
                   1015:                                        s_objet_argument_3);
                   1016:                                liberation(s_etat_processus,
                   1017:                                        s_objet_resultat);
                   1018: 
                   1019:                                return;
                   1020:                            }
                   1021: 
                   1022:                            (*((real8 *) (*s_objet_resultat).objet)) =
                   1023:                                    gsl_sf_bessel_jl((int) ((*((integer8 *)
                   1024:                                    (*s_objet_argument_2).objet))),
                   1025:                                    (double) ((*((real8 *)
                   1026:                                    (*s_objet_argument_1).objet))));
                   1027:                            break;
                   1028:                        }
                   1029: 
                   1030:                        case 'y' :
                   1031:                        {
                   1032:                            if (((*((integer8 *) (*s_objet_argument_1).objet))
                   1033:                                    <= 0) || ((*((integer8 *)
                   1034:                                    (*s_objet_argument_2).objet)) < 0))
                   1035:                            {
                   1036:                                (*s_etat_processus).exception =
                   1037:                                        d_ep_resultat_indefini;
                   1038: 
                   1039:                                liberation(s_etat_processus,
                   1040:                                        s_objet_argument_1);
                   1041:                                liberation(s_etat_processus,
                   1042:                                        s_objet_argument_2);
                   1043:                                liberation(s_etat_processus,
                   1044:                                        s_objet_argument_3);
                   1045:                                liberation(s_etat_processus,
                   1046:                                        s_objet_resultat);
                   1047: 
                   1048:                                return;
                   1049:                            }
                   1050: 
                   1051:                            (*((real8 *) (*s_objet_resultat).objet)) =
                   1052:                                    gsl_sf_bessel_yl((int) ((*((integer8 *)
                   1053:                                    (*s_objet_argument_2).objet))),
                   1054:                                    (double) ((*((real8 *)
                   1055:                                    (*s_objet_argument_1).objet))));
                   1056:                            break;
                   1057:                        }
                   1058: 
                   1059:                        case 'i' :
                   1060:                        {
                   1061:                            if ((*((integer8 *) (*s_objet_argument_2).objet))
                   1062:                                    < 0)
                   1063:                            {
                   1064:                                (*s_etat_processus).exception =
                   1065:                                        d_ep_resultat_indefini;
                   1066: 
                   1067:                                liberation(s_etat_processus,
                   1068:                                        s_objet_argument_1);
                   1069:                                liberation(s_etat_processus,
                   1070:                                        s_objet_argument_2);
                   1071:                                liberation(s_etat_processus,
                   1072:                                        s_objet_argument_3);
                   1073:                                liberation(s_etat_processus,
                   1074:                                        s_objet_resultat);
                   1075: 
                   1076:                                return;
                   1077:                            }
                   1078: 
                   1079:                            (*((real8 *) (*s_objet_resultat).objet)) =
                   1080:                                    exp(fabs((double) (*((real8 *)
                   1081:                                    (*s_objet_argument_1).objet)))) *
                   1082:                                    gsl_sf_bessel_il_scaled(
                   1083:                                    (int) ((*((integer8 *)
                   1084:                                    (*s_objet_argument_2).objet))),
                   1085:                                    (double) ((*((real8 *)
                   1086:                                    (*s_objet_argument_1).objet))));
                   1087:                            break;
                   1088:                        }
                   1089: 
                   1090:                        case 'k' :
                   1091:                        {
                   1092:                            if (((*((integer8 *) (*s_objet_argument_1).objet))
                   1093:                                    <= 0) || ((*((integer8 *)
                   1094:                                    (*s_objet_argument_2).objet)) < 0))
                   1095:                            {
                   1096:                                (*s_etat_processus).exception =
                   1097:                                        d_ep_resultat_indefini;
                   1098: 
                   1099:                                liberation(s_etat_processus,
                   1100:                                        s_objet_argument_1);
                   1101:                                liberation(s_etat_processus,
                   1102:                                        s_objet_argument_2);
                   1103:                                liberation(s_etat_processus,
                   1104:                                        s_objet_argument_3);
                   1105:                                liberation(s_etat_processus,
                   1106:                                        s_objet_resultat);
                   1107: 
                   1108:                                return;
                   1109:                            }
                   1110: 
                   1111:                            (*((real8 *) (*s_objet_resultat).objet)) =
                   1112:                                    exp(fabs((double) (*((real8 *)
                   1113:                                    (*s_objet_argument_1).objet)))) *
                   1114:                                    gsl_sf_bessel_kl_scaled(
                   1115:                                    (int) ((*((integer8 *)
                   1116:                                    (*s_objet_argument_2).objet))),
                   1117:                                    (double) ((*((real8 *)
                   1118:                                    (*s_objet_argument_1).objet))));
                   1119:                            break;
                   1120:                        }
                   1121:                    }
                   1122:                }
                   1123:                else if (((*s_objet_argument_1).type == NOM) ||
                   1124:                        ((*s_objet_argument_1).type == RPN) ||
                   1125:                        ((*s_objet_argument_1).type == ALG))
                   1126:                {
                   1127:                    creation_expression = d_vrai;
                   1128:                }
                   1129:                else
                   1130:                {
                   1131:                    liberation(s_etat_processus, s_objet_argument_1);
                   1132:                    liberation(s_etat_processus, s_objet_argument_2);
                   1133:                    liberation(s_etat_processus, s_objet_argument_3);
                   1134: 
                   1135:                    (*s_etat_processus).erreur_execution =
                   1136:                            d_ex_erreur_type_argument;
                   1137:                    return;
                   1138:                }
                   1139:            }
                   1140:            else if ((*s_objet_argument_2).type == REL)
                   1141:            {
                   1142:                if ((*s_objet_argument_1).type == INT)
                   1143:                {
                   1144:                    if ((s_objet_resultat = allocation(s_etat_processus, REL))
                   1145:                            == NULL)
                   1146:                    {
                   1147:                        (*s_etat_processus).erreur_systeme =
                   1148:                                d_es_allocation_memoire;
                   1149:                        return;
                   1150:                    }
                   1151: 
                   1152:                    switch((*((unsigned char *) (*s_objet_argument_3).objet)))
                   1153:                    {
                   1154:                        case 'J' :
                   1155:                        {
                   1156:                            if (((*((integer8 *) (*s_objet_argument_1).objet))
                   1157:                                    < 0) || ((*((real8 *)
                   1158:                                    (*s_objet_argument_2).objet)) < 0))
                   1159:                            {
                   1160:                                (*s_etat_processus).exception =
                   1161:                                        d_ep_resultat_indefini;
                   1162: 
                   1163:                                liberation(s_etat_processus,
                   1164:                                        s_objet_argument_1);
                   1165:                                liberation(s_etat_processus,
                   1166:                                        s_objet_argument_2);
                   1167:                                liberation(s_etat_processus,
                   1168:                                        s_objet_argument_3);
                   1169:                                liberation(s_etat_processus,
                   1170:                                        s_objet_resultat);
                   1171: 
                   1172:                                return;
                   1173:                            }
                   1174: 
                   1175:                            (*((real8 *) (*s_objet_resultat).objet)) =
                   1176:                                    gsl_sf_bessel_Jnu((double) ((*((real8 *)
                   1177:                                    (*s_objet_argument_2).objet))),
                   1178:                                    (double) ((*((integer8 *)
                   1179:                                    (*s_objet_argument_1).objet))));
                   1180: 
                   1181:                            break;
                   1182:                        }
                   1183: 
                   1184:                        case 'Y' :
                   1185:                        {
                   1186:                            if (((*((integer8 *) (*s_objet_argument_1).objet))
                   1187:                                    <= 0) || ((*((real8 *)
                   1188:                                    (*s_objet_argument_2).objet)) < 0))
                   1189:                            {
                   1190:                                (*s_etat_processus).exception =
                   1191:                                        d_ep_resultat_indefini;
                   1192: 
                   1193:                                liberation(s_etat_processus,
                   1194:                                        s_objet_argument_1);
                   1195:                                liberation(s_etat_processus,
                   1196:                                        s_objet_argument_2);
                   1197:                                liberation(s_etat_processus,
                   1198:                                        s_objet_argument_3);
                   1199:                                liberation(s_etat_processus,
                   1200:                                        s_objet_resultat);
                   1201: 
                   1202:                                return;
                   1203:                            }
                   1204: 
                   1205:                            (*((real8 *) (*s_objet_resultat).objet)) =
                   1206:                                    gsl_sf_bessel_Ynu((double) ((*((real8 *)
                   1207:                                    (*s_objet_argument_2).objet))),
                   1208:                                    (double) ((*((integer8 *)
                   1209:                                    (*s_objet_argument_1).objet))));
                   1210:                            break;
                   1211:                        }
                   1212: 
                   1213:                        case 'I' :
                   1214:                        {
                   1215:                            if (((*((integer8 *) (*s_objet_argument_1).objet))
                   1216:                                    < 0) || ((*((real8 *)
                   1217:                                    (*s_objet_argument_2).objet)) < 0))
                   1218:                            {
                   1219:                                (*s_etat_processus).exception =
                   1220:                                        d_ep_resultat_indefini;
                   1221: 
                   1222:                                liberation(s_etat_processus,
                   1223:                                        s_objet_argument_1);
                   1224:                                liberation(s_etat_processus,
                   1225:                                        s_objet_argument_2);
                   1226:                                liberation(s_etat_processus,
                   1227:                                        s_objet_argument_3);
                   1228:                                liberation(s_etat_processus,
                   1229:                                        s_objet_resultat);
                   1230: 
                   1231:                                return;
                   1232:                            }
                   1233: 
                   1234:                            (*((real8 *) (*s_objet_resultat).objet)) =
                   1235:                                    gsl_sf_bessel_Inu((double) ((*((real8 *)
                   1236:                                    (*s_objet_argument_2).objet))),
                   1237:                                    (double) ((*((integer8 *)
                   1238:                                    (*s_objet_argument_1).objet))));
                   1239:                            break;
                   1240:                        }
                   1241: 
                   1242:                        case 'K' :
                   1243:                        {
                   1244:                            if (((*((integer8 *) (*s_objet_argument_1).objet))
                   1245:                                    <= 0) || ((*((real8 *)
                   1246:                                    (*s_objet_argument_2).objet)) < 0))
                   1247:                            {
                   1248:                                (*s_etat_processus).exception =
                   1249:                                        d_ep_resultat_indefini;
                   1250: 
                   1251:                                liberation(s_etat_processus,
                   1252:                                        s_objet_argument_1);
                   1253:                                liberation(s_etat_processus,
                   1254:                                        s_objet_argument_2);
                   1255:                                liberation(s_etat_processus,
                   1256:                                        s_objet_argument_3);
                   1257:                                liberation(s_etat_processus,
                   1258:                                        s_objet_resultat);
                   1259: 
                   1260:                                return;
                   1261:                            }
                   1262: 
                   1263:                            (*((real8 *) (*s_objet_resultat).objet)) =
                   1264:                                    gsl_sf_bessel_Knu((double) ((*((real8 *)
                   1265:                                    (*s_objet_argument_2).objet))),
                   1266:                                    (double) ((*((integer8 *)
                   1267:                                    (*s_objet_argument_1).objet))));
                   1268:                            break;
                   1269:                        }
                   1270: 
                   1271:                        default :
                   1272:                        {
                   1273:                            (*s_etat_processus).exception =
                   1274:                                    d_ep_resultat_indefini;
                   1275: 
                   1276:                            liberation(s_etat_processus, s_objet_argument_1);
                   1277:                            liberation(s_etat_processus, s_objet_argument_2);
                   1278:                            liberation(s_etat_processus, s_objet_argument_3);
                   1279:                            liberation(s_etat_processus, s_objet_resultat);
                   1280: 
                   1281:                            return;
                   1282:                            break;
                   1283:                        }
                   1284:                    }
                   1285:                }
                   1286:                else if ((*s_objet_argument_1).type == REL)
                   1287:                {
                   1288:                    if ((s_objet_resultat = allocation(s_etat_processus, REL))
                   1289:                            == NULL)
                   1290:                    {
                   1291:                        (*s_etat_processus).erreur_systeme =
                   1292:                                d_es_allocation_memoire;
                   1293:                        return;
                   1294:                    }
                   1295: 
                   1296:                    switch((*((unsigned char *) (*s_objet_argument_3).objet)))
                   1297:                    {
                   1298:                        case 'J' :
                   1299:                        {
                   1300:                            if (((*((real8 *) (*s_objet_argument_1).objet))
                   1301:                                    < 0) || ((*((real8 *)
                   1302:                                    (*s_objet_argument_2).objet)) < 0))
                   1303:                            {
                   1304:                                (*s_etat_processus).exception =
                   1305:                                        d_ep_resultat_indefini;
                   1306: 
                   1307:                                liberation(s_etat_processus,
                   1308:                                        s_objet_argument_1);
                   1309:                                liberation(s_etat_processus,
                   1310:                                        s_objet_argument_2);
                   1311:                                liberation(s_etat_processus,
                   1312:                                        s_objet_argument_3);
                   1313:                                liberation(s_etat_processus,
                   1314:                                        s_objet_resultat);
                   1315: 
                   1316:                                return;
                   1317:                            }
                   1318: 
                   1319:                            (*((real8 *) (*s_objet_resultat).objet)) =
                   1320:                                    gsl_sf_bessel_Jnu((double) ((*((real8 *)
                   1321:                                    (*s_objet_argument_2).objet))),
                   1322:                                    (double) ((*((real8 *)
                   1323:                                    (*s_objet_argument_1).objet))));
                   1324:                            break;
                   1325:                        }
                   1326: 
                   1327:                        case 'Y' :
                   1328:                        {
                   1329:                            if (((*((real8 *) (*s_objet_argument_1).objet))
                   1330:                                    <= 0) || ((*((real8 *)
                   1331:                                    (*s_objet_argument_2).objet)) < 0))
                   1332:                            {
                   1333:                                (*s_etat_processus).exception =
                   1334:                                        d_ep_resultat_indefini;
                   1335: 
                   1336:                                liberation(s_etat_processus,
                   1337:                                        s_objet_argument_1);
                   1338:                                liberation(s_etat_processus,
                   1339:                                        s_objet_argument_2);
                   1340:                                liberation(s_etat_processus,
                   1341:                                        s_objet_argument_3);
                   1342:                                liberation(s_etat_processus,
                   1343:                                        s_objet_resultat);
                   1344: 
                   1345:                                return;
                   1346:                            }
                   1347: 
                   1348:                            (*((real8 *) (*s_objet_resultat).objet)) =
                   1349:                                    gsl_sf_bessel_Yn((double) ((*((real8 *)
                   1350:                                    (*s_objet_argument_2).objet))),
                   1351:                                    (double) ((*((real8 *)
                   1352:                                    (*s_objet_argument_1).objet))));
                   1353:                            break;
                   1354:                        }
                   1355: 
                   1356:                        case 'I' :
                   1357:                        {
                   1358:                            if (((*((real8 *) (*s_objet_argument_1).objet))
                   1359:                                    < 0) || ((*((real8 *)
                   1360:                                    (*s_objet_argument_2).objet)) < 0))
                   1361:                            {
                   1362:                                (*s_etat_processus).exception =
                   1363:                                        d_ep_resultat_indefini;
                   1364: 
                   1365:                                liberation(s_etat_processus,
                   1366:                                        s_objet_argument_1);
                   1367:                                liberation(s_etat_processus,
                   1368:                                        s_objet_argument_2);
                   1369:                                liberation(s_etat_processus,
                   1370:                                        s_objet_argument_3);
                   1371:                                liberation(s_etat_processus,
                   1372:                                        s_objet_resultat);
                   1373: 
                   1374:                                return;
                   1375:                            }
                   1376: 
                   1377:                            (*((real8 *) (*s_objet_resultat).objet)) =
                   1378:                                    gsl_sf_bessel_In((double) ((*((real8 *)
                   1379:                                    (*s_objet_argument_2).objet))),
                   1380:                                    (double) ((*((real8 *)
                   1381:                                    (*s_objet_argument_1).objet))));
                   1382:                            break;
                   1383:                        }
                   1384: 
                   1385:                        case 'K' :
                   1386:                        {
                   1387:                            if (((*((real8 *) (*s_objet_argument_1).objet))
                   1388:                                    <= 0) || ((*((real8 *)
                   1389:                                    (*s_objet_argument_2).objet)) < 0))
                   1390:                            {
                   1391:                                (*s_etat_processus).exception =
                   1392:                                        d_ep_resultat_indefini;
                   1393: 
                   1394:                                liberation(s_etat_processus,
                   1395:                                        s_objet_argument_1);
                   1396:                                liberation(s_etat_processus,
                   1397:                                        s_objet_argument_2);
                   1398:                                liberation(s_etat_processus,
                   1399:                                        s_objet_argument_3);
                   1400:                                liberation(s_etat_processus,
                   1401:                                        s_objet_resultat);
                   1402: 
                   1403:                                return;
                   1404:                            }
                   1405: 
                   1406:                            (*((real8 *) (*s_objet_resultat).objet)) =
                   1407:                                    gsl_sf_bessel_Kn((double) ((*((real8 *)
                   1408:                                    (*s_objet_argument_2).objet))),
                   1409:                                    (double) ((*((real8 *)
                   1410:                                    (*s_objet_argument_1).objet))));
                   1411:                            break;
                   1412:                        }
                   1413: 
                   1414:                        default :
                   1415:                        {
                   1416:                            (*s_etat_processus).exception =
                   1417:                                    d_ep_resultat_indefini;
                   1418: 
                   1419:                            liberation(s_etat_processus, s_objet_argument_1);
                   1420:                            liberation(s_etat_processus, s_objet_argument_2);
                   1421:                            liberation(s_etat_processus, s_objet_argument_3);
                   1422:                            liberation(s_etat_processus, s_objet_resultat);
                   1423: 
                   1424:                            return;
                   1425:                            break;
                   1426:                        }
                   1427:                    }
                   1428:                }
                   1429:                else
                   1430:                {
                   1431:                    liberation(s_etat_processus, s_objet_argument_1);
                   1432:                    liberation(s_etat_processus, s_objet_argument_2);
                   1433:                    liberation(s_etat_processus, s_objet_argument_3);
                   1434: 
                   1435:                    (*s_etat_processus).erreur_execution =
                   1436:                            d_ex_erreur_type_argument;
                   1437:                    return;
                   1438:                }
                   1439:            }
                   1440:            else if (((*s_objet_argument_2).type == NOM) ||
                   1441:                    ((*s_objet_argument_2).type == RPN) ||
                   1442:                    ((*s_objet_argument_2).type == ALG))
                   1443:            {
                   1444:                creation_expression = d_vrai;
                   1445:            }
                   1446:            else
                   1447:            {
                   1448:                liberation(s_etat_processus, s_objet_argument_1);
                   1449:                liberation(s_etat_processus, s_objet_argument_2);
                   1450:                liberation(s_etat_processus, s_objet_argument_3);
                   1451: 
                   1452:                (*s_etat_processus).erreur_execution =
                   1453:                        d_ex_erreur_type_argument;
                   1454:                return;
                   1455:            }
                   1456:        }
                   1457:        else
                   1458:        {
                   1459:            liberation(s_etat_processus, s_objet_argument_1);
                   1460:            liberation(s_etat_processus, s_objet_argument_2);
                   1461:            liberation(s_etat_processus, s_objet_argument_3);
                   1462: 
                   1463:            (*s_etat_processus).erreur_execution = d_ex_argument_invalide;
                   1464:            return;
                   1465:        }
                   1466:    }
                   1467:    else if (((*s_objet_argument_3).type == NOM) ||
                   1468:            ((*s_objet_argument_3).type == RPN) ||
                   1469:            ((*s_objet_argument_3).type == ALG))
                   1470:    {
                   1471:        creation_expression = d_vrai;
                   1472:    }
                   1473:    else
                   1474:    {
                   1475:        liberation(s_etat_processus, s_objet_argument_1);
                   1476:        liberation(s_etat_processus, s_objet_argument_2);
                   1477:        liberation(s_etat_processus, s_objet_argument_3);
                   1478: 
                   1479:        (*s_etat_processus).erreur_execution = d_ex_erreur_type_argument;
                   1480:        return;
                   1481:    }
                   1482: 
                   1483:    if (creation_expression == d_vrai)
                   1484:    {
                   1485:        if ((s_copie_argument_1 = copie_objet(s_etat_processus,
                   1486:                s_objet_argument_1, 'N')) == NULL)
                   1487:        {
                   1488:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1489:            return;
                   1490:        }
                   1491: 
                   1492:        if ((s_copie_argument_2 = copie_objet(s_etat_processus,
                   1493:                s_objet_argument_2, 'N')) == NULL)
                   1494:        {
                   1495:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1496:            return;
                   1497:        }
                   1498: 
                   1499:        if ((s_copie_argument_3 = copie_objet(s_etat_processus,
                   1500:                s_objet_argument_3, 'N')) == NULL)
                   1501:        {
                   1502:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1503:            return;
                   1504:        }
                   1505: 
                   1506:        if (((*s_copie_argument_1).type == RPN) ||
                   1507:                ((*s_copie_argument_2).type == RPN) ||
                   1508:                ((*s_copie_argument_3).type == RPN))
                   1509:        {
                   1510:            if ((s_objet_resultat = allocation(s_etat_processus, RPN))
                   1511:                    == NULL)
                   1512:            {
                   1513:                (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1514:                return;
                   1515:            }
                   1516:        }
                   1517:        else
                   1518:        {
                   1519:            if ((s_objet_resultat = allocation(s_etat_processus, ALG))
                   1520:                    == NULL)
                   1521:            {
                   1522:                (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1523:                return;
                   1524:            }
                   1525:        }
                   1526: 
                   1527:        if (((*s_objet_resultat).objet =
                   1528:                allocation_maillon(s_etat_processus)) == NULL)
                   1529:        {
                   1530:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1531:            return;
                   1532:        }
                   1533: 
                   1534:        l_element_courant = (*s_objet_resultat).objet;
                   1535: 
                   1536:        if (((*l_element_courant).donnee = allocation(s_etat_processus, FCT))
                   1537:                == NULL)
                   1538:        {
                   1539:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1540:            return;
                   1541:        }
                   1542: 
                   1543:        (*((struct_fonction *) (*(*l_element_courant).donnee).objet))
                   1544:                .nombre_arguments = 0;
                   1545:        (*((struct_fonction *) (*(*l_element_courant).donnee).objet))
                   1546:                .fonction = instruction_vers_niveau_superieur;
                   1547: 
                   1548:        if (((*((struct_fonction *) (*(*l_element_courant).donnee).objet))
                   1549:                .nom_fonction = malloc(3 * sizeof(unsigned char))) == NULL)
                   1550:        {
                   1551:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1552:            return;
                   1553:        }
                   1554: 
                   1555:        strcpy((*((struct_fonction *) (*(*l_element_courant).donnee).objet))
                   1556:                .nom_fonction, "<<");
                   1557: 
                   1558:        if (((*s_copie_argument_3).type == ALG) ||
                   1559:                ((*s_copie_argument_3).type == RPN))
                   1560:        {
                   1561: 
                   1562:            l_element_atome = (struct_liste_chainee *)
                   1563:                    (*s_copie_argument_3).objet;
                   1564: 
                   1565:            i = 0;
                   1566: 
                   1567:            while(l_element_atome != NULL)
                   1568:            {
                   1569:                i++;
                   1570:                l_element_atome = (*l_element_atome).suivant;
                   1571:            }
                   1572: 
                   1573:            if (i < 3)
                   1574:            {
                   1575:                if (((*l_element_courant).suivant =
                   1576:                        allocation_maillon(s_etat_processus)) == NULL)
                   1577:                {
                   1578:                    (*s_etat_processus).erreur_systeme =
                   1579:                            d_es_allocation_memoire;
                   1580:                    return;
                   1581:                }
                   1582: 
                   1583:                l_element_courant = (*l_element_courant).suivant;
                   1584:                (*l_element_courant).donnee = s_copie_argument_3;
                   1585:            }
                   1586:            else
                   1587:            {
                   1588:                (*l_element_courant).suivant = (*((struct_liste_chainee *)
                   1589:                        (*s_copie_argument_3).objet)).suivant;
                   1590: 
                   1591:                l_element_precedent = NULL;
                   1592:                l_element_courant = (*l_element_courant).suivant;
                   1593: 
                   1594:                liberation(s_etat_processus,
                   1595:                        (*((struct_liste_chainee *) (*s_copie_argument_3)
                   1596:                        .objet)).donnee);
                   1597:                free((*s_copie_argument_3).objet);
                   1598:                free(s_copie_argument_3);
                   1599: 
                   1600:                while((*l_element_courant).suivant != NULL)
                   1601:                {
                   1602:                    l_element_precedent = l_element_courant;
                   1603:                    l_element_courant = (*l_element_courant).suivant;
                   1604:                }
                   1605: 
                   1606:                liberation(s_etat_processus, (*l_element_courant).donnee);
                   1607:                free(l_element_courant);
                   1608: 
                   1609:                l_element_courant = l_element_precedent;
                   1610:            }
                   1611:        }
                   1612:        else
                   1613:        {
                   1614:            if (((*l_element_courant).suivant =
                   1615:                    allocation_maillon(s_etat_processus)) == NULL)
                   1616:            {
                   1617:                (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1618:                return;
                   1619:            }
                   1620: 
                   1621:            l_element_courant = (*l_element_courant).suivant;
                   1622:            (*l_element_courant).donnee = s_copie_argument_3;
                   1623:        }
                   1624: 
                   1625:        if (((*s_copie_argument_2).type == ALG) ||
                   1626:                ((*s_copie_argument_2).type == RPN))
                   1627:        {
                   1628:            l_element_atome = (struct_liste_chainee *)
                   1629:                    (*s_copie_argument_2).objet;
                   1630: 
                   1631:            i = 0;
                   1632: 
                   1633:            while(l_element_atome != NULL)
                   1634:            {
                   1635:                i++;
                   1636:                l_element_atome = (*l_element_atome).suivant;
                   1637:            }
                   1638: 
                   1639:            if (i < 3)
                   1640:            {
                   1641:                if (((*l_element_courant).suivant =
                   1642:                        allocation_maillon(s_etat_processus)) == NULL)
                   1643:                {
                   1644:                    (*s_etat_processus).erreur_systeme =
                   1645:                            d_es_allocation_memoire;
                   1646:                    return;
                   1647:                }
                   1648: 
                   1649:                l_element_courant = (*l_element_courant).suivant;
                   1650:                (*l_element_courant).donnee = s_copie_argument_2;
                   1651:            }
                   1652:            else
                   1653:            {
                   1654:                (*l_element_courant).suivant = (*((struct_liste_chainee *)
                   1655:                        (*s_copie_argument_2).objet)).suivant;
                   1656: 
                   1657:                l_element_courant = (*l_element_courant).suivant;
                   1658:                l_element_precedent = NULL;
                   1659: 
                   1660:                liberation(s_etat_processus,
                   1661:                        (*((struct_liste_chainee *) (*s_copie_argument_2)
                   1662:                        .objet)).donnee);
                   1663:                free((*s_copie_argument_2).objet);
                   1664:                free(s_copie_argument_2);
                   1665: 
                   1666:                while((*l_element_courant).suivant != NULL)
                   1667:                {
                   1668:                    l_element_precedent = l_element_courant;
                   1669:                    l_element_courant = (*l_element_courant).suivant;
                   1670:                }
                   1671: 
                   1672:                liberation(s_etat_processus, (*l_element_courant).donnee);
                   1673:                free(l_element_courant);
                   1674: 
                   1675:                l_element_courant = l_element_precedent;
                   1676:            }
                   1677:        }
                   1678:        else
                   1679:        {
                   1680:            if (((*l_element_courant).suivant =
                   1681:                    allocation_maillon(s_etat_processus)) == NULL)
                   1682:            {
                   1683:                (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1684:                return;
                   1685:            }
                   1686: 
                   1687:            l_element_courant = (*l_element_courant).suivant;
                   1688:            (*l_element_courant).donnee = s_copie_argument_2;
                   1689:        }
                   1690: 
                   1691:        if (((*s_copie_argument_1).type == ALG) ||
                   1692:                ((*s_copie_argument_1).type == RPN))
                   1693:        {
                   1694:            l_element_atome = (struct_liste_chainee *)
                   1695:                    (*s_copie_argument_1).objet;
                   1696: 
                   1697:            i = 0;
                   1698: 
                   1699:            while(l_element_atome != NULL)
                   1700:            {
                   1701:                i++;
                   1702:                l_element_atome = (*l_element_atome).suivant;
                   1703:            }
                   1704: 
                   1705:            if (i < 3)
                   1706:            {
                   1707:                if (((*l_element_courant).suivant =
                   1708:                        allocation_maillon(s_etat_processus)) == NULL)
                   1709:                {
                   1710:                    (*s_etat_processus).erreur_systeme =
                   1711:                            d_es_allocation_memoire;
                   1712:                    return;
                   1713:                }
                   1714: 
                   1715:                l_element_courant = (*l_element_courant).suivant;
                   1716:                (*l_element_courant).donnee = s_copie_argument_1;
                   1717:            }
                   1718:            else
                   1719:            {
                   1720:                (*l_element_courant).suivant = (*((struct_liste_chainee *)
                   1721:                        (*s_copie_argument_1).objet)).suivant;
                   1722: 
                   1723:                l_element_courant = (*l_element_courant).suivant;
                   1724:                l_element_precedent = NULL;
                   1725: 
                   1726:                liberation(s_etat_processus,
                   1727:                        (*((struct_liste_chainee *) (*s_copie_argument_1)
                   1728:                        .objet)).donnee);
                   1729:                free((*s_copie_argument_1).objet);
                   1730:                free(s_copie_argument_1);
                   1731: 
                   1732:                while((*l_element_courant).suivant != NULL)
                   1733:                {
                   1734:                    l_element_precedent = l_element_courant;
                   1735:                    l_element_courant = (*l_element_courant).suivant;
                   1736:                }
                   1737: 
                   1738:                liberation(s_etat_processus, (*l_element_courant).donnee);
                   1739:                free(l_element_courant);
                   1740: 
                   1741:                l_element_courant = l_element_precedent;
                   1742:            }
                   1743:        }
                   1744:        else
                   1745:        {
                   1746:            if (((*l_element_courant).suivant =
                   1747:                    allocation_maillon(s_etat_processus)) == NULL)
                   1748:            {
                   1749:                (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1750:                return;
                   1751:            }
                   1752: 
                   1753:            l_element_courant = (*l_element_courant).suivant;
                   1754:            (*l_element_courant).donnee = s_copie_argument_1;
                   1755:        }
                   1756: 
                   1757:        if (((*l_element_courant).suivant =
                   1758:                allocation_maillon(s_etat_processus)) == NULL)
                   1759:        {
                   1760:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1761:            return;
                   1762:        }
                   1763: 
                   1764:        l_element_courant = (*l_element_courant).suivant;
                   1765: 
                   1766:        if (((*l_element_courant).donnee =
                   1767:                allocation(s_etat_processus, FCT)) == NULL)
                   1768:        {
                   1769:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1770:            return;
                   1771:        }
                   1772: 
                   1773:        (*((struct_fonction *) (*(*l_element_courant).donnee).objet))
                   1774:                .nombre_arguments = 3;
                   1775:        (*((struct_fonction *) (*(*l_element_courant).donnee).objet))
                   1776:                .fonction = instruction_bessel;
                   1777: 
                   1778:        if (((*((struct_fonction *) (*(*l_element_courant).donnee).objet))
                   1779:                .nom_fonction = malloc(7 * sizeof(unsigned char))) == NULL)
                   1780:        {
                   1781:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1782:            return;
                   1783:        }
                   1784: 
                   1785:        strcpy((*((struct_fonction *) (*(*l_element_courant).donnee).objet))
                   1786:                .nom_fonction, "BESSEL");
                   1787: 
                   1788:        if (((*l_element_courant).suivant =
                   1789:                allocation_maillon(s_etat_processus)) == NULL)
                   1790:        {
                   1791:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1792:            return;
                   1793:        }
                   1794: 
                   1795:        l_element_courant = (*l_element_courant).suivant;
                   1796: 
                   1797:        if (((*l_element_courant).donnee = (struct_objet *)
                   1798:                allocation(s_etat_processus, FCT)) == NULL)
                   1799:        {
                   1800:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1801:            return;
                   1802:        }
                   1803: 
                   1804:        (*((struct_fonction *) (*(*l_element_courant).donnee).objet))
                   1805:                .nombre_arguments = 0;
                   1806:        (*((struct_fonction *) (*(*l_element_courant).donnee).objet))
                   1807:                .fonction = instruction_vers_niveau_inferieur;
                   1808: 
                   1809:        if (((*((struct_fonction *) (*(*l_element_courant).donnee).objet))
                   1810:                .nom_fonction = malloc(3 * sizeof(unsigned char))) == NULL)
                   1811:        {
                   1812:            (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   1813:            return;
                   1814:        }
                   1815: 
                   1816:        strcpy((*((struct_fonction *) (*(*l_element_courant).donnee).objet))
                   1817:                .nom_fonction, ">>");
                   1818: 
                   1819:        (*l_element_courant).suivant = NULL;
                   1820:    }
                   1821: 
                   1822:    if (empilement(s_etat_processus, &((*s_etat_processus).l_base_pile),
                   1823:            s_objet_resultat) == d_erreur)
                   1824:    {
                   1825:        return;
                   1826:    }
                   1827: 
                   1828:    liberation(s_etat_processus, s_objet_argument_1);
                   1829:    liberation(s_etat_processus, s_objet_argument_2);
                   1830:    liberation(s_etat_processus, s_objet_argument_3);
                   1831: 
                   1832:    return;
                   1833: }
                   1834: 
1.11      bertrand 1835: 
                   1836: /*
                   1837: ================================================================================
                   1838:   Fonction 'backtrace'
                   1839: ================================================================================
                   1840:   Entrées :
                   1841: --------------------------------------------------------------------------------
                   1842:   Sorties :
                   1843: --------------------------------------------------------------------------------
                   1844:   Effets de bord : néant
                   1845: ================================================================================
                   1846: */
                   1847: 
                   1848: void
                   1849: instruction_backtrace(struct_processus *s_etat_processus)
                   1850: {
                   1851:    (*s_etat_processus).erreur_execution = d_ex;
                   1852: 
                   1853:    if ((*s_etat_processus).affichage_arguments == 'Y')
                   1854:    {
                   1855:        printf("\n  BACKTRACE ");
                   1856: 
                   1857:        if ((*s_etat_processus).langue == 'F')
                   1858:        {
                   1859:            printf("(affichage de la pile système)\n\n");
                   1860:            printf("  Aucun argument\n");
                   1861:        }
                   1862:        else
                   1863:        {
                   1864:            printf("(print system stack)\n\n");
                   1865:            printf("  No argument\n");
                   1866:        }
                   1867: 
                   1868:        return;
                   1869:    }
                   1870:    else if ((*s_etat_processus).test_instruction == 'Y')
                   1871:    {
                   1872:        (*s_etat_processus).nombre_arguments = -1;
                   1873:        return;
                   1874:    }
                   1875: 
                   1876:    if (test_cfsf(s_etat_processus, 31) == d_vrai)
                   1877:    {
                   1878:        if (empilement_pile_last(s_etat_processus, 0) == d_erreur)
                   1879:        {
                   1880:            return;
                   1881:        }
                   1882:    }
                   1883: 
                   1884:    trace(s_etat_processus, stdout);
                   1885: 
                   1886:    return;
                   1887: }
                   1888: 
1.1       bertrand 1889: // vim: ts=4

CVSweb interface <joel.bertrand@systella.fr>