/* $Id: cdi_main.c,v 1.1.1.1 2003/11/04 23:34:57 mjames Exp $
*
* $Log: cdi_main.c,v $
* Revision 1.1.1.1 2003/11/04 23:34:57 mjames
* Imported into local repositrory
*
* Revision 1.10 2002/09/09 10:36:19 mjames
* Checkpoint checkin
*
* Revision 1.9 2002/08/14 12:03:07 mjames
* Added an 'external' tag to the documentation
*
* Revision 1.9 2002/04/04 15:04:28 mjames
* Fixed #ident problem
*
* Revision 1.8 2001/10/31 22:19:58 mjames
* Tidying up problematical comments caused by CVS
* 'intelligent' comment guessing
*
* Revision 1.7 2001/10/22 11:01:36 mjames
* Modified list_devices to take an options flag
*
* Revision 1.6 2001/10/02 20:55:37 mjames
* Moved documentation about code to main program module.
*
* Revision 1.5 2001/09/28 14:34:13 mjames
* FIxed yydebug variable to exist when YYDEBUG macro
* is not defined. Otherwise linker error will be reported.
*
* Revision 1.4 2001/07/09 15:36:57 mjames
* Placed the version string in an independent file to save time on building
* all of the variants of Vertical
*
* Revision 1.3 2001/06/06 12:10:26 mjames
* Move from HPUX
*
* Revision 1.2 2000/12/04 13:14:01 mjames
* Imported all of the PCB syntax readers.
*
* Converted "a/b" to mean "a" divided by "b" insted of a single string
* "a/b" in Verilog
*
* Revision 1.1.1.1 2000/10/19 21:58:34 mjames
* Mike put it here
*
*
* Revision 1.29 2000/10/04 10:37:01 10:37:01 mjames (Mike James)
* Modified to become part of vertical2, complete
* with VHDL COMPONENT and SIGNAL declarations.
*
* Revision 1.29 2000/10/04 10:37:01 10:37:01 mjames (Mike James)
* Part of Release PSAVAT01
*
* Revision 1.28 2000/10/02 11:04:07 11:04:07 mjames (Mike James)
* new_vhdl
*
* Revision 1.27 2000/09/27 14:42:07 14:42:07 mjames (Mike James)
* Part of Release Sep_27_ST_2000
*
* Revision 1.26 2000/09/27 10:41:21 10:41:21 mjames (Mike James)
* Modified to use correct return code from yyparse.
*
* Revision 1.25 2000/09/21 10:15:37 10:15:37 mjames (Mike James)
* Part of Release Sep21Alpha
*
* Revision 1.24 2000/08/25 09:57:06 09:57:06 mjames (Mike James)
* Part of Release Aug25_alpha
*
* Revision 1.23 2000/08/16 08:57:23 08:57:23 mjames (Mike James)
* Part of Release CD01_Aug2000
*
* Revision 1.22 2000/08/14 14:45:05 14:45:05 mjames (Mike James)
* Part of Release Aug_14_2000
*
* Revision 1.21 2000/08/11 08:30:26 08:30:26 mjames (Mike James)
* Part of Release Aug_11_2000
*
* Revision 1.20 2000/08/09 10:31:39 10:31:39 mjames (Mike James)
* Part of Release Aug__9_2000
*
* Revision 1.19 2000/05/31 11:42:44 11:42:44 mjames (Mike James)
* Part of Release May_31_2000
*
* Revision 1.18 2000/05/31 11:29:15 11:29:15 mjames (Mike James)
* Added acfread.ini file reading
*
* Revision 1.17 2000/05/08 17:01:30 17:01:30 mjames (Mike James)
* Part of Release May__8_2000
*
* Revision 1.16 2000/05/08 16:59:24 16:59:24 mjames (Mike James)
* Part of Release May__8_2000
*
* Revision 1.15 2000/05/08 16:57:00 16:57:00 mjames (Mike James)
* Part of Release May__8_2000
*
* Revision 1.14 2000/03/08 16:17:24 16:17:24 mjames (Mike James)
* Removed syntactically confused 'junk'
*
* Revision 1.11 2000/01/20 15:58:38 15:58:38 mjames (Mike James)
* Part of Release R22
*
* Revision 1.10 99/12/22 11:15:19 11:15:19 mjames (Mike James)
* Part of Release Dec_22_1999
*
* Revision 1.9 99/06/25 14:34:26 14:34:26 mjames (Mike James)
* Added in reference to expression.h, but no changes made
* to the function of acfread yet.
*
* Revision 1.8 99/06/18 09:06:34 09:06:34 mjames (Mike James)
* Checkin before major design changes
*
* Revision 1.7 1999/06/14 10:47:18 mjames
* *** empty log message ***
*
* Revision 1.7 1999/06/14 10:47:18 mjames
* *** empty log message ***
*
* Revision 1.6 1999/06/11 14:21:15 mjames
* *** empty log message ***
*
* Revision 1.6 1999/06/11 14:21:15 mjames
* *** empty log message ***
*
* Revision 1.5 99/05/04 09:48:09 09:48:09 mjames (Mike James)
*
*
* Revision 1.3 98/02/11 11:24:57 11:24:57 mjames (Mike James)
* Checked in for version 6.2a
*
* Revision 1.2 97/04/23 08:42:39 08:42:39 mjames (Mike James)
* CHecked in for release rel23041997
*
* Revision 1.1 97/01/03 13:33:57 13:33:57 mjames (Mike James)
* Initial revision
*
*
*/
/*
@title
PROGRAM cdiread: Converter for .CDI files
@application external
@text
PCB netlist to ACFP converter. Looks for netlists in ASCII containing tags like:
@listing
.ASS
.IMP
.COM
.CSP
.PCB
.CON
.COD
.REM
.EOD
@text
Commonly seen with a '.CDI' file suffix. I think this is one of the random Racal-Zuken output
file types.
@end
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#if defined HAS_TCL
#include "tcl_l.h"
#endif
#include "expression.h"
#include "generic.h"
#include "database.h"
#include "printout.h"
#include "routing.h"
#include "cmdparse.h"
#include "cmdlog.h"
#include "yacc_common.h"
#ident "@(#)$Header: c:\\cygwin\\cvsroot/Vert03/cdi_src/cdi_main.c,v 1.1.1.1 2003/11/04 23:34:57 mjames Exp $"
int main(int argc , char * argv[])
{
InitialiseData();
ExecuteString("echo running \\$(VERTICAL_INIT) file name = $(VERTICAL_INIT) ", argc-1, (argv+1));
ExecuteString("do $(VERTICAL_INIT) ", argc-2, (argv+2));
Log(LOG_GENERAL,
"# Finished initialisation script\n");
print_header(stdout,"'cdiread': From .cdi file");
yydebug = 0;
if (argc>2 && argv[2][0]=='d')
yydebug = 1;
if (argc>1)
yyin
= fopen(argv
[1],"r");
else
yyin = stdin;
if(!yyin)
printf("cannot open input file (%s)\n",argv
[1]);
else
while(yyparse()==0);
perform_routing(Free);
list_database(stdout,0);/* no jumpers :0= no hierarchy */
list_devices(stdout,
PRINT_TYPE|PRINT_EXPAND_BUS|
PRINT_GENERIC|PRINT_GROUP|
PRINT_ROUTE_FLAGS | PRINT_EQUIVALENT_PINS);
}