xref: /csrg-svn/bin/test/mkops (revision 53849)
153847Selan# Copyright (c) 1988 The Regents of the University of California.
253847Selan# All rights reserved.
353834Selan#
453847Selan# This code is derived from software contributed to Berkeley by
553847Selan# Kenneth Almquist.
653847Selan#
7*53849Selan# %sccs.include.redist.sh%
853847Selan#
9*53849Selan#      @(#)mkops	1.3 (Berkeley) 06/03/92
1053847Selan#
1153834Selan
1253847Selan
1353834Selanexec > operators.h
1453834Selanawk '/^[^#]/	{printf "#define %s %d\n", $1, n++}' unary_op binary_op
1553834Selanawk '/^[^#]/	{n++}
1653834SelanEND	{printf "\n#define FIRST_BINARY_OP %d\n", n}
1753834Selan' unary_op
1853834Selanecho '
1953834Selan#define OP_INT 1		/* arguments to operator are integer */
2053834Selan#define OP_STRING 2		/* arguments to operator are string */
2153834Selan#define OP_FILE 3		/* argument is a file name */
2253834Selan
2353834Selanextern char *const unary_op[];
2453834Selanextern char *const binary_op[];
2553834Selanextern const char op_priority[];
2653834Selanextern const char op_argflag[];'
2753834Selan
2853834Selanexec > operators.c
2953834Selanecho '/*
3053834Selan * Operators used in the test command.
3153834Selan */
3253834Selan
3353834Selan#include <stdio.h>
3453834Selan#include "operators.h"
3553834Selan
3653834Selanchar *const unary_op[] = {'
3753834Selanawk '/^[^#]/	{printf "      \"%s\",\n", $2}' unary_op
3853834Selanecho '      NULL
3953834Selan};
4053834Selan
4153834Selanchar *const binary_op[] = {'
4253834Selanawk '/^[^#]/	{printf "      \"%s\",\n", $2}' binary_op
4353834Selanecho '      NULL
4453834Selan};
4553834Selan
4653834Selanconst char op_priority[] = {'
4753834Selanawk '/^[^#]/	{printf "      %s,\n", $3}' unary_op binary_op
4853834Selanecho '};
4953834Selan
5053834Selanconst char op_argflag[] = {'
5153834Selanawk '/^[^#]/	{if (length($4) > 0)	printf "      %s,\n", $4
5253834Selan		 else			printf "      0,\n"}
5353834Selan' unary_op binary_op
5453834Selanecho '};'
55