# Copyright 1989 by Kenneth Almquist. All rights reserved. # # This file is part of ash. Ash is distributed under the terms specified # by the Ash General Public License. See the file named LICENSE. # All calls to awk removed, because Minix bawk is deficient. (kjb) exec > operators.h i=0 sed -e '/^[^#]/!d' unary_op binary_op | while read line do set -$- $line echo "#define $1 $i" i=`expr $i + 1` done echo echo "#define FIRST_BINARY_OP" `sed -e '/^[^#]/!d' unary_op | wc -l` echo ' #define OP_INT 1 /* arguments to operator are integer */ #define OP_STRING 2 /* arguments to operator are string */ #define OP_FILE 3 /* argument is a file name */ #define OP_LFILE 4 /* argument is a file name of a symlink? */ extern char *const unary_op[]; extern char *const binary_op[]; extern const char op_priority[]; extern const char op_argflag[];' exec > operators.c echo '/* * Operators used in the expr/test command. */ #include "../shell.h" #include "operators.h" char *const unary_op[] = {' sed -e '/^[^#]/!d s/[ ][ ]*/ /g s/^[^ ][^ ]* \([^ ][^ ]*\).*/ "\1",/ ' unary_op echo ' NULL }; char *const binary_op[] = {' sed -e '/^[^#]/!d s/[ ][ ]*/ /g s/^[^ ][^ ]* \([^ ][^ ]*\).*/ "\1",/ ' binary_op echo ' NULL }; const char op_priority[] = {' sed -e '/^[^#]/!d s/[ ][ ]*/ /g s/^[^ ][^ ]* [^ ][^ ]* \([^ ][^ ]*\).*/ \1,/ ' unary_op binary_op echo '}; const char op_argflag[] = {' sed -e '/^[^#]/!d s/[ ][ ]*/ /g s/^[^ ][^ ]* [^ ][^ ]* [^ ][^ ]*$/& 0/ s/^[^ ][^ ]* [^ ][^ ]* [^ ][^ ]* \([^ ][^ ]*\)/ \1,/ ' unary_op binary_op echo '};'