version 1.1, 2017/06/29 12:32:57
|
version 1.2, 2017/06/29 14:54:42
|
Line 5
|
Line 5
|
// Les objets de type ensemble sont délimités par ([ ]) et ne contiennent |
// Les objets de type ensemble sont délimités par ([ ]) et ne contiennent |
// que des entiers. |
// que des entiers. |
|
|
|
// Attention : ces fonctions sont à écrire directement en C et non |
|
// en RPL/C car elles interviennent dans le noyau RPL/2. |
|
|
declareTypeExtension(parse) |
declareTypeExtension(parse) |
if ((*rptr) == '(') |
if ((*rptr) == '(') |
{ |
{ |
Line 60 declareTypeExtension(parse)
|
Line 63 declareTypeExtension(parse)
|
endTypeExtension |
endTypeExtension |
|
|
declareTypeExtension(new) |
declareTypeExtension(new) |
endTypeExtension |
// Si le premier caractère de la chaîne est '(' et que le dernier est ')', |
|
// on les retire. |
|
|
declareTypeExtension(dup) |
char *tmp; |
|
|
|
printf("<1>\n"); |
|
if (((*iptr) == '(') && ((*(iptr + strlen(iptr) - 1)) == ')')) |
|
{ |
|
if ((tmp = malloc((strlen(iptr) + 1) * sizeof(unsigned char))) |
|
== NULL) |
|
{ |
|
printf("<2>\n"); |
|
typeError; |
|
} |
|
printf("<3>\n"); |
|
|
|
// Sauvegarde de l'instruction courante. |
|
strcpy(tmp, iptr); |
|
|
|
// Création d'une nouvelle instruction courante amputée de ses premier |
|
// et dernier caractères. |
|
memmove(iptr, iptr + 1, strlen(iptr) - 2); |
|
*(iptr + strlen(iptr) - 2) = 0; |
|
|
|
printf("<4>\n"); |
|
searchType; |
|
printf("<5>\n"); |
|
|
|
// Restauration de l'instruction courante |
|
free(iptr); |
|
printf("<6>\n"); |
|
iptr = tmp; |
|
|
|
printf("<7>\n"); |
|
if (((*arg) = malloc(sizeof(integer8))) == NULL) |
|
{ |
|
typeError; |
|
} |
|
|
|
(*((integer8 *) arg)) = 10; |
|
printf("<8>\n"); |
|
instruction_drop(s_etat_processus); |
|
printf("<9>\n"); |
|
typeFound(ISET); |
|
} |
|
|
|
printf("<10>\n"); |
|
typeError; |
endTypeExtension |
endTypeExtension |
|
|
declareTypeExtension(disp) |
declareTypeExtension(disp) |
|
(*arg) = malloc(10); |
|
strcpy((*arg), "ici"); |
|
endTypeExtension |
|
|
|
declareTypeExtension(dup) |
endTypeExtension |
endTypeExtension |
|
|
declareTypeExtension(drop) |
declareTypeExtension(drop) |