Subversion Repositories Vertical

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /* $Id: cdi_main.c,v 1.1.1.1 2003/11/04 23:34:57 mjames Exp $
  2.  *
  3.  * $Log: cdi_main.c,v $
  4.  * Revision 1.1.1.1  2003/11/04 23:34:57  mjames
  5.  * Imported into local repositrory
  6.  *
  7.  * Revision 1.10  2002/09/09 10:36:19  mjames
  8.  * Checkpoint checkin
  9.  *
  10.  * Revision 1.9  2002/08/14 12:03:07  mjames
  11.  * Added an 'external' tag to the documentation
  12.  *
  13.  * Revision 1.9  2002/04/04 15:04:28  mjames
  14.  * Fixed #ident problem
  15.  *
  16.  * Revision 1.8  2001/10/31 22:19:58  mjames
  17.  * Tidying up problematical comments caused by CVS
  18.  * 'intelligent' comment guessing
  19.  *
  20.  * Revision 1.7  2001/10/22 11:01:36  mjames
  21.  * Modified list_devices to take an options flag
  22.  *
  23.  * Revision 1.6  2001/10/02 20:55:37  mjames
  24.  * Moved documentation about code to main program module.
  25.  *
  26.  * Revision 1.5  2001/09/28 14:34:13  mjames
  27.  * FIxed yydebug variable to exist when YYDEBUG macro
  28.  * is not defined. Otherwise linker error will be reported.
  29.  *
  30.  * Revision 1.4  2001/07/09 15:36:57  mjames
  31.  * Placed the version string in an independent file to save time on building
  32.  * all of the variants of Vertical
  33.  *
  34.  * Revision 1.3  2001/06/06 12:10:26  mjames
  35.  * Move from HPUX
  36.  *
  37.  * Revision 1.2  2000/12/04 13:14:01  mjames
  38.  * Imported all of the PCB syntax readers.
  39.  *
  40.  * Converted "a/b" to mean "a" divided by "b" insted of a single string
  41.  * "a/b" in Verilog
  42.  *
  43.  * Revision 1.1.1.1  2000/10/19 21:58:34  mjames
  44.  * Mike put it here
  45.  *
  46.  *
  47.  * Revision 1.29  2000/10/04  10:37:01  10:37:01  mjames (Mike James)
  48.  * Modified to become part of vertical2, complete
  49.  * with VHDL COMPONENT and SIGNAL declarations.
  50.  *
  51.  * Revision 1.29  2000/10/04  10:37:01  10:37:01  mjames (Mike James)
  52.  * Part of Release PSAVAT01
  53.  *
  54.  * Revision 1.28  2000/10/02  11:04:07  11:04:07  mjames (Mike James)
  55.  * new_vhdl
  56.  *
  57.  * Revision 1.27  2000/09/27  14:42:07  14:42:07  mjames (Mike James)
  58.  * Part of Release Sep_27_ST_2000
  59.  *
  60.  * Revision 1.26  2000/09/27  10:41:21  10:41:21  mjames (Mike James)
  61.  * Modified to use correct return code from yyparse.
  62.  *
  63.  * Revision 1.25  2000/09/21  10:15:37  10:15:37  mjames (Mike James)
  64.  * Part of Release Sep21Alpha
  65.  *
  66.  * Revision 1.24  2000/08/25  09:57:06  09:57:06  mjames (Mike James)
  67.  * Part of Release Aug25_alpha
  68.  *
  69.  * Revision 1.23  2000/08/16  08:57:23  08:57:23  mjames (Mike James)
  70.  * Part of Release CD01_Aug2000
  71.  *
  72.  * Revision 1.22  2000/08/14  14:45:05  14:45:05  mjames (Mike James)
  73.  * Part of Release Aug_14_2000
  74.  *
  75.  * Revision 1.21  2000/08/11  08:30:26  08:30:26  mjames (Mike James)
  76.  * Part of Release Aug_11_2000
  77.  *
  78.  * Revision 1.20  2000/08/09  10:31:39  10:31:39  mjames (Mike James)
  79.  * Part of Release Aug__9_2000
  80.  *
  81.  * Revision 1.19  2000/05/31  11:42:44  11:42:44  mjames (Mike James)
  82.  * Part of Release May_31_2000
  83.  *
  84.  * Revision 1.18  2000/05/31  11:29:15  11:29:15  mjames (Mike James)
  85.  * Added acfread.ini file reading
  86.  *
  87.  * Revision 1.17  2000/05/08  17:01:30  17:01:30  mjames (Mike James)
  88.  * Part of Release May__8_2000
  89.  *
  90.  * Revision 1.16  2000/05/08  16:59:24  16:59:24  mjames (Mike James)
  91.  * Part of Release May__8_2000
  92.  *
  93.  * Revision 1.15  2000/05/08  16:57:00  16:57:00  mjames (Mike James)
  94.  * Part of Release May__8_2000
  95.  *
  96.  * Revision 1.14  2000/03/08  16:17:24  16:17:24  mjames (Mike James)
  97.  * Removed syntactically confused 'junk'
  98.  *
  99.  * Revision 1.11  2000/01/20  15:58:38  15:58:38  mjames (Mike James)
  100.  * Part of Release R22
  101.  *
  102.  * Revision 1.10  99/12/22  11:15:19  11:15:19  mjames (Mike James)
  103.  * Part of Release Dec_22_1999
  104.  *
  105.  * Revision 1.9  99/06/25  14:34:26  14:34:26  mjames (Mike James)
  106.  * Added in reference to expression.h, but no changes made
  107.  * to the function of acfread yet.
  108.  *
  109.  * Revision 1.8  99/06/18  09:06:34  09:06:34  mjames (Mike James)
  110.  * Checkin before major design changes
  111.  *
  112.  * Revision 1.7  1999/06/14  10:47:18  mjames
  113.  * *** empty log message ***
  114.  *
  115.  * Revision 1.7  1999/06/14  10:47:18  mjames
  116.  * *** empty log message ***
  117.  *
  118.  * Revision 1.6  1999/06/11  14:21:15  mjames
  119.  * *** empty log message ***
  120.  *
  121.  * Revision 1.6  1999/06/11  14:21:15  mjames
  122.  * *** empty log message ***
  123.  *
  124.  * Revision 1.5  99/05/04  09:48:09  09:48:09  mjames (Mike James)
  125.  *
  126.  *
  127.  * Revision 1.3  98/02/11  11:24:57  11:24:57  mjames (Mike James)
  128.  * Checked in for version 6.2a
  129.  *
  130.  * Revision 1.2  97/04/23  08:42:39  08:42:39  mjames (Mike James)
  131.  * CHecked in for release rel23041997
  132.  *
  133.  * Revision 1.1  97/01/03  13:33:57  13:33:57  mjames (Mike James)
  134.  * Initial revision
  135.  *
  136.  *
  137.  */
  138. /*
  139. @title
  140. PROGRAM cdiread: Converter for .CDI files
  141. @application external
  142. @text
  143. PCB netlist to ACFP converter. Looks for netlists in ASCII containing tags like:
  144. @listing
  145. .ASS
  146. .IMP
  147. .COM
  148. .CSP
  149. .PCB
  150. .CON
  151. .COD
  152. .REM
  153. .EOD
  154. @text
  155. Commonly seen with a '.CDI' file suffix. I think this is one of the random Racal-Zuken output
  156. file types.
  157. @end
  158. */
  159. #include <stdio.h>
  160. #include <stdlib.h>
  161. #include <string.h>
  162. #if defined HAS_TCL
  163. #include "tcl_l.h"
  164. #endif
  165. #include "cmdlog.h"
  166. #include "cmdparse.h"
  167. #include "database.h"
  168. #include "expression.h"
  169. #include "generic.h"
  170. #include "printout.h"
  171. #include "routing.h"
  172.  
  173. #ident                                                                                        \
  174.     "@(#)$Header: c:\\cygwin\\cvsroot/Vert03/cdi_src/cdi_main.c,v 1.1.1.1 2003/11/04 23:34:57 mjames Exp $";
  175. #if defined YYDEBUG
  176. extern int yydebug;
  177. #else
  178. int yydebug = 0;
  179. #endif
  180. extern FILE *yyin;
  181.  
  182. int main (int argc, char *argv[])
  183.  
  184. {
  185.         InitialiseData ();
  186.         ExecuteString (
  187.             "echo running \\$(VERTICAL_INIT) file name = $(VERTICAL_INIT) ",
  188.             argc - 1,
  189.             (argv + 1));
  190.         ExecuteString ("do $(VERTICAL_INIT) ", argc - 2, (argv + 2));
  191.  
  192.         Log (LOG_GENERAL, "# Finished initialisation script\n");
  193.         print_header (stdout, "'cdiread': From .cdi file");
  194.         yydebug = 0;
  195.         if (argc > 2 && argv[2][0] == 'd')
  196.                 yydebug = 1;
  197.         if (argc > 1)
  198.                 yyin = fopen (argv[1], "r");
  199.         else
  200.                 yyin = stdin;
  201.         if (!yyin)
  202.                 printf ("cannot open input file (%s)\n", argv[1]);
  203.         else
  204.                 while (yyparse () == 0)
  205.                         ;
  206.  
  207.         perform_routing (Free);
  208.         list_database (stdout, 0); /* no jumpers :0= no hierarchy */
  209.         list_devices (
  210.             stdout,
  211.             PRINT_TYPE | PRINT_EXPAND_BUS | PRINT_GENERIC | PRINT_GROUP | PRINT_ROUTE_FLAGS |
  212.                 PRINT_EQUIVALENT_PINS);
  213. }
  214.