Home | History | Annotate | Line # | Download | only in route
keywords.sh revision 1.9
      1  1.1       gwr #!/bin/sh
      2  1.9    kefren # $NetBSD: keywords.sh,v 1.9 2010/06/26 14:29:36 kefren 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 # This program requires "new" awk (or GNU awk).
      8  1.1       gwr awk=${AWK:-awk}
      9  1.1       gwr 
     10  1.1       gwr cat << _EOF_ > _keywords.t1
     11  1.1       gwr add
     12  1.4  christos atalk
     13  1.1       gwr blackhole
     14  1.1       gwr change
     15  1.6    itojun cloned
     16  1.1       gwr cloning
     17  1.1       gwr delete
     18  1.1       gwr dst
     19  1.1       gwr expire
     20  1.1       gwr flush
     21  1.1       gwr gateway
     22  1.1       gwr genmask
     23  1.1       gwr get
     24  1.1       gwr host
     25  1.1       gwr hopcount
     26  1.1       gwr iface
     27  1.1       gwr interface
     28  1.1       gwr ifa
     29  1.1       gwr ifp
     30  1.1       gwr inet
     31  1.5    itojun inet6
     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.5    itojun prefixlen
     45  1.1       gwr proto1
     46  1.1       gwr proto2
     47  1.1       gwr recvpipe
     48  1.1       gwr reject
     49  1.1       gwr rtt
     50  1.1       gwr rttvar
     51  1.1       gwr sa
     52  1.1       gwr sendpipe
     53  1.1       gwr show
     54  1.1       gwr ssthresh
     55  1.1       gwr static
     56  1.1       gwr x25
     57  1.1       gwr xns
     58  1.1       gwr xresolve
     59  1.7       jrf flushall
     60  1.8    kefren nocloned
     61  1.8    kefren nocloning
     62  1.8    kefren noblackhole
     63  1.8    kefren noreject
     64  1.9    kefren mpls
     65  1.9    kefren tag
     66  1.1       gwr _EOF_
     67  1.1       gwr 
     68  1.1       gwr 
     69  1.1       gwr ################################################################
     70  1.1       gwr # Setup
     71  1.1       gwr ################################################################
     72  1.1       gwr 
     73  1.1       gwr # This creates a stream of:
     74  1.1       gwr #	keyword KEYWORD
     75  1.1       gwr # (lower case, upper case).
     76  1.1       gwr tr a-z A-Z < _keywords.t1 |
     77  1.1       gwr paste _keywords.t1 - > _keywords.t2
     78  1.1       gwr 
     79  1.1       gwr 
     80  1.1       gwr ################################################################
     81  1.1       gwr # Generate the h file
     82  1.1       gwr ################################################################
     83  1.1       gwr exec > keywords.h
     84  1.1       gwr 
     85  1.1       gwr echo '/* $'NetBSD'$ */
     86  1.1       gwr 
     87  1.1       gwr /* WARNING!  This file was generated by keywords.sh  */
     88  1.1       gwr 
     89  1.3       cgd extern struct keytab {
     90  1.8    kefren 	const char *kt_cp;
     91  1.1       gwr 	int	kt_i;
     92  1.1       gwr } keywords[];
     93  1.1       gwr 
     94  1.1       gwr ' # defines follow
     95  1.1       gwr 
     96  1.1       gwr $awk '{
     97  1.1       gwr 	printf("#define\tK_%s\t%d\n", $2, NR);
     98  1.1       gwr }' < _keywords.t2
     99  1.1       gwr 
    100  1.1       gwr 
    101  1.1       gwr ################################################################
    102  1.1       gwr # Generate the c file
    103  1.1       gwr ################################################################
    104  1.1       gwr exec > keywords.c
    105  1.1       gwr 
    106  1.1       gwr echo '/* $'NetBSD'$ */
    107  1.1       gwr 
    108  1.1       gwr /* WARNING!  This file was generated by keywords.sh  */
    109  1.1       gwr 
    110  1.1       gwr #include "keywords.h"
    111  1.1       gwr 
    112  1.1       gwr struct keytab keywords[] = {
    113  1.1       gwr ' # initializers follow
    114  1.1       gwr 
    115  1.1       gwr $awk '{
    116  1.1       gwr 	printf("\t{\"%s\", K_%s},\n", $1, $2);
    117  1.1       gwr }' < _keywords.t2
    118  1.1       gwr 
    119  1.1       gwr echo '	{0, 0}
    120  1.1       gwr };
    121  1.1       gwr ' # tail
    122  1.1       gwr 
    123  1.1       gwr 
    124  1.1       gwr ################################################################
    125  1.1       gwr # Cleanup
    126  1.1       gwr ################################################################
    127  1.1       gwr 
    128  1.1       gwr rm -f _keywords.t1 _keywords.t2
    129  1.1       gwr exit 0
    130