Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 2 | mjames | 1 | /* |
| 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. |
||
| 40 | * |
||
| 41 | */ |
||
| 42 | |||
| 43 | #include <ctype.h> |
||
| 44 | #include <stdio.h> |
||
| 45 | #include <stdlib.h> |
||
| 46 | #include <string.h> |
||
| 47 | |||
| 48 | /* TCL/Tk declarations */ |
||
| 49 | #include "chck_names.h" |
||
| 50 | #include "cmdlog.h" |
||
| 51 | #include "cmdparse.h" |
||
| 52 | #include "database.h" |
||
| 53 | #include "expression.h" |
||
| 54 | #include "generic.h" |
||
| 55 | #include "lx_support.h" |
||
| 56 | #include "statistics.h" |
||
| 57 | #include "vertcl_main.h" |
||
| 58 | |||
| 59 | #ident \ |
||
| 60 | "@(#)$Header: c:\\cygwin\\cvsroot/Vert03/vertlib/chck_names.c,v 1.1.1.1 2003/11/04 23:34:57 mjames Exp $" |
||
| 61 | |||
| 62 | /* exported flag */ |
||
| 63 | |||
| 64 | int need_validate_names = 0; |
||
| 65 | |||
| 66 | static void list_dodgy_net_id_names (net_t *netlist) |
||
| 67 | { |
||
| 68 | while (netlist) |
||
| 69 | { |
||
| 70 | /* |
||
| 71 | printf("'%s' '%s'\n",netlist->name,netlist->identifier); |
||
| 72 | */ |
||
| 73 | if (strchr (netlist->name, ' ')) |
||
| 74 | Log ( |
||
| 75 | LOG_ERROR, |
||
| 76 | "# Warning : Net name '%s' has a SPACE in it\n", |
||
| 77 | netlist->name); |
||
| 78 | if (strchr (netlist->identifier, ' ')) |
||
| 79 | Log ( |
||
| 80 | LOG_ERROR, |
||
| 81 | "# Warning : Net identifier '%s' has a SPACE in it\n", |
||
| 82 | netlist->identifier); |
||
| 83 | netlist = netlist->next; |
||
| 84 | } |
||
| 85 | } |
||
| 86 | |||
| 87 | void validate_names (void) |
||
| 88 | { |
||
| 89 | list_dodgy_net_id_names (unrouted_list); |
||
| 90 | list_dodgy_net_id_names (routed_list); |
||
| 91 | list_dodgy_net_id_names (named_list); |
||
| 92 | } |
||
| 93 | |||
| 94 | /*************************************************/ |
||
| 95 | /* check to see if a wildcard is formed 'old' or */ |
||
| 96 | /* 'new' regexp style */ |
||
| 97 | /*************************************************/ |
||
| 98 | int check_wildcard (char *patt) |
||
| 99 | { |
||
| 100 | int l; |
||
| 101 | if (ISNULLSTR (patt)) |
||
| 102 | { |
||
| 103 | Log (LOG_ERROR, "-- problem with zero length regular expression pattern\n"); |
||
| 104 | return TCL_ERROR; |
||
| 105 | } |
||
| 106 | l = strlen (patt); |
||
| 107 | /* |
||
| 108 | if ( patt[0] == '$' ) |
||
| 109 | { |
||
| 110 | Log(LOG_ERROR,"-- Need to use '\$' NOT '$' at beginning of regular expression |
||
| 111 | pattern '%s'\n",patt); return TCL_ERROR; |
||
| 112 | } |
||
| 113 | |||
| 114 | */ |
||
| 115 | |||
| 116 | if (patt[l - 1] == '*' && ((l == 1) || (l >= 2 && patt[l - 2] != '.'))) |
||
| 117 | { |
||
| 118 | Log ( |
||
| 119 | LOG_ERROR, |
||
| 120 | "-- May Need to use '.*' NOT '*' in regular expression pattern '%s'\n", |
||
| 121 | patt); |
||
| 122 | } |
||
| 123 | return TCL_OK; |
||
| 124 | } |