
/*
 *$Header: c:\\cygwin\\cvsroot/Vert03/vertlib/lx_support.h,v 1.1.1.1 2003/11/04 23:34:56 mjames
 Exp $
 *
 * $Log: lx_support.h,v $
 * Revision 1.1.1.1  2003/11/04 23:34:56  mjames
 * Imported into local repositrory
 *
 * Revision 1.4  2002/01/15 12:33:44  mjames
 * DLL declarations put in
 *
 * Revision 1.3  2001/10/31 22:20:08  mjames
 * Tidying up problematical comments caused by CVS
 * 'intelligent' comment guessing
 *
 *
 * Revision 1.2  2001/06/06 12:10:20  mjames
 * Move from HPUX
 *
 * Revision 1.1.1.1  2000/10/19 21:58:38  mjames
 * Mike put it here
 *
 *
 * Revision 1.34  2000/10/04  10:37:11  10:37:11  mjames (Mike James)
 * Modified for Vertical2 : support COMPONENTS and SIGNALS
 *
 * Revision 1.34  2000/10/04  10:37:11  10:37:11  mjames (Mike James)
 * Part of Release PSAVAT01
 *
 * Revision 1.33  2000/10/02  11:04:16  11:04:16  mjames (Mike James)
 * new_vhdl
 *

 * Revision 1.32  2000/09/27  14:42:23  14:42:23  mjames (Mike James)

 * Part of Release Sep_27_ST_2000

 *

 * Revision 1.31  2000/09/27  10:57:48  10:57:48  mjames (Mike James)

 * Moved cleanup lex_strings call to the yacc parser

 * as it previously free'd strings prior to use

 * under some circumstances.

 *

 * Revision 1.30  2000/09/21  10:15:53  10:15:53  mjames (Mike James)

 * Part of Release Sep21Alpha

 *

 * Revision 1.29  2000/08/25  09:57:18  09:57:18  mjames (Mike James)

 * Part of Release Aug25_alpha

 *

 * Revision 1.28  2000/08/16  08:57:35  08:57:35  mjames (Mike James)

 * Part of Release CD01_Aug2000

 *

 * Revision 1.27  2000/08/14  14:45:15  14:45:15  mjames (Mike James)

 * Part of Release Aug_14_2000

 *

 * Revision 1.26  2000/08/11  08:30:36  08:30:36  mjames (Mike James)

 * Part of Release Aug_11_2000

 *

 * Revision 1.25  2000/08/09  10:31:52  10:31:52  mjames (Mike James)

 * Part of Release Aug__9_2000

 *

 * Revision 1.24  2000/05/31  11:43:04  11:43:04  mjames (Mike James)

 * Part of Release May_31_2000

 *

 * Revision 1.23  2000/05/08  17:01:42  17:01:42  mjames (Mike James)

 * Part of Release May__8_2000

 *

 * Revision 1.22  2000/05/08  16:59:35  16:59:35  mjames (Mike James)

 * Part of Release May__8_2000

 *

 * Revision 1.21  2000/05/08  16:57:12  16:57:12  mjames (Mike James)

 * Part of Release May__8_2000

 *

 * Revision 1.20  2000/03/08  16:19:14  16:19:14  mjames (Mike James)

 * New version including PC

 *

 * Revision 1.17  2000/02/18  15:45:36  15:45:36  mjames (Mike James)

 * Amended to support PC

 *

 * Revision 1.16  2000/01/20  15:58:52  15:58:52  mjames (Mike James)

 * Part of Release R22

 *

 * Revision 1.15  99/12/22  11:15:33  11:15:33  mjames (Mike James)

 * Part of Release Dec_22_1999

 *

 * Revision 1.14  99/11/23  13:52:08  13:52:08  mjames (Mike James)

 * Addded syntax to support special generics for Certify support

 *

 * Revision 1.13  99/05/04  09:52:21  09:52:21  mjames (Mike James)

 * General checkin

 *

 * Revision 1.12  98/02/11  11:26:40  11:26:40  mjames (Mike James)

 * Checked in for version 6.2a

 *

 * Revision 1.11  97/04/23  08:44:15  08:44:15  mjames (Mike James)

 * CHecked in for release rel23041997

 *

 * Revision 1.10  96/07/19  14:38:54  14:38:54  mjames (Mike James)

 * Update to give to PRL

 *

 * Revision 1.9  1996/07/12  15:52:12  mjames

 * Sorted out things like Alias and Jumpers

 * Work Correctly

 * Print COrrectly

 *

 * Revision 1.8  96/06/17  13:01:56  13:01:56  mjames (Mike James)

 * Added case insensitive string compares

 *

 * Revision 1.7  96/03/29  14:46:53  14:46:53  mjames (Mike James)

 * Added VHDL netlist writing to the capabilities of ACFREAD

 *

 * Revision 1.6  96/03/18  13:51:18  13:51:18  mjames (Mike James)

 * Real Revision 2.1

 *

 * Revision 1.4  96/02/13  09:13:31  09:13:31  mjames (Mike James)

 * Updated to be version 2.0 with net joining

 *

 * Revision 1.3  96/02/08  15:28:33  15:28:33  mjames (Mike James)

 * First release

 *

 * Revision 1.2  96/02/07  16:02:19  16:02:19  mjames (Mike James)

 * Added correct RCS tags

 *

 * Revision 1.1  96/01/08  15:23:18  15:23:18  mjames (Mike James)

 * Initial revision

 *

 * Revision 1.2  96/01/04  17:55:54  17:55:54  mjames (Mike James)

 * Correcly reading ACF

 *

 * Revision 1.1  96/01/04  10:18:47  10:18:47  mjames (Mike James)

 * Initial revision

 *

 * Revision 1.1  94/03/23  17:11:09  17:11:09  mjames (Mike James)

 * Initial revision

 *

 * Revision 1.4  93/08/26  10:37:50  mjames

 * RCS header

 *  */

typedef struct str

{
        char *dat;

        struct str *next;

} sstr;

extern __declspec(dllexport) struct str *lx_first, *lx_last;

/* variables defined here */

extern int yy_nArgs;

extern char **yy_Args;

/* these manipulate a small linked list of the tokens on the line */

/* if linemode is '1' then preserve quote escapes */

extern void expand_string (
    char *source,

    char *dest,
    int nArgs,
    char *Args[]);

/* handler for the struct str linked list string */

extern char *make_string (
    char *token,
    struct str **pfirst,

    struct str **plast);

extern void free_strings (struct str **pfirst, struct str **plast);

extern void free_lex_strings (void);

/* string comparison. Returns '1' for EQUAL !! */

extern int strneq (char *s1, char *s2, int n);

extern int streq (char *s1, char *s2);
