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