Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / elp / elp_error.c
1 /****************************************************************************/
2 /* */
3 /* Chaine de CAO & VLSI Alliance */
4 /* */
5 /* Produit : ELP Verison 1 */
6 /* Fichier : elp_error.c */
7 /* */
8 /* (c) copyright 1991-1995 Laboratoire MASI equipe CAO & VLSI */
9 /* Tous droits reserves */
10 /* Support : e-mail cao-vlsi@masi.ibp.fr */
11 /* */
12 /* Auteur(s) : Payam KIANI */
13 /* */
14 /****************************************************************************/
15 /* traitement des erreur elp */
16 /****************************************************************************/
17
18 #include <stdarg.h>
19 #include ELP_H
20
21
22 /*****************************************************************************/
23 /* fonction Error() */
24 /* affichage et gestion des messages. Les erreurs de la bibliotheque ELP n' */
25 /* arretent pas l'execution du programme. Ce sont juste des avertissements. */
26 /* C'est a celui qui travaille avec de faire ce qu'il en veut! */
27 /* */
28 /* Parametres en entree: */
29 /* -------------------- */
30 /* 1) errnum : le numero de l'erreur (> 1000 pour eviter les conflits). */
31 /* 2) va_alist: la fonction est a nombre d'arguments variables. La vari- */
32 /* able va_alist contient tous les autres arguments que le */
33 /* numero de l'erreur. */
34 /* */
35 /* Parametre en sortie: */
36 /* ------------------- */
37 /* La fonction renvoie le numero de l'erreur. */
38 /*****************************************************************************/
39 elperrorFCT short elpError(short errnum,...)
40 {
41 va_list arg ;
42 char *pt ;
43 char *ptx ;
44 int line ;
45
46 if(elpLang == elpENGLISH)
47 fprintf(stderr,"\n!!! elp error: %d !!!\n",errnum) ;
48 else
49 fprintf(stderr,"\n!!! erreur elp : %d !!!\n",errnum) ;
50
51 va_start(arg, errnum) ;
52
53 switch(errnum)
54 {
55 /* fichier techno ne pouvant pas s'ouvrir */
56 case 1000: if(elpLang == elpENGLISH)
57 fprintf(stderr,"can not open the file %s\n",
58 va_arg(arg,char *)) ;
59 else
60 fprintf(stderr,"le fichier %s ne peut pas s'ouvrir\n",
61 va_arg(arg,char *)) ;
62 break ;
63
64 /* erreur de syntaxe dans le fichier techno */
65 case 1001: pt = va_arg(arg,char *) ;
66 line = va_arg(arg,int) ;
67 if(elpLang == elpENGLISH)
68 fprintf(stderr,"syntax error on %s at line %d\n",pt,line) ;
69 else
70 fprintf(stderr,"erreur de syntaxe sur %s ligne %d\n",pt,line) ;
71 break ;
72
73 /* erreur dans le parser */
74 case 1002: if(elpLang == elpENGLISH)
75 fprintf(stderr,"loading error: %s\n",va_arg(arg,char *)) ;
76 else
77 fprintf(stderr,"erreur de chargement: %s\n",
78 va_arg(arg,char *)) ;
79 break ;
80
81 /* fichier techno ne pouvant pas etre ferme */
82 case 1003: if(elpLang == elpENGLISH)
83 fprintf(stderr,"can not close the file %s\n",
84 va_arg(arg,char *)) ;
85 else
86 fprintf(stderr,"le fichier %s ne peut pas se ferme\n",
87 va_arg(arg,char *)) ;
88 break ;
89
90 /* paramtetre obligatoire manquant */
91 case 1004: if(elpLang == elpENGLISH)
92 fprintf(stderr,"incomplete technology file %s\n",
93 va_arg(arg,char *)) ;
94 else
95 fprintf(stderr,"fichier techno incomplet %s\n",
96 va_arg(arg,char *)) ;
97 break ;
98
99 case 1005: if(elpLang == elpENGLISH)
100 fprintf(stderr,"no %s capacitance parameters\n",
101 va_arg(arg,char *)) ;
102 else
103 fprintf(stderr,"pas de parametre de capacite de %s\n",
104 va_arg(arg,char *)) ;
105 break ;
106 case 1006: if(elpLang == elpENGLISH)
107 fprintf(stderr,"bad transistor model name in %s \n",
108 va_arg(arg,char *)) ;
109 else
110 fprintf(stderr,"mauvais nom de modele de transistor dans %s\n",
111 va_arg(arg,char *)) ;
112 break ;
113 case 1007: if(elpLang == elpENGLISH)
114 fprintf(stderr,"no model for transistor %s \n",
115 va_arg(arg,char *)) ;
116 else
117 fprintf(stderr,"pas de modele pour le transistor %s\n",
118 va_arg(arg,char *)) ;
119 break ;
120 case 1008: pt = va_arg(arg,char *) ;
121 ptx = va_arg(arg,char *) ;
122 if(elpLang == elpENGLISH)
123 fprintf(stderr,"no model for transistor %s use %s\n",pt,ptx) ;
124 else
125 fprintf(stderr,"pas de modele pour le transistor %s utilisation de %s\n",pt,ptx) ;
126 break ;
127 case 1009: if(elpLang == elpENGLISH)
128 fprintf(stderr,"can't get model for transistor %s \n",
129 va_arg(arg,char *)) ;
130 else
131 fprintf(stderr,"obtention de modele impossible pour le transistor %s\n",
132 va_arg(arg,char *)) ;
133 break ;
134 }
135
136 fflush(stderr) ;
137 return errnum ;
138 }