home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / usr.bin / yacc / yyfix.sh < prev   
Encoding:
Linux/UNIX/POSIX Shell Script  |  1991-04-16  |  2.3 KB  |  72 lines

  1. #!/bin/sh -
  2. #
  3. # Copyright (c) 1990 The Regents of the University of California.
  4. # All rights reserved.
  5. #
  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. #    @(#)yyfix.sh    5.2 (Berkeley) 5/12/90
  35. #
  36. OLDYACC="yyexca yyact yypact yypgo yyr1 yyr2 yychk yydef"
  37. NEWYACC="yylhs yylen yydefred yydgoto yysindex yyrindex yygindex \
  38.      yytable yycheck"
  39.  
  40. file=$1
  41. >$file
  42. shift
  43.  
  44. if [ $# -eq 0 ] ; then
  45.     if grep yylhs y.tab.c > /dev/null ; then
  46.         if grep yyname y.tab.c > /dev/null ; then
  47.             NEWYACC="$NEWYACC yyname"
  48.         fi
  49.         if grep yyrule y.tab.c > /dev/null ; then
  50.             NEWYACC="$NEWYACC yyrule"
  51.         fi
  52.         set $NEWYACC
  53.     else
  54.         set $OLDYACC
  55.     fi
  56. fi
  57.  
  58. for i
  59. do
  60. ed - y.tab.c << END
  61. /^\(.*\)$i[     ]*\[]/s//extern \1 $i[];\\
  62. \1 $i []/
  63. .ka
  64. /}/kb
  65. 'br $file
  66. 'a,.w $file
  67. 'a,.d
  68. w
  69. q
  70. END
  71. done
  72.