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