keywords.sh revision 1.5 1 #!/bin/sh
2 # $NetBSD: keywords.sh,v 1.5 1999/07/02 15:29:03 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 cloning
16 delete
17 dst
18 expire
19 flush
20 gateway
21 genmask
22 get
23 host
24 hopcount
25 iface
26 interface
27 ifa
28 ifp
29 inet
30 inet6
31 iso
32 link
33 llinfo
34 lock
35 lockrest
36 mask
37 monitor
38 mtu
39 net
40 netmask
41 nostatic
42 osi
43 prefixlen
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 extern 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