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