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