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