Subversion Repositories Vertical

Rev

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
}