SCR/AL1 - TOME III. Les librairies utilitaires
Syntax
char **A_init(string)
char *string;
Description
Initialise une liste d'arguments : le string présenté est décomposé en une suite de "mots" et placé dans le tableau A_VAL alloué.
Les séparateurs entre les mots sont par défaut les blancs, les tabs, les virgules et les returns (\n). La variable char *A_SEPS est un pointeur vers la liste des séparateurs et peut être modifiée par l'utilisateur.
Lorsque @filename est rencontré, le fichier filename est utilisé pour poursuivre la liste des arguments. A la fin du fichier, la lecture de la suite du string continue.
Lorsque $nom est rencontré, la fonction A_expand() à définir par l'utilisateur est appelé et son output est utilisé pour la suite des arguments. La lecture du string reprend ensuite. La fonction utilisateur A_iexpand() est appelée en début de processus pour permettre l'initialisation du processus de traduction des macros. Si ces deux fonctions ne sont pas définies par l'utilisateur, le programme utilise deux fonctions par défaut.
La fonction alloue un tableau de pointeur A_VAL de type char **. Ce tableau est terminé par un pointeur NULL. Le nombre d'arguments est indiqué par la variable A_NB_VAL.
Le tableau A_VAL est retourné par la fonction, permettant à l'utilisateur d'effectuer plusieurs fois A_init dans le même programme avec des arguments différents. Au prochain appel, A_VAL est réinitialisé pour la nouvelle interprétation, mais pas détruit (pas de free).
Exemple
Appel :
A_init("-iv file1, *.c file2");
Résultat :
A_VAL === {
"-iv",
"file1",
"ex.c",
"ex2.c",
"file3",
NULL
}
A_NB_VAL === 5
Voir également
A_initv()
A_find(args, string)
A_free(args)
A_help(char **args, int (*fn)(void))
char **A_init(string)
char **A_initv(argv)
A_nb(args, pos)
A_to_be_exp(str)
Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be