keywords.sh revision 1.6 1 #!/bin/sh
2 # $NetBSD: keywords.sh,v 1.6 2001/01/27 04:51:17 itojun 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 _EOF_
60
61
62 ################################################################
63 # Setup
64 ################################################################
65
66 # This creates a stream of:
67 # keyword KEYWORD
68 # (lower case, upper case).
69 tr a-z A-Z < _keywords.t1 |
70 paste _keywords.t1 - > _keywords.t2
71
72
73 ################################################################
74 # Generate the h file
75 ################################################################
76 exec > keywords.h
77
78 echo '/* $'NetBSD'$ */
79
80 /* WARNING! This file was generated by keywords.sh */
81
82 extern struct keytab {
83 char *kt_cp;
84 int kt_i;
85 } keywords[];
86
87 ' # defines follow
88
89 $awk '{
90 printf("#define\tK_%s\t%d\n", $2, NR);
91 }' < _keywords.t2
92
93
94 ################################################################
95 # Generate the c file
96 ################################################################
97 exec > keywords.c
98
99 echo '/* $'NetBSD'$ */
100
101 /* WARNING! This file was generated by keywords.sh */
102
103 #include "keywords.h"
104
105 struct keytab keywords[] = {
106 ' # initializers follow
107
108 $awk '{
109 printf("\t{\"%s\", K_%s},\n", $1, $2);
110 }' < _keywords.t2
111
112 echo ' {0, 0}
113 };
114 ' # tail
115
116
117 ################################################################
118 # Cleanup
119 ################################################################
120
121 rm -f _keywords.t1 _keywords.t2
122 exit 0
123