home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / bin / test / mkops < prev    next >
Encoding:
Text File  |  1993-02-20  |  2.9 KB  |  81 lines

  1. # Copyright (c) 1988 The Regents of the University of California.
  2. # All rights reserved.
  3. #
  4. # This code is derived from software contributed to Berkeley by
  5. # Kenneth Almquist.
  6. # Redistribution and use in source and binary forms, with or without
  7. # modification, are permitted provided that the following conditions
  8. # are met:
  9. # 1. Redistributions of source code must retain the above copyright
  10. #    notice, this list of conditions and the following disclaimer.
  11. # 2. Redistributions in binary form must reproduce the above copyright
  12. #    notice, this list of conditions and the following disclaimer in the
  13. #    documentation and/or other materials provided with the distribution.
  14. # 3. All advertising materials mentioning features or use of this software
  15. #    must display the following acknowledgement:
  16. #    This product includes software developed by the University of
  17. #    California, Berkeley and its contributors.
  18. # 4. Neither the name of the University nor the names of its contributors
  19. #    may be used to endorse or promote products derived from this software
  20. #    without specific prior written permission.
  21. #
  22. # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  23. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  24. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  25. # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  26. # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  27. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  28. # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  29. # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  30. # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  31. # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  32. # SUCH DAMAGE.
  33. #
  34. #      @(#)mkops    1.3 (Berkeley) 6/3/92
  35. #
  36.  
  37.  
  38. exec > operators.h
  39. awk '/^[^#]/    {printf "#define %s %d\n", $1, n++}' unary_op binary_op
  40. awk '/^[^#]/    {n++}
  41. END    {printf "\n#define FIRST_BINARY_OP %d\n", n}
  42. ' unary_op
  43. echo '
  44. #define OP_INT 1        /* arguments to operator are integer */
  45. #define OP_STRING 2        /* arguments to operator are string */
  46. #define OP_FILE 3        /* argument is a file name */
  47.  
  48. extern char *const unary_op[];
  49. extern char *const binary_op[];
  50. extern const char op_priority[];
  51. extern const char op_argflag[];'
  52.  
  53. exec > operators.c
  54. echo '/*
  55.  * Operators used in the test command.
  56.  */
  57.  
  58. #include <stdio.h>
  59. #include "operators.h"
  60.  
  61. char *const unary_op[] = {'
  62. awk '/^[^#]/    {printf "      \"%s\",\n", $2}' unary_op
  63. echo '      NULL
  64. };
  65.  
  66. char *const binary_op[] = {'
  67. awk '/^[^#]/    {printf "      \"%s\",\n", $2}' binary_op
  68. echo '      NULL
  69. };
  70.  
  71. const char op_priority[] = {'
  72. awk '/^[^#]/    {printf "      %s,\n", $3}' unary_op binary_op
  73. echo '};
  74.  
  75. const char op_argflag[] = {'
  76. awk '/^[^#]/    {if (length($4) > 0)    printf "      %s,\n", $4
  77.          else            printf "      0,\n"}
  78. ' unary_op binary_op
  79. echo '};'
  80.