keywords.sh revision 1.1 1 #!/bin/sh
2 # $NetBSD: keywords.sh,v 1.1 1996/11/15 18:01:39 gwr Exp $
3 # @(#)keywords 8.2 (Berkeley) 3/19/94
4 #
5 # WARNING! If you change this file, re-run it!
6 #
7 # Note that this implementation mixes the #define's and
8 # the C structure initialiers in keywords.h! (Yuck!)
9
10 # This program requires "new" awk (or GNU awk).
11 awk=${AWK:-awk}
12
13 cat << _EOF_ > _keywords.t1
14 add
15 blackhole
16 change
17 cloning
18 delete
19 dst
20 expire
21 flush
22 gateway
23 genmask
24 get
25 host
26 hopcount
27 iface
28 interface
29 ifa
30 ifp
31 inet
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 proto1
45 proto2
46 recvpipe
47 reject
48 rtt
49 rttvar
50 sa
51 sendpipe
52 show
53 ssthresh
54 static
55 x25
56 xns
57 xresolve
58 _EOF_
59
60
61 ################################################################
62 # Setup
63 ################################################################
64
65 # This creates a stream of:
66 # keyword KEYWORD
67 # (lower case, upper case).
68 tr a-z A-Z < _keywords.t1 |
69 paste _keywords.t1 - > _keywords.t2
70
71
72 ################################################################
73 # Generate the h file
74 ################################################################
75 exec > keywords.h
76
77 echo '/* $'NetBSD'$ */
78
79 /* WARNING! This file was generated by keywords.sh */
80
81 struct keytab {
82 char *kt_cp;
83 int kt_i;
84 } keywords[];
85
86 ' # defines follow
87
88 $awk '{
89 printf("#define\tK_%s\t%d\n", $2, NR);
90 }' < _keywords.t2
91
92
93 ################################################################
94 # Generate the c file
95 ################################################################
96 exec > keywords.c
97
98 echo '/* $'NetBSD'$ */
99
100 /* WARNING! This file was generated by keywords.sh */
101
102 #include "keywords.h"
103
104 struct keytab keywords[] = {
105 ' # initializers follow
106
107 $awk '{
108 printf("\t{\"%s\", K_%s},\n", $1, $2);
109 }' < _keywords.t2
110
111 echo ' {0, 0}
112 };
113 ' # tail
114
115
116 ################################################################
117 # Cleanup
118 ################################################################
119
120 rm -f _keywords.t1 _keywords.t2
121 exit 0
122