Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 11 | mjames | 1 | /* |
| 2 | mjames | 2 | * $Id: chck_names.c,v 1.1.1.1 2003/11/04 23:34:57 mjames Exp $ |
| 3 | * |
||
| 4 | * $Log: chck_names.c,v $ |
||
| 5 | * Revision 1.1.1.1 2003/11/04 23:34:57 mjames |
||
| 6 | * Imported into local repositrory |
||
| 7 | * |
||
| 8 | * Revision 1.8 2002/01/15 12:38:53 mjames |
||
| 9 | * converted to use #ident |
||
| 10 | * |
||
| 11 | * Revision 1.7 2001/10/31 22:19:59 mjames |
||
| 12 | * Tidying up problematical comments caused by CVS |
||
| 13 | * 'intelligent' comment guessing |
||
| 14 | * |
||
| 15 | * Revision 1.6 2001/10/23 21:15:54 mjames |
||
| 16 | * Become less critical of old style wildcards. The user may be right in fact. |
||
| 17 | * |
||
| 18 | * Revision 1.5 2001/10/10 20:18:45 mjames |
||
| 19 | * Added a vert_regcomp function to compile regular expressions |
||
| 20 | * with '^' (match start string) and '$' (match end string) bracketing |
||
| 21 | * this => wildcard must match entire string not just a part of it. |
||
| 22 | * |
||
| 23 | * Revision 1.4 2001/10/10 12:49:47 mjames |
||
| 24 | * Passed wrong argument to wildcard validator within template ensure . Fixed |
||
| 25 | * |
||
| 26 | * Revision 1.3 2001/10/07 20:50:54 mjames |
||
| 27 | * Added wildcard checking (warn user about |
||
| 28 | * using wildcard '*' on the end of a string in stead of wildcard '.*') |
||
| 29 | * |
||
| 30 | * Revision 1.2 2001/06/06 12:10:26 mjames |
||
| 31 | * Move from HPUX |
||
| 32 | * |
||
| 33 | * Revision 1.1.1.1 2000/10/19 21:58:34 mjames |
||
| 34 | * Mike put it here |
||
| 35 | * |
||
| 36 | * |
||
| 37 | * Revision 1.35 2000/10/04 10:37:02 10:37:02 mjames (Mike James) |
||
| 38 | * Modified to become part of vertical2, complete |
||
| 39 | * with VHDL COMPONENT and SIGNAL declarations. |
||
| 11 | mjames | 40 | * |
| 41 | */ |
||
| 2 | mjames | 42 | |
| 43 | #include <stdio.h> |
||
| 11 | mjames | 44 | #include <string.h> |
| 2 | mjames | 45 | #include <stdlib.h> |
| 11 | mjames | 46 | #include <ctype.h> |
| 2 | mjames | 47 | |
| 48 | /* TCL/Tk declarations */ |
||
| 11 | mjames | 49 | #include "vertcl_main.h" |
| 2 | mjames | 50 | #include "expression.h" |
| 51 | #include "generic.h" |
||
| 11 | mjames | 52 | #include "database.h" |
| 2 | mjames | 53 | #include "lx_support.h" |
| 11 | mjames | 54 | #include "chck_names.h" |
| 2 | mjames | 55 | #include "statistics.h" |
| 11 | mjames | 56 | #include "cmdparse.h" |
| 57 | #include "cmdlog.h" |
||
| 2 | mjames | 58 | |
| 11 | mjames | 59 | #ident "@(#)$Header: c:\\cygwin\\cvsroot/Vert03/vertlib/chck_names.c,v 1.1.1.1 2003/11/04 23:34:57 mjames Exp $" |
| 2 | mjames | 60 | |
| 11 | mjames | 61 | |
| 2 | mjames | 62 | /* exported flag */ |
| 63 | |||
| 64 | int need_validate_names = 0; |
||
| 65 | |||
| 11 | mjames | 66 | static void list_dodgy_net_id_names(net_t * netlist) { |
| 67 | while(netlist) { |
||
| 68 | /* |
||
| 69 | printf("'%s' '%s'\n",netlist->name,netlist->identifier); |
||
| 70 | */ |
||
| 71 | if (strchr(netlist->name,' ')) |
||
| 72 | Log(LOG_ERROR,"# Warning : Net name '%s' has a SPACE in it\n", |
||
| 73 | netlist->name); |
||
| 74 | if (strchr(netlist->identifier,' ')) |
||
| 75 | Log(LOG_ERROR,"# Warning : Net identifier '%s' has a SPACE in it\n", |
||
| 76 | netlist->identifier); |
||
| 77 | netlist = netlist->next; |
||
| 78 | } |
||
| 79 | } |
||
| 2 | mjames | 80 | |
| 81 | |||
| 11 | mjames | 82 | void validate_names(void) |
| 83 | { |
||
| 84 | list_dodgy_net_id_names(unrouted_list); |
||
| 85 | list_dodgy_net_id_names(routed_list); |
||
| 86 | list_dodgy_net_id_names(named_list); |
||
| 87 | } |
||
| 88 | |||
| 2 | mjames | 89 | /*************************************************/ |
| 90 | /* check to see if a wildcard is formed 'old' or */ |
||
| 91 | /* 'new' regexp style */ |
||
| 92 | /*************************************************/ |
||
| 11 | mjames | 93 | int check_wildcard(char *patt) |
| 94 | { |
||
| 95 | int l; |
||
| 96 | if(ISNULLSTR(patt)) |
||
| 97 | { |
||
| 98 | Log(LOG_ERROR,"-- problem with zero length regular expression pattern\n"); |
||
| 99 | return TCL_ERROR; |
||
| 100 | } |
||
| 101 | l = strlen(patt); |
||
| 102 | /* |
||
| 103 | if ( patt[0] == '$' ) |
||
| 104 | { |
||
| 105 | Log(LOG_ERROR,"-- Need to use '\$' NOT '$' at beginning of regular expression pattern '%s'\n",patt); |
||
| 106 | return TCL_ERROR; |
||
| 107 | } |
||
| 2 | mjames | 108 | |
| 11 | mjames | 109 | */ |
| 2 | mjames | 110 | |
| 11 | mjames | 111 | if ( patt[l-1]=='*' && ((l==1)||(l>=2 && patt[l-2]!='.'))) |
| 112 | { |
||
| 113 | Log(LOG_ERROR,"-- May Need to use '.*' NOT '*' in regular expression pattern '%s'\n",patt); |
||
| 114 | } |
||
| 115 | return TCL_OK; |
||
| 116 | |||
| 117 | } |