keywords.sh revision 1.2 1 #!/bin/sh
2 # $NetBSD: keywords.sh,v 1.2 1996/11/15 18:57:21 gwr 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 blackhole
13 change
14 cloning
15 delete
16 dst
17 expire
18 flush
19 gateway
20 genmask
21 get
22 host
23 hopcount
24 iface
25 interface
26 ifa
27 ifp
28 inet
29 iso
30 link
31 llinfo
32 lock
33 lockrest
34 mask
35 monitor
36 mtu
37 net
38 netmask
39 nostatic
40 osi
41 proto1
42 proto2
43 recvpipe
44 reject
45 rtt
46 rttvar
47 sa
48 sendpipe
49 show
50 ssthresh
51 static
52 x25
53 xns
54 xresolve
55 _EOF_
56
57
58 ################################################################
59 # Setup
60 ################################################################
61
62 # This creates a stream of:
63 # keyword KEYWORD
64 # (lower case, upper case).
65 tr a-z A-Z < _keywords.t1 |
66 paste _keywords.t1 - > _keywords.t2
67
68
69 ################################################################
70 # Generate the h file
71 ################################################################
72 exec > keywords.h
73
74 echo '/* $'NetBSD'$ */
75
76 /* WARNING! This file was generated by keywords.sh */
77
78 struct keytab {
79 char *kt_cp;
80 int kt_i;
81 } keywords[];
82
83 ' # defines follow
84
85 $awk '{
86 printf("#define\tK_%s\t%d\n", $2, NR);
87 }' < _keywords.t2
88
89
90 ################################################################
91 # Generate the c file
92 ################################################################
93 exec > keywords.c
94
95 echo '/* $'NetBSD'$ */
96
97 /* WARNING! This file was generated by keywords.sh */
98
99 #include "keywords.h"
100
101 struct keytab keywords[] = {
102 ' # initializers follow
103
104 $awk '{
105 printf("\t{\"%s\", K_%s},\n", $1, $2);
106 }' < _keywords.t2
107
108 echo ' {0, 0}
109 };
110 ' # tail
111
112
113 ################################################################
114 # Cleanup
115 ################################################################
116
117 rm -f _keywords.t1 _keywords.t2
118 exit 0
119