2
# $NetBSD: mkbuiltins,v 1.17 2002/11/24 22:35:41 christos Exp $
4
# Copyright (c) 1991, 1993
5
# The Regents of the University of California. All rights reserved.
6
# Copyright (c) 1997-2005
7
# Herbert Xu <herbert@gondor.apana.org.au>. All rights reserved.
9
# This code is derived from software contributed to Berkeley by
12
# Redistribution and use in source and binary forms, with or without
13
# modification, are permitted provided that the following conditions
15
# 1. Redistributions of source code must retain the above copyright
16
# notice, this list of conditions and the following disclaimer.
17
# 2. Redistributions in binary form must reproduce the above copyright
18
# notice, this list of conditions and the following disclaimer in the
19
# documentation and/or other materials provided with the distribution.
20
# 3. Neither the name of the University nor the names of its contributors
21
# may be used to endorse or promote products derived from this software
22
# without specific prior written permission.
24
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36
# @(#)mkbuiltins 8.2 (Berkeley) 5/4/95
39
if ! type tempfile > /dev/null 2>&1; then
43
trap 'rm -f $temp $temp2' EXIT
52
* This file was generated by the mkbuiltins program.
59
< $builtins sed '/^#/d; /^$/d' > $temp
60
awk '{ printf "int %s(int, char **);\n", $1}' $temp
62
const struct builtincmd builtincmd[] = {'
63
awk '{ for (i = 2 ; i <= NF ; i++) {
66
line = $(++i) "\t" line
68
}}' $temp | sort -k 1,1 | tee $temp2 | awk '{
74
printf "\t{ \"%s\", %s, %d },\n", $1, $2,
75
(opt ~ /s/) + (opt ~ /[su]/) * 2 + (opt ~ /a/) * 4
82
* This file was generated by the mkbuiltins program.
86
sed 's/ -[a-z]*//' $temp2 | nl -v 0 | sort -u -k 3,3 |
87
tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ |
88
awk '{ printf "#define %s (builtincmd + %d)\n", $3, $1}'
89
printf '\n#define NUMBUILTINS %d\n' $(wc -l < $temp2)
91
#define BUILTIN_SPECIAL 0x1
92
#define BUILTIN_REGULAR 0x2
93
#define BUILTIN_ASSIGN 0x4
97
int (*builtin)(int, char **);
101
extern const struct builtincmd builtincmd[];'