1 /****************************************************************************/
3 /* Chaine de CAO & VLSI AVERTEC */
5 /* Produit : AVERTEC global tools */
6 /* Fichier : vcd_parse_core.c */
8 /* © copyright 2000 AVERTEC */
9 /* Tous droits reserves */
11 /* Auteur(s) : Antony PINTO */
13 /****************************************************************************/
15 #include "vcd_parse_core.h"
17 static ht
*CDL_TO_VCD
= NULL
;
18 static ht
*VCD_TO_CDL
= NULL
;
19 static int PARSE_DONE
= 0;
21 static int readline(FILE *fd
);
23 /****************************************************************************/
24 /*{{{ Internal functions */
25 /****************************************************************************/
29 /****************************************************************************/
30 static inline int readline(FILE *fd
)
32 char bufcdl
[1024], bufvcd
[1024], *cdl
, *vcd
;
34 if (fscanf(fd
,"%s -> %s\n",bufvcd
,bufcdl
) == 2)
36 vcd
= namealloc(bufvcd
);
37 cdl
= namealloc(bufcdl
);
38 vcd_newVCDToCDLName(vcd
,cdl
);
39 vcd_newCDLToVCDName(cdl
,vcd
);
45 /*}}}************************************************************************/
46 /*}}}************************************************************************/
47 /*{{{ External functions */
48 /****************************************************************************/
49 /*{{{ vcd_parse_core() */
52 /****************************************************************************/
53 void vcd_parse_core(char *filename
, char *ext
)
62 VCD_TO_CDL
= addht(100);
63 CDL_TO_VCD
= addht(100);
64 fd
= mbkfopen(filename
,ext
,"r");
71 /*}}}************************************************************************/
72 /*{{{ vcd_cdl_parsed() */
75 /****************************************************************************/
76 int vcd_cdl_parsed(void)
81 /*}}}************************************************************************/
82 /*{{{ vcd_newCDLToVCDName() */
85 /****************************************************************************/
86 void vcd_newCDLToVCDName(char *cdl
, char *vcd
)
88 addhtitem(CDL_TO_VCD
,cdl
,(long)vcd
);
91 /*}}}************************************************************************/
92 /*{{{ vcd_getVCDFromCDLName() */
95 /****************************************************************************/
96 char *vcd_getVCDFromCDLName(char *cdl
)
101 (res
= (char *)gethtitem(CDL_TO_VCD
,cdl
)) == (char *)EMPTYHT
)
107 /*}}}************************************************************************/
108 /*{{{ vcd_newVCDToCDLName() */
111 /****************************************************************************/
112 void vcd_newVCDToCDLName(char *vcd
, char *cdl
)
114 addhtitem(VCD_TO_CDL
,vcd
,(long)cdl
);
117 /*}}}************************************************************************/
118 /*{{{ vcd_getCDLFromVCDName() */
121 /****************************************************************************/
122 char *vcd_getCDLFromVCDName(char *vcd
)
127 (res
= (char *)gethtitem(VCD_TO_CDL
,vcd
)) == (char *)EMPTYHT
)
133 /*}}}************************************************************************/
134 /*}}}************************************************************************/
136 /*{{{ Test functions */
137 /****************************************************************************/
141 /****************************************************************************/
142 int main(int argc
, char *argv
[])
144 vcd_parse_core(argv
[1]);
149 /*}}}************************************************************************/
150 /*}}}************************************************************************/