keywords.sh revision 1.9 1 1.1 gwr #!/bin/sh
2 1.9 kefren # $NetBSD: keywords.sh,v 1.9 2010/06/26 14:29:36 kefren Exp $
3 1.1 gwr # @(#)keywords 8.2 (Berkeley) 3/19/94
4 1.1 gwr #
5 1.1 gwr # WARNING! If you change this file, re-run it!
6 1.1 gwr
7 1.1 gwr # This program requires "new" awk (or GNU awk).
8 1.1 gwr awk=${AWK:-awk}
9 1.1 gwr
10 1.1 gwr cat << _EOF_ > _keywords.t1
11 1.1 gwr add
12 1.4 christos atalk
13 1.1 gwr blackhole
14 1.1 gwr change
15 1.6 itojun cloned
16 1.1 gwr cloning
17 1.1 gwr delete
18 1.1 gwr dst
19 1.1 gwr expire
20 1.1 gwr flush
21 1.1 gwr gateway
22 1.1 gwr genmask
23 1.1 gwr get
24 1.1 gwr host
25 1.1 gwr hopcount
26 1.1 gwr iface
27 1.1 gwr interface
28 1.1 gwr ifa
29 1.1 gwr ifp
30 1.1 gwr inet
31 1.5 itojun inet6
32 1.1 gwr iso
33 1.1 gwr link
34 1.1 gwr llinfo
35 1.1 gwr lock
36 1.1 gwr lockrest
37 1.1 gwr mask
38 1.1 gwr monitor
39 1.1 gwr mtu
40 1.1 gwr net
41 1.1 gwr netmask
42 1.1 gwr nostatic
43 1.1 gwr osi
44 1.5 itojun prefixlen
45 1.1 gwr proto1
46 1.1 gwr proto2
47 1.1 gwr recvpipe
48 1.1 gwr reject
49 1.1 gwr rtt
50 1.1 gwr rttvar
51 1.1 gwr sa
52 1.1 gwr sendpipe
53 1.1 gwr show
54 1.1 gwr ssthresh
55 1.1 gwr static
56 1.1 gwr x25
57 1.1 gwr xns
58 1.1 gwr xresolve
59 1.7 jrf flushall
60 1.8 kefren nocloned
61 1.8 kefren nocloning
62 1.8 kefren noblackhole
63 1.8 kefren noreject
64 1.9 kefren mpls
65 1.9 kefren tag
66 1.1 gwr _EOF_
67 1.1 gwr
68 1.1 gwr
69 1.1 gwr ################################################################
70 1.1 gwr # Setup
71 1.1 gwr ################################################################
72 1.1 gwr
73 1.1 gwr # This creates a stream of:
74 1.1 gwr # keyword KEYWORD
75 1.1 gwr # (lower case, upper case).
76 1.1 gwr tr a-z A-Z < _keywords.t1 |
77 1.1 gwr paste _keywords.t1 - > _keywords.t2
78 1.1 gwr
79 1.1 gwr
80 1.1 gwr ################################################################
81 1.1 gwr # Generate the h file
82 1.1 gwr ################################################################
83 1.1 gwr exec > keywords.h
84 1.1 gwr
85 1.1 gwr echo '/* $'NetBSD'$ */
86 1.1 gwr
87 1.1 gwr /* WARNING! This file was generated by keywords.sh */
88 1.1 gwr
89 1.3 cgd extern struct keytab {
90 1.8 kefren const char *kt_cp;
91 1.1 gwr int kt_i;
92 1.1 gwr } keywords[];
93 1.1 gwr
94 1.1 gwr ' # defines follow
95 1.1 gwr
96 1.1 gwr $awk '{
97 1.1 gwr printf("#define\tK_%s\t%d\n", $2, NR);
98 1.1 gwr }' < _keywords.t2
99 1.1 gwr
100 1.1 gwr
101 1.1 gwr ################################################################
102 1.1 gwr # Generate the c file
103 1.1 gwr ################################################################
104 1.1 gwr exec > keywords.c
105 1.1 gwr
106 1.1 gwr echo '/* $'NetBSD'$ */
107 1.1 gwr
108 1.1 gwr /* WARNING! This file was generated by keywords.sh */
109 1.1 gwr
110 1.1 gwr #include "keywords.h"
111 1.1 gwr
112 1.1 gwr struct keytab keywords[] = {
113 1.1 gwr ' # initializers follow
114 1.1 gwr
115 1.1 gwr $awk '{
116 1.1 gwr printf("\t{\"%s\", K_%s},\n", $1, $2);
117 1.1 gwr }' < _keywords.t2
118 1.1 gwr
119 1.1 gwr echo ' {0, 0}
120 1.1 gwr };
121 1.1 gwr ' # tail
122 1.1 gwr
123 1.1 gwr
124 1.1 gwr ################################################################
125 1.1 gwr # Cleanup
126 1.1 gwr ################################################################
127 1.1 gwr
128 1.1 gwr rm -f _keywords.t1 _keywords.t2
129 1.1 gwr exit 0
130